在 Today 扩展中使用 Realm Framework (CocoaPods)
Using Realm Framework in Today extension (CocoaPods)
我正在使用 realm.io 作为一些数据的存储。我想与我的 Today 扩展共享这些数据。我正在使用 CocoaPods,我想知道如何与两个目标共享该框架。我的播客文件如下所示:
platform :ios, '8.0'
use_frameworks!
pod 'RealmSwift'
pod 'MBProgressHUD'
pod 'Alamofire'
我试过这个,它在构建到设备时有效,但在构建到 iOS 模拟器时无效。它返回错误 'ld: framework not found Pods':
platform :ios, '8.0'
use_frameworks!
def shared_pods
pod 'RealmSwift'
pod 'Alamofire'
end
target 'App' do
shared_pods
pod 'MBProgressHUD'
end
target 'AppToday' do
shared_pods
end
我做错了什么?
感谢任何帮助。
Brgds
platform :ios, '8.0'
use_frameworks!
pod 'RealmSwift'
pod 'MBProgressHUD'
pod 'Alamofire'
添加这一行
link_with 'App', 'AppToday'
您的 Podfile 看起来是正确的,可以在全新安装中运行。但是在不同设置之间迁移时,您在 CocoaPods 中的用户项目集成中发现了一个错误。
背景资料
如果您没有在 Podfile 中明确指定目标,那么 CocoaPods 将与您项目中的第一个目标集成。这是您的应用程序目标,只要它是唯一一个就可以正常工作。
但现在您正在明确引用目标。 CocoaPods 将创建单独的所谓聚合目标。这些在 Pods.xcodeproj
中并命名为 Pods-App
和 Pods-AppToday
。这些是静态框架目标(来自 0.39.beta.5),它们与您的目标链接较弱,可帮助 Xcode 在 Pods 项目中找到您的依赖项。因为当你 运行 pod install
时,CocoaPods 对之前的 Podfile 一无所知(并且它不会在 Podfile.lock
中保留此信息),它不会删除旧的聚合目标,该目标仅命名为 Pods
,它是您应用目标中的产品参考。
解决问题
- Select 您的项目文件在文件导航器Xcode 中
- Select 目标列表左侧窗格中的应用目标
- 转到常规 选项卡
- 从 Linked Frameworks and Libraries 窗格中删除
Pods.framework
之前的预期状态
它应该是什么样子
我正在使用 realm.io 作为一些数据的存储。我想与我的 Today 扩展共享这些数据。我正在使用 CocoaPods,我想知道如何与两个目标共享该框架。我的播客文件如下所示:
platform :ios, '8.0'
use_frameworks!
pod 'RealmSwift'
pod 'MBProgressHUD'
pod 'Alamofire'
我试过这个,它在构建到设备时有效,但在构建到 iOS 模拟器时无效。它返回错误 'ld: framework not found Pods':
platform :ios, '8.0'
use_frameworks!
def shared_pods
pod 'RealmSwift'
pod 'Alamofire'
end
target 'App' do
shared_pods
pod 'MBProgressHUD'
end
target 'AppToday' do
shared_pods
end
我做错了什么?
感谢任何帮助。
Brgds
platform :ios, '8.0'
use_frameworks!
pod 'RealmSwift'
pod 'MBProgressHUD'
pod 'Alamofire'
添加这一行
link_with 'App', 'AppToday'
您的 Podfile 看起来是正确的,可以在全新安装中运行。但是在不同设置之间迁移时,您在 CocoaPods 中的用户项目集成中发现了一个错误。
背景资料
如果您没有在 Podfile 中明确指定目标,那么 CocoaPods 将与您项目中的第一个目标集成。这是您的应用程序目标,只要它是唯一一个就可以正常工作。
但现在您正在明确引用目标。 CocoaPods 将创建单独的所谓聚合目标。这些在 Pods.xcodeproj
中并命名为 Pods-App
和 Pods-AppToday
。这些是静态框架目标(来自 0.39.beta.5),它们与您的目标链接较弱,可帮助 Xcode 在 Pods 项目中找到您的依赖项。因为当你 运行 pod install
时,CocoaPods 对之前的 Podfile 一无所知(并且它不会在 Podfile.lock
中保留此信息),它不会删除旧的聚合目标,该目标仅命名为 Pods
,它是您应用目标中的产品参考。
解决问题
- Select 您的项目文件在文件导航器Xcode 中
- Select 目标列表左侧窗格中的应用目标
- 转到常规 选项卡
- 从 Linked Frameworks and Libraries 窗格中删除
Pods.framework