Cocoapods:无法设置 pod 构建设置
Posted
技术标签:
【中文标题】Cocoapods:无法设置 pod 构建设置【英文标题】:Cocoapods: unable to set pod build setting 【发布时间】:2017-05-10 18:37:38 【问题描述】:在我当前的项目中,我正在尝试包含一个具有两个子规范的内部 pod - 一个用于常规应用程序,一个用于今天的小部件扩展。不幸的是,Cocoapods (1.2.1) 错误地推断了 pod 目标的构建标志。两个目标(扩展 pod 目标和普通应用程序 pod 目标)都将“仅需要 App-Extension-Safe API”设置为 YES,从而产生 -fapplication-extension CLANG 编译器标志。遗憾的是,此配置中没有构建一个目标。
手动将标志设置为 NO 可以解决问题,但仅在下一次 pod 更新之前。具体来说,这是我要解决的设置:
我什至不确定 Cocoapods 使用什么启发式来推断是否需要打开或关闭它,但有没有办法明确设置目标构建设置?我试过了
s.subspec 'Core' do |core|
core.dependency 'xxxxxxx','~> 1.0.1'
core.source_files = 'Pod/Sources/**/*.h,m,mm'
core.ios.xcconfig =
'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES',
'APPLICATION_EXTENSION_API_ONLY' => 'NO'
core.tvos.xcconfig =
'GCC_PREPROCESSOR_DEFINITIONS' => 'TVOS=1',
'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES'
end
和
s.subspec 'Core' do |core|
core.dependency 'xxxxxxx','~> 1.0.1'
core.source_files = 'Pod/Sources/**/*.h,m,mm'
core.pod_target_xcconfig = 'APPLICATION_EXTENSION_API_ONLY' => 'NO'
core.ios.xcconfig =
'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES',
core.tvos.xcconfig =
'GCC_PREPROCESSOR_DEFINITIONS' => 'TVOS=1',
'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES'
end
不幸的是,两者都无济于事。该设置顽固地保持在“是”。我在这里束手无策。有什么我可以尝试的吗?
【问题讨论】:
【参考方案1】:自我回答:我仍然不知道如何强制设置,但问题实际上出在我们的(多层)依赖图中。应用程序和应用程序扩展目标都使用了依赖的子规范,因此强制该子规范目标的编译器标志。
我通过添加另一个子规范来修复它,这样 pod 目标就不会被应用和扩展共享。
【讨论】:
以上是关于Cocoapods:无法设置 pod 构建设置的主要内容,如果未能解决你的问题,请参考以下文章
使用 CocoaPods 安装的框架的构建设置中的空 Info.plist 路径
pod setup 在“设置 CocoaPods 主仓库”时失败
Xcode/Cocoapods 为啥我不能从 Pod 实现 Swift 协议?