3

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

我所有的 pod 库都支持 4.3,但我也想包括一个,当然不要在 iOS 4.3 设备上使用它的类。

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

platform :ios, '4.3'
pod 'NBUCore'

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

它创造了通常libPods.a的 withNBUCore和新libPods-MyApp.a的 withPEPhotoCropEditor,两者都正确链接到 MyApp。

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

我已经尝试target :test, :exclusive => truefalse

当然,我可以手动修改它们,同时使用它们或添加$(inherited)标志。但是 Cocoapods 应该会处理好这一点。或者我的 Podfile 语法错误?

编辑:原来,Pods 和 Pods-MyApp 的“复制 Pods 资源”也需要合并。

4

2 回答 2

1

在我的 iOS 9.3+ 项目中,我有一个 iOS 11+ 依赖项。为了使它工作,我:

  • 将我的项目和 Podfile 设置为 iOS 11。
  • pod install
  • 将我的项目设置回 iOS 9.3。
  • 在生成的 Pods 项目中,将所有非 3rd 方Pods-xxx目标设置为 9.3。
  • 使用预处理器宏来修复任何编译问题。

原始答案

当前的 Cocoapods 是不可能的(在此处提交了问题)。

目前的解决方案是按部署目标分离 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"
于 2013-10-08T01:57:00.533 回答
0

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

然后,在你的Podfile, 而不是

pod 'PEPhotoCropEditor'

pod 'PEPhotoCropEditor', :path => "CustomPodspec.podspec"
于 2013-10-04T22:00:23.700 回答