Kingofmit
Kingofmit

Reputation: 2066

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?

Upvotes: 63

Views: 79198

Answers (6)

Compaq LE2202x
Compaq LE2202x

Reputation: 2376

Bitcode will be deprecated from Xcode 14: https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes

Deprecations Starting with Xcode 14, bitcode is no longer required for watchOS and tvOS applications, and the App Store no longer accepts bitcode submissions from Xcode 14.

Xcode no longer builds bitcode by default and generates a warning message if a project explicitly enables bitcode: “Building with bitcode is deprecated. Please update your project and/or target settings to disable bitcode.” The capability to build with bitcode will be removed in a future Xcode release. IPAs that contain bitcode will have the bitcode stripped before being submitted to the App Store. Debug symbols for past bitcode submissions remain available for download. (86118779)

Upvotes: 0

yoAlex5
yoAlex5

Reputation: 34175

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]

Upvotes: 1

Sheamus
Sheamus

Reputation: 6606

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

Upvotes: 136

Pravin S.
Pravin S.

Reputation: 485

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

Upvotes: 3

Chris Trevarthen
Chris Trevarthen

Reputation: 5318

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.

Upvotes: 3

Björn Kaiser
Björn Kaiser

Reputation: 9912

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.

Upvotes: 4

Related Questions