我在向应用商店提交应用时遇到此错误.
这是否意味着我需要为所有依赖项设置ENABLE_BITCODE?我试过但后来得到错误说依赖与bitcode(或类似的东西)不兼容......
Gui*_* L. 65
今天早上我遇到了同样的问题.事实上,答案在于错误:"验证平台的所有目标是否具有ENABLE_BITCODE构建设置的一致值"
我有一个目标(ENABLE_BITCODE设置为NO),使用ENABLE_BITCODE设置为YES的多个pod.所以,我必须做的就是在我的项目目标中将ENABLE_BITCODE设置为YES.但我想你有一个选择,你也可以在你正在使用的所有库中将ENABLE_BITCODE设置为NO.
Mik*_*gue 64
最简单和最常见的修复:
通过Xcode提交应用程序时,您可以取消选中"包括Bitcode".
如果使用xcodebuild
,则可以使用传递exportOptionsPlist,其值为uploadBitcode
false.在我的情况下,我们正在使用xctool
构建应用程序并且没有能力传递exportOptionsPlist
,所以我们不得不从我们的所有框架中删除bitcode.
如果有人正在使用cocoapods并想要为其框架禁用bitcode,则只需将以下内容添加到podfile:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
Run Code Online (Sandbox Code Playgroud)
为此问题添加更多说明:
看来苹果昨天才开始执行这项工作.如果您的主二进制文件已禁用bitcode,但您包含一个启用了bitcode的静态库或框架,则验证将失败.它也是另一种方式:如果您的主二进制文件已启用bitcode,但您包含禁用bitcode的库/框架,则验证将失败.
我有一些来自GoogleMaps和Amazon的依赖项,这使得切换所有内容以启用bitcode变得非常简单,所以我只是禁用它并从我在项目中导入的一个静态库中删除了bitcode.您可以使用以下命令从任何二进制文件中删除bitcode
$ xcrun bitcode_strip -r {Framework}.dylib -o tmp.dylib
$ mv tmp.dylib {Framework}.dylib
Run Code Online (Sandbox Code Playgroud)
虽然以上是问题的解决方案,但我不同意如果主二进制文件禁用bitcode,所有包含的二进制文件也应该需要它.Bitcode只是苹果公司可以用于应用程序细化的一些IR代码 - 为什么它们不能将它从其他二进制文件中删除(我认为这是他们以前做过的)?这对我来说没有多大意义.
Apple主题https://forums.developer.apple.com/thread/48071
归档时间: |
|
查看次数: |
15093 次 |
最近记录: |