昨天我发现了大量关于parse.com库的警告:

紧急:所有位码将被丢弃,因为'[path]/Parse.framework/Parse(pfanalysis .o)'是没有位码构建的。你必须通过启用bitcode (Xcode设置ENABLE_BITCODE)重新构建它,从供应商那里获得一个更新的库,或者禁用这个目标的bitcode。注意:这将是未来的一个错误。

我知道我可以用这个答案消除这些警告,但现在我想知道它是否会对AppStore提交和/或应用的实际性能产生任何负面影响。

Xcode会通知你有关比特码的信息

激活此设置表明目标或项目应该在编译过程中为支持它的平台和体系结构生成位码。对于存档构建,位代码将在链接二进制文件中生成,以便提交到应用程序商店。对于其他构建,编译器和链接器将检查代码是否符合位码生成的要求,但不会生成实际的位码。(ENABLE_BITCODE)

但我并没有从这篇文章中得到任何真正有用的信息。

我可以使用链接的答案来规避这个问题,而不产生任何负面影响,也不会影响未来的AppStore提交吗? ENABLE_BITCODE实际上是做什么的,将来它会是一个非可选的需求吗? 如果我启用/禁用它会对性能有任何影响吗?


当前回答

Starting with Xcode 14, bitcode is no longer required for watchOS and tvOS applications, and the App Store no longer accepts bitcode submissions from Xcode 14. Xcode no longer builds bitcode by default and generates a warning message if a project explicitly enables bitcode: “Building with bitcode is deprecated. Please update your project and/or target settings to disable bitcode.” The capability to build with bitcode will be removed in a future Xcode release. IPAs that contain bitcode will have the bitcode stripped before being submitted to the App Store. Debug symbols can only be downloaded from App Store Connect / TestFlight for existing bitcode submissions and are no longer available for submissions made with Xcode 14. (86118779)

其他回答

@vj9 thx。我更新到xcode 7。它显示了同样的错误。设置“NO”后构建良好

设置“NO”,效果很好。

Starting with Xcode 14, bitcode is no longer required for watchOS and tvOS applications, and the App Store no longer accepts bitcode submissions from Xcode 14. Xcode no longer builds bitcode by default and generates a warning message if a project explicitly enables bitcode: “Building with bitcode is deprecated. Please update your project and/or target settings to disable bitcode.” The capability to build with bitcode will be removed in a future Xcode release. IPAs that contain bitcode will have the bitcode stripped before being submitted to the App Store. Debug symbols can only be downloaded from App Store Connect / TestFlight for existing bitcode submissions and are no longer available for submissions made with Xcode 14. (86118779)

位码使得崩溃报告更加困难。以下是来自HockeyApp的引用(这也适用于任何其他崩溃报告解决方案):

当将应用上传到app Store并启用“Bitcode”复选框时,苹果将使用该Bitcode构建并在将其分发到设备之前重新编译。这将导致二进制文件获得一个新的UUID,并且有一个选项可以通过Xcode下载相应的dSYM。

注:答案在2016年1月进行了编辑,以反映最新变化

确保选择“All”以找到启用位码构建设置:

我可以使用链接的答案来规避这个问题,而不产生任何负面影响,也不会影响未来的AppStore提交吗?

yes

ENABLE_BITCODE实际上是做什么的,将来它会是一个非可选的需求吗?

ENABLE_BITCODE将代码的中间表示形式添加到二进制中。对于watchOS, tvOS现在是强制性的

如果我启用/禁用它会对性能有任何影响吗?

当你存档你的项目时,它会对Xcode构建和内存占用产生影响

[Bitcode]