Xcode – 错误ITMS-90635 – 捆绑中的Mach-O无效 – 提交到App Store

将应用程序提交到应用程序商店时出现此错误。

在这里输入图像说明

这是否意味着我需要为所有的依赖项设置ENABLE_BITCODE? 我试过,但后来得到错误,说依赖不兼容的位码(或类似的东西)…

今天早上我也有同样的问题。 事实上,答案出现在以下错误中:“validation平台的所有目标对于ENABLE_BITCODE构build设置具有一致的值”

我有一个目标(使用ENABLE_BITCODE设置为NO),使用ENABLE_BITCODE设置为YES的多个窗格。 所以,我所要做的就是在我的项目目标中将ENABLE_BITCODE设置为YES。 但我想你有一个select,你也可以设置ENABLE_BITCODE为你所使用的所有库。

最简单和最常见的修复方法:

当通过Xcode提交应用程序时,您可以取消选中“包含位码”。 取消选中该框

如果使用xcodebuild ,则可以使用将uploadBitcode的值设置为false的方式传递exportOptionsPlist 。 就我而言,我们使用xctool来构build应用程序,并且没有能力传递exportOptionsPlist ,所以我们必须从我们的所有框架中删除位代码。


如果有人正在使用cocoapods,并想要禁用他们的框架bitcode CodeGo.net,你可以添加以下到您的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 

通过https://stackoverflow.com/a/32685434/1417922


为了补充说明这个问题到底发生了什么:

看来,苹果刚刚开始执行这个昨天。 如果您的主二进制文件禁用了位代码,但您包含启用了位代码的静态库或框架,则validation失败。 它也是另一种方式:如果你的主二进制文件启用了bitcode,但是你包含一个禁用bitcode的库/框架,它将会失败validation。

我有几个从GoogleMaps和亚马逊的依赖关系,使得切换一切,以启用位代码是不平凡的,所以我只是禁用它,并从我的项目中导入一个静态库删除位代码。 您可以使用以下命令从任何二进制文件中删除位代码

 $ xcrun bitcode_strip -r {Framework}.dylib -o tmp.dylib $ mv tmp.dylib {Framework}.dylib 

https://developer.apple.com/library/content/documentation/Xcode/Conceptual/RN-Xcode-Archive/Chapters/xc7_release_notes.html

虽然上面是解决这个问题的方法,但我不同意如果主二进制代码禁用了所有包含的二进制文件都需要它。 Bitcode只是苹果公司可以用来减less应用程序的一些IR代码 – 为什么不把它从其他二进制文件(我认为是他们以前做的)中剥离出来呢? 这对我来说并没有什么意义。

苹果线程https://forums.developer.apple.com/thread/48071

我只是取消选中“包含位码”,并开始上传

迦太基

  1. 在您的项目文件夹(Carthage-> Checkout – > [lib name])中打开您的库
  2. 然后在Xcode中打开每个库
  3. 设置启用位码 – 编译设置中没有 在这里输入图像说明
  4. 为列表中的每个库执行此操作
  5. build立迦太基carthage build --platform xxx

然后,您可以成功存档并提交到Appstore

我们从上一个星期五(2016年6月3日)得到了同样的错误“Xcode – 错误ITMS-90635 – 捆绑中的Mach-O无效 – 提交到App Store”使用下面提到的2个步骤来完成

步骤1:
添加代码到pod文件,在pods中标记'ENABLE_BITCODE' = 'NO'

 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 

第2步:
为项目标记了'ENABLE_BITCODE' = 'NO'

注意:在pod和我的项目中尝试了标记'ENABLE_BITCODE' = 'YES' ,但是因为我们使用twillio框架来调用具有标记的-read_only_relocs ,它不允许使用'ENABLE_BITCODE' = 'YES'进行编译。 因此,如果你的应用程序不使用任何这样的框架与-read_only_relocs那么你可以继续使'ENABLE_BITCODE' = 'YES'因为这将是你的应用程序的好。

将“启用位代码”设置为“是”之后,对于有构build错误的人员。 我必须更新所有的库。但是,最简单的部分是我使用Cocoapods.So,请更新所有的pod项目:(一个接一个)或所有

然后在归档之前将Enable BitCode设置为“No”。

然后存档>>上传>>它会通过这个错误。

干杯。

我在Xcode 7.3的CI上遇到了与项目“ENABLE_BITCODE = YES”和依赖“ENABLE_BITCODE = YES”相同的问题。 解决scheme是更新Xcode到最新的可用版本(7.3.1)