ENABLE_BITCODE 在静态库中

ENABLE_BITCODE in static library

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

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

我尝试了所有可能的方法(来自 and from here)但没有任何帮助。启用位码标志后,宿主项目仍然无法存档。

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

如果错误确实来自您的库(而不是来自您项目中的其他库或框架),您可以从 Xcode 7.

再次编译静态库

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

替代方案是 enable_bitcode = no in Xcode projects that using your library(通知您的开发人员)。

传统上我是在回答我自己的问题) 希望这对以后的人有用。

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

为什么链接器在我的一个库模块中报告错误,这绝对是奇怪和令人困惑的。 我的库和 FacebookSDK 之间没有连接。