Xcode编译遇到bitcode问题

2021-11-23 11:32:03 浏览数 (1)

最近使用第三方库的时候,经常会遇到在Xcode7下编译报错的问题,错误大都有一个关键字:bitcode。例如:

ld: ‘/Users//Framework/SDKs/PolymerPay/Library/mobStat/libSDK.a(**ForSDK.o)’ does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

那么bitcode是什么呢?

其实bitcode是新推出一种包优化方式,bitcode是被编译程序的一种中间形式的代码,包含bitcode配置的程序会在App Store上被编译和链接。bitcode允许苹果在后期重新优化我们程序的二进制文件,而不需要我们重新提交新的版本。

我们要想解决这个问题,要么是第三方库支持bitcode,要么就不启用bitcode。

而对于苹果的三个平台:

  • iOS,bitcode是可选的
  • watchOS,bitcode是必须的
  • Mac OS,不支持bitcode

但是现在用到的很多第三方库还没能支持bitcode,要是等他们都一个个支持就太麻烦了,我们可以在Xcode7中关闭bitcode:

在项目名-->Target-->Build Settings-->Enable Bitcode中设为NO就可以了。

如果我们启用bitcode,那么在提交包时,下面这个界面也会有个bitcode的选项:

0 人点赞