How to ENABLE_BITCODE in Xcode 7?

IosObjective CXcodeParse PlatformFrameworks

Ios Problem Overview


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?

Ios Solutions


Solution 1 - Ios

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

Solution 2 - Ios

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.

Solution 3 - Ios

This appears to now be an error in Xcode 7 beta 3. If the the Cocoapod you're using wasn't built with ENABLE_BITCODE turned on, you can try disabling it altogether by adding the following to the bottom of your Podfile:

post_install do |installer|

  installer.pods_project.targets.each do |target|
    installer.pods_project.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end

    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end

WARNING: From what I've read, you can't submit WatchKit apps without ENABLE_BITCODE turned on, so that is a trade-off until Parse updates their pods.

Solution 4 - Ios

Just Search for bitcode in Build setting and set it to false/NO

Solution 5 - Ios

You have several options

  • Enable Bitcode (ENABLE_BITCODE)
  • Other C Flags(OTHER_CFLAGS) with -fembed-bitcode
  • Create User-Defined Setting BITCODE_GENERATION_MODE with bitcode

[Bitcode]

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKingofmitView Question on Stackoverflow
Solution 1 - IosSheamusView Answer on Stackoverflow
Solution 2 - IosBjörn KaiserView Answer on Stackoverflow
Solution 3 - IosChris TrevarthenView Answer on Stackoverflow
Solution 4 - IosPravin S.View Answer on Stackoverflow
Solution 5 - IosyoAlex5View Answer on Stackoverflow