Xcode - Error ITMS-90635 - Invalid Mach-O Included - Submission to the App Store

I just got this error when sending the application to the application store.

enter image description here

Does this mean that I need to set ENABLE_BITCODE for all dependencies? I tried this, but then I got errors stating that the dependencies are not compatible with the bit code (or something like that) ...

+69
ios xcode
Jun 03 '16 at 11:45
source share
7 answers

I had the same problem this morning. In fact, the answer is in the error: "Make sure that all goals for the platform have a consistent value for the settings of the assembly ENABLE_BITCODE"

I had a goal (with ENABLE_BITCODE set to NO) using several containers for which ENABLE_BITCODE is set to YES. So, all I needed to do was set ENABLE_BITCODE to YES in my target program. But I think you have a choice, you can also set ENABLE_BITCODE to NO in all the libraries you use.

+63
Jun 03 '16 at 15:05
source share

The simplest and most frequent fix:

You can uncheck the Enable bitcode box when sending an application through Xcode. uncheck

If you use xcodebuild , you can use pass exportOptionsPlist with uploadBitcode set to false. In my case, we use xctool to create the application and are not able to pass exportOptionsPlist , so we had to remove the bitcode from all our frameworks.




If someone uses cocoapods and wants to disable the bitcode for their frameworks, you can simply add the following to your 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 

Via Stack Overflow




To add a little more clarification as to what is happening with this problem:

It seems that the apple just started applying it yesterday. If your main binary is disabled, but you have enabled a static library or a framework in which bitcode is enabled, this will result in a verification failure. This happens and vice versa: if your main binary is included, but you turn on a library / framework that has a bitcode disabled, it will not be able to check.

I had several dependencies on GoogleMaps and Amazon that made it unnecessary to switch everything to enable the bitcode, so I just turned it off and removed the bitcode from one static library that I imported into my project. You can remove the bitcode from any binary using the following command

 $ 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

While the above solutions to the problem, I do not agree that if the main binary is disabled using bit code, all the included binaries are needed for this. Bitcode is just some IR code that Apple can use to dilute applications - why don't they just remove it from other binaries (which I assume is what they previously did)? It makes no sense to me.

Apple thread https://forums.developer.apple.com/thread/48071

+63
Jun 03 '16 at 23:03
source share

I just unchecked the "include bitcode" checkbox and started loading

+5
Jun 03 '16 at 14:35
source share

For Carthage

  • Open your libraries in the project folder (Carthage-> Checkouts β†’ [lib name])
  • Then open each lib in Xcode
  • Install Enable Bitcode - None in Build Settings enter image description here
  • Do this for each library in the list.
  • carthage build --platform xxx

Then you can archive and send to Appstore successfully

+2
Jun 06 '16 at 13:58 on
source share

We got the same error "Xcode - Error ITMS-90635 - Invalid Mach-O in the kit - sending to the App Store" from last Friday (June 3, 2016) .. used the following 2 steps to do this

Step 1:
Added code to pod file to mark 'ENABLE_BITCODE' = 'NO' in folders

 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 

Step 2:
Marked 'ENABLE_BITCODE' = 'NO' in containers for the project

Note. I tried with the labeling 'ENABLE_BITCODE' = 'YES' in the modules and in my project, but since we use the twillio framework for the call, which has the -read_only_relocs flag, which does not allow compilation using 'ENABLE_BITCODE' = 'YES' . Therefore, if your application does not use any of these frameworks with -read_only_relocs , you can continue to create 'ENABLE_BITCODE' = 'YES' , as this will be useful for your application.

+1
Jun 06 '16 at 11:39
source share

For those who have a build error after setting "Enable Bitcode" to "Yes." I have to update the whole library. But the easiest part is to use Cocoapods.So, please update your entire pod project: (one by one) or All

Then, set the Enable BitCode to No before the archive.

Then Archive β†’ Download β†’ This error will go through.

Greetings.

0
Jun 03 '16 at 22:02
source share

I had the same problem with the project "ENABLE_BITCODE = YES" and the dependencies "ENABLE_BITCODE = YES" on my CI with Xcode 7.3. The solution upgraded Xcode to the latest available version (7.3.1)

0
Jun 24 '16 at 11:31
source share



All Articles