Cocoapods将pod与不同的部署目标混合在一起

时间:2013-08-29 05:01:37

标签: ios objective-c cocoapods

我的项目将iOS 4.3作为其部署目标。

我的所有pod库都支持4.3但是我也希望包含一个,请注意不要在iOS 4.3设备上使用它的类。

我尝试在我的Podfile上使用target选项,如下所示:

platform :ios, '4.3'
pod 'NBUCore'

target :MyApp do
    platform :ios, '5.0'
    pod 'PEPhotoCropEditor'
end

通过libPods.a创建通常的NBUCorelibPods-MyApp.a的新PEPhotoCropEditor,两者都正确链接到MyApp。

问题是有两个.xcconfig个文件,Pods.xcconfigPods-MyApp.xcconfig,但只有一个文件被Cocoapods激活,因此链接失败,因为每个文件都有一个不完整的{{1} }。

我尝试了OTHER_LDFLAGStarget :test, :exclusive => true

当然我可以手动修改它们,使用它们或添加false标志。但是Cocoapods应该照顾好这一点。或者我的Podfile语法错了?

编辑:事实证明,Pods和Pods-MyApp的“Copy Pods Resources”也需要合并。

2 个答案:

答案 0 :(得分:1)

当前的Cocoapods无法提交(提交问题here)。

现在的解决方案是按部署目标分离Pod:

platform :ios, '4.3'
pod 'NBUCore'

target :MyApp do
    platform :ios, '5.0'
    pod 'PEPhotoCropEditor'
end

然后“合并”.xcconfig文件。

最后将所有资源的脚本添加到“Copy Pods Resources”:

"${SRCROOT}/Pods/Pods-resources.sh"
"${SRCROOT}/Pods/Pods-MyApp-resources.sh"

答案 1 :(得分:0)

我认为不可能做你想做的事。但是,您可以将PEPhotoCropEditor's Podfile复制到您的项目中,并将s.ios.deployment_target = '5.0'更改为s.ios.deployment_target = '4.3'

然后,在Podfile中,而不是

pod 'PEPhotoCropEditor'

DO

pod 'PEPhotoCropEditor', :path => "CustomPodspec.podspec"