静态库中的ENABLE_BITCODE

时间:2015-10-17 23:46:24

标签: ios static-libraries

我正在开发一个静态库,分发给许多开发人员。现在我遇到了bitcode生成的问题。 当我将此库包含到xcode项目并尝试存档时,链接器会产生错误

MyModule.o不包含bitcode。您必须在启用bitcode(Xcode设置ENABLE_BITCODE)的情况下重建它,从供应商处获取更新的库,或禁用此目标的bitcode。 for architecture arm64

我尝试了所有可能的事情(来自herehere)并没有任何帮助。启用bitcode标志时,主机项目仍然无法使用。

奇怪的是otool -l命令说所有模块都包含一个bitcode部分。为什么xcode项目无法存档呢?

2 个答案:

答案 0 :(得分:3)

如果错误来自您的库(而不是来自项目中的其他库或框架),您可以再次从Xcode 7编译静态库。

默认情况下 - 它会添加选项" enable_bitcode"在您的构建设置中。 确保将其设置为yes(默认值),并且所有其他源也使用lib支持bitcode进行编译(如果不是 - 您将收到错误) - 并且您很高兴。

另一种方法是在使用您的库的Xcode项目中使能enable_bitcode = no(通知您的开发人员)。

答案 1 :(得分:0)

传统上我回答了我自己的问题) 希望这对未来的人有用。

问题实际上不在我自己的第三方框架中。我将旧版本的 FacebookSDK 链接到我的主机项目,实际上链接器需要重新编译它(或从供应商请求新版本)而不是我自己的库。

为什么链接器在我的某个库模块中报告错误,这简直令人困惑和困惑。 我的图书馆和FacebookSDK之间没有联系。