Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to ENABLE_BITCODE in Xcode 7?

I'm developing with parse.com and I get this problem upgrading to Xcode 7. Some Parse Frameworks are not fully working.

I've got this Warning:

URGENT: all bitcode will be dropped because '/Users/[MY_USER]/Downloads/parse-starter-project-1/ParseStarterProject/Parse.framework/Parse(PFMutableFileState.o)' was built without bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note: This will be an error in the future.

Let me remind that everything was working in the last version of Xcode 6.

How to ENABLE Bitcode in Xcode 7?

like image 706
Kingofmit Avatar asked Jul 03 '15 10:07

Kingofmit


People also ask

What does enable Bitcode do in Xcode?

Enable Bitcode Bitcode is an Apple technology that enables you to recompile your app to reduce its size. The recompilation happens when you upload your app to App Store Connect or export it for Ad Hoc, Development, or Enterprise distribution.

How do I disable Bitcode?

To disable Bitcode, go to the Build Settings tab of your workspace, scroll down to Build Options , and set Enable Bitcode to No.

Should I include Bitcode for iOS content?

For iOS apps, bitcode is the default, but optional. If you provide bitcode, all apps and frameworks in the app bundle need to include bitcode. For watchOS apps, bitcode is required.

Is it safe to disable Bitcode?

If you turn BitCode on, then the intermediate representation of the compiled program gets uploaded and Apple will able to recompile and/or optimize your apps for future architectures (as described here). Turning it off is very safe for the time being.


2 Answers

If you are using a third-party framework or library that was updated for iOS 9, and you don't want to include bitcode, then you should check to see if a version of the framework was provided without bitcode. See Apple's note on when to include it in your app bundle:

For iOS apps, bitcode is the default, but optional. For watchOS and tvOS apps, bitcode is required. If you provide bitcode, all apps and frameworks in the app bundle (all targets in the project) need to include bitcode.

To disable/enable bitcode in your project, follow these steps:

  1. In the project build settings, make sure you have enabled All settings to be visible.
  2. The Build Options are the 4th section down. Select Yes or No for the Enable Bitcode option.

enter image description here

enter image description here

like image 169
Sheamus Avatar answered Sep 22 '22 08:09

Sheamus


That would be something Parse has to do, when enabling bitcode for your app, all apps and frameworks in your bundle need to include bitcode (see here). As you can see, the Parse framework does not use this as of now, which is understandable as this is still in beta and not ready for prime-time yet.

like image 34
Björn Kaiser Avatar answered Sep 21 '22 08:09

Björn Kaiser