用完整的位码在 xcode11 中构建一个胖框架

Build a fat framework in xcode11 with full bitcode

我想做什么:

我正在尝试在 xcode11 中构建一个 cocoapods 框架,然后在 iOS SDK 中使用它。

我试过的:

我面临什么问题:

将框架的预发布版本发布到 Cocoapods 后,我将其安装在我的 SDK 中。设备(发布)的 SDK 构建失败,并显示以下消息:

ld: bitcode bundle could not be generated because '/Users/sourobratasarkar/Library/Developer/Xcode/DerivedData/Beaconstac-dpnhqvwchyqaeyavlbmfsntqlgnn/Build/Products/Release-iphoneos/EddystoneScanner/EddystoneScanner.framework/EddystoneScanner' was built without full bitcode. All frameworks and dylibs for bitcode must be generated from Xcode Archive or Install build file '/Users/sourobratasarkar/Library/Developer/Xcode/DerivedData/Beaconstac-dpnhqvwchyqaeyavlbmfsntqlgnn/Build/Products/Release-iphoneos/EddystoneScanner/EddystoneScanner.framework/EddystoneScanner' for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

它说该框架是在没有完整的架构 arm7 位代码的情况下构建的。

构建框架时我是否遗漏了什么?使用 lipo -info 我可以看到存在 arm7 架构。

PS:调试(设备和模拟器)和发布(模拟器)构建成功。

事实证明我构建框架的方式没有问题。将以下内容添加到我使用框架的 SDK 的 Podfile 中为我解决了这个问题:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode'
            config.build_settings['ENABLE_BITCODE'] = 'YES'
        end
    end
end