我无法让我的工作区使用 Cocoapods 正确编译。工作区中有 3 个项目,每个项目都有自己的目标:
- libPods - 具有所有外部依赖项的 Cocoapods 静态库
- libCommon - 我的静态库,用于保存所有共享代码(基本控制器、网络代码、通用 UI 等)
- myApp - 我的 iOS 应用程序
libCommon 和 myApp 都需要来自 libPods 的外部依赖项。最初我认为它会像这样工作:
- libPods 构建
- 针对 libPods 和构建的 libCommon 链接
- myApp 与 libCommon 链接并构建
在这种情况下,libCommon “拥有” pod,然后 myApp 只是链接 libCommon,就像我一直在做 pre-Cocoapods 一样......但显然静态库不喜欢与静态库链接(我有一堆动态库错误)。我在某个地方读到了一个 github 问题,我应该构建 libPods 和 libCommon,然后 myApp 应该链接到这两个库。现在我的 podfile 看起来像这样:
workspace 'MyApp.xcworkspace'
platform :ios, '5.0'
link_with ['Common', 'MyApp']
target 'MyApp' do
xcodeproj 'MyApp.xcodeproj'
pod 'AFNetworking', '1.1.0'
pod 'TTTAttributedLabel', '1.6.0'
pod 'JSONKit', '1.5pre'
pod 'Reachability', '3.1.0'
end
通过此设置,myApp 拥有所有 pod,然后在 libCommon 构建设置中,我指定了 pod 标头的路径。在我尝试使用 libCommon 中的一个类之前,这构建正常。一旦我这样做了,我就会得到其中一个_OBJC_CLASS_$_Blah
错误(它告诉我虽然标题可用,但它仍然没有正确链接)。当我尝试在“构建阶段”中手动链接 libCommon 时,我得到一堆重复的符号错误(这让我相信它已经链接了?)。有没有搞错?
正确执行此操作的方法是什么,我的 podfile 应该是什么样子?