What the error BITCODE_IMBALANCE_ERROR means?

Hello,


I'm trying to submit my app on iTunes Connect. I can sucessfully upload a new binary, but when I click on "Submit for Review" button, I'm seeing the following error on iTunes Connect dashboard:


ITC.apps.assetvalidation.BITCODE_IMBALANCE_ERROR.error.message


I would like to know what this error means and how can I solve this problem. I did not change anything related to Bitcode in this binary.


Thanks in advance,


Rodrigo

Accepted Reply

Hi


We have solved this conundrum in our case, we have an Apple Watch companion app. We tried re-building and uploading again. XCode uploader actually reported an error this time round during the upload:-


ERROR ITMS-90635: "Invalid Mach-O Format. The Mach-O in bundle "SeaNav-GB.app/PlugIns/SeaNav_Core WatchKit Extension.appex" isn’t consistent with the Mach-O in the main bundle. The main bundle Mach-O contains armv7(machine code) and arm64(machine code), while the nested bundle Mach-O contains armv7(bitcode) and arm64(bitcode). Verify that all of the targets for a platform have a consistent value for the ENABLE_BITCODE build setting."

ERROR ITMS-90635: "Invalid Mach-O Format. The Mach-O in bundle "SeaNav-GB.app/PlugIns/SeaNav_Core WatchKit Extension.appex" isn’t consistent with the Mach-O in the main bundle. The main bundle Mach-O contains armv7(machine code) and arm64(machine code), while the nested bundle Mach-O contains armv7(bitcode) and arm64(bitcode). Verify that all of the targets for a platform have a consistent value for the ENABLE_BITCODE build setting."


ENABLE BITCODE was set to NO in our main app and we needed to set ENABLE BITCODE in Build Settings to NO in both the Extension and the WatchKit app. It was not obvious how to do this at first. The setting was hidden from us in XCode until we made sure that the "All" tab was selected at the top of the Build Settings view. Re-built, re-uploaded and now finally submitted for review.

Best regards


Pocket Mariner

Replies

Same issue for me, build is distributed fine through TestFlight but no putting it in Apple Review.

Same here. Getting exact same error. Do you use Admob framework by any chance?

Same here


ITC.apps.assetvalidation.BITCODE_IMBALANCE_ERROR.error.message

I have the same error.
A few days ago I distributed the app on TestFlight, and today I can't submit it to review
ITC.apps.assetvalidation.BITCODE_IMBALANCE_ERROR.error.message

Hi


We have solved this conundrum in our case, we have an Apple Watch companion app. We tried re-building and uploading again. XCode uploader actually reported an error this time round during the upload:-


ERROR ITMS-90635: "Invalid Mach-O Format. The Mach-O in bundle "SeaNav-GB.app/PlugIns/SeaNav_Core WatchKit Extension.appex" isn’t consistent with the Mach-O in the main bundle. The main bundle Mach-O contains armv7(machine code) and arm64(machine code), while the nested bundle Mach-O contains armv7(bitcode) and arm64(bitcode). Verify that all of the targets for a platform have a consistent value for the ENABLE_BITCODE build setting."

ERROR ITMS-90635: "Invalid Mach-O Format. The Mach-O in bundle "SeaNav-GB.app/PlugIns/SeaNav_Core WatchKit Extension.appex" isn’t consistent with the Mach-O in the main bundle. The main bundle Mach-O contains armv7(machine code) and arm64(machine code), while the nested bundle Mach-O contains armv7(bitcode) and arm64(bitcode). Verify that all of the targets for a platform have a consistent value for the ENABLE_BITCODE build setting."


ENABLE BITCODE was set to NO in our main app and we needed to set ENABLE BITCODE in Build Settings to NO in both the Extension and the WatchKit app. It was not obvious how to do this at first. The setting was hidden from us in XCode until we made sure that the "All" tab was selected at the top of the Build Settings view. Re-built, re-uploaded and now finally submitted for review.

Best regards


Pocket Mariner

Hi guys,


In our project, we managed to solve the issue by following two steps:


1) Set all ENABLE_BITCODE to false (in all targets);


2) Unselect the Bitcode option when submiting the new version using Xcode.


In a previous release, we removed our Apple Watch targets due to some issues, so I think Watch configurations are not the problem in our case.


Thanks everyone, hope you'll get rid of this problem as well. :-)


Best Regards,


Rodrigo

Hello,


The BITCODE_IMBALANCE_ERROR error means the bitcode settings in the application vs the frameworks/extensions it includes, or even just between frameworks/extensions are not consistent. If bitcode is turned on for the application, it needs to be turned on for all frameworks/extensions embedded in the application. If bitcode is turned off for the application, it needs to be turned off for all embedded frameworks/extensions.

As several of you have already identified, you want to ensure bitcode is enabled (or disabled) on all executable code, including third-party frameworks.