具有每个架构标志的 CocoaPods podspec
Posted
技术标签:
【中文标题】具有每个架构标志的 CocoaPods podspec【英文标题】:CocoaPods podspec with per architecture flags 【发布时间】:2014-05-29 21:37:35 【问题描述】:快速版本:我有一个代码库,我正在为其创建一个 Cocoapods 规范文件。它需要基于架构的不同编译器标志。这可能吗?
说明背景: 该库的文件之一包含一些 ARM NEON 内部代码。对于 armv7 和 armv7s,标志是:
s.compiler_flags = '-mfloat-abi=softfp', '-mfpu=neon', '-mcpu=cortex-a9'
最后一个标志在 arm64 上导致(完全合理的)编译错误。
Xcode 在 Build Settings 区域支持 per-architecture 标志,因此一直构建良好,直到现在需要 podspec 包装器。
有没有办法使用每个架构标志配置 CocoaPods 规范?
【问题讨论】:
【参考方案1】:一个解决方案,我通过Can you set architecture specific Build Settings in an .xcconfig file in Xcode 4.3?找到,使用xcconfig:
# Common flags
s.compiler_flags = '-mfloat-abi=softfp', '-mfpu=neon'
# Per-arch flags
s.xcconfig = 'OTHER_CFLAGS[arch=armv7]' => '$(inherited) -mcpu=cortex-a9' ,
'OTHER_CFLAGS[arch=armv7s]' => '$(inherited) -mcpu=cortex-a9'
这里是 CocoaPods 的小错误,$(inherited) 标志 加倍 Pods.xcconfig 中的参数:
OTHER_CFLAGS[arch=armv7] = $(inherited) -mcpu=cortex-a9 $(inherited) -mcpu=cortex-a9
OTHER_CFLAGS[arch=armv7s] = $(inherited) -mcpu=cortex-a9 $(inherited) -mcpu=cortex-a9
我想知道是否有更规范的方式通过实际的compiler-flags
标志来做到这一点?
【讨论】:
以上是关于具有每个架构标志的 CocoaPods podspec的主要内容,如果未能解决你的问题,请参考以下文章
Firebase、Fabric 和 Crashlytics,带有 -ObjC 链接器标志,没有 Cocoapods iOS