更改符号名称和嵌入bitcode

Mar*_*ica 8 linker linker-errors ios bitcode

tl; dr:我收到此错误消息:

ld: -alias_list and -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES)
cannot be used together
Run Code Online (Sandbox Code Playgroud)

我如何解决它?


我正在尝试创建自己的第三方库版本.我想确保我的所有调用都没有进入该库的系统版本,因此我使用--alias-list在所有符号上添加前缀,并生成一个头文件,该文件将所有符号重命名fooMJB_foo.然后,--include无论何时我想使用此库,我的构建系统都会包含此头文件.

这在Android和Linux上运行良好(我非常确定它最终也适用于Windows).但是,当我尝试链接共享库时,我收到上述错误.我如何达到同样的效果?

Emr*_*der 2

在项目的构建设置中,您需要设置Enable BitcodeNo. 对于 iOS 应用程序,位码是默认值,但可选,因此您可以在没有位码的情况下将应用程序发送到 AppStore。

Bitcode 将来可以重新优化您的应用程序二进制文件,而无需向 App Store 提交应用程序的新版本。

来自苹果文档:

对于 iOS 应用程序,位码是默认值,但可选。对于 watchOS 和 tvOS 应用程序,需要位码。如果您提供位码,则应用程序包中的所有应用程序和框架(项目中的所有目标)都需要包含位码。

https://help.apple.com/xcode/mac/current/#/devbbdc5ce4f