Is bitcode mandatory for all targets if you have a watchOS 2 App?

Everyone agrre that is possible to just have bitcode enabled in the WatchOS 2 app and disable it for other targets.

There are alredy rdar and discussion about this https://forums.developer.apple.com/thread/10392 everyone agree that is not possible to archive it because of a bug (no real errors/warning about it). To be sure I went again in the documentation, the note say:

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.


The intresting part is : "If you provide bitcode, all apps and frameworks in the app bundle need to include bitcode"

Is it possible that nobody got this? Is it bitcode required for every target if you have a watchOS App?

Replies

You might be right, maybe to fix the "bug" they will just put in a sensible error message.

This will slow down the roll-out of watchOS2 apps quite considerably if true, as i'm sure despite Apples ideal scenario most of us are including third party crash, analytics and/or ad libraries.

Now that Xcode beta 6 is out, has anyone tried archiving an app with Bitcode disabled for the parent iPhone app?

Yes.


https://forums.developer.apple.com/thread/15500

From what I understand, yes.

If the bundle contains a watch app target, then all targets in the bundle must contain bitcode.

This means that bitcode is optional only if you have no watch app targets in your bundle.

That also means that if you are using libraries which do not have bitcode available, then they cannot currently be included in your bundle if it contains a watch app.

Someone please correct me if I am wrong.

From what I've been able to gather, you (thankfully) do not need to have bitcode enabled in the parent iPhone app. This is corroborated by the fact that you can now successfully archive and upload builds to iTunes Connect with this configuration starting with the latest Xcode beta.