我在Swift,xcode 7.1中创建了一个示例框架。 然后构建该框架用于Profiling,发布版本。 然后将发布的框架添加(嵌入)到iOS测试应用程序。
应用程序构建正常,但在尝试存档时。说明发生错误 "无法生成bitcode包,因为' ... / Test / FW.framework / FW'没有完整的bitcode。 bitcode的所有框架和dylib必须从Xcode Archive或Install build for architecture arm64"
生成框架和应用程序项目处于默认设置,两者都启用了Bitcode。
为了确保Framework有bitcode,这个命令在Framework
上" otool -l FW.framework / FW | grep __LLVM"
产量
segname __LLVM
segname __LLVM
segname __LLVM
segname __LLVM
我错过了什么? 我已经包含了两个项目here,您可以下载它们并尝试存档。
答案 0 :(得分:30)
xcode要求在归档期间生成所有嵌入式框架的bitcode。
复制framework / dylib的发布版本是不够的
<强>做强>
归档框架,然后从那时起使用框架的存档版本。
让xcode归档一个框架(通常它只归档应用程序),将框架目标的构建设置'skip install'设置为NO!
答案 1 :(得分:26)
如果您可以构建框架(例如,如果您使用自己的框架),则可以进行以下操作
这将允许您的框架提供所需的bitcode。
如果您没有watchOS和Apple TV(根据文档),则另一种选择可能适用
对于iOS应用,bitcode是默认设置,但是可选。如果你提供 bitcode,应用程序包中的所有应用程序和框架都需要包含 位码。对于watchOS和tvOS应用程序,需要bitcode。
此选项需要为buildSetting中的每个目标设置ENABLE_BITCODE
为NO
,但正如预期的那样,这禁止使用bitcode功能。