xcodebuild different provisioning profile for target dependency

I spent far too long working on this today. I was on my way to bed when the answer hit me:

In each of your targets’s Build Settings you should set a $VARIABLE for the profile name. To do this, selected “Other” from the bottom of the list of profiles. Doing this will open a text field – choose a different $VARIABLE for each target – for example I chose $APP_PROFILE for the container app target and $EXTENSION_PROFILE for my Today extension target

Adding a build variable variable...

This will result in something like the following:

Profiles

Finally, when building with xcodebuild, specify the profile UUIDs as you did with PROVISIONING_PROFILE:

xcodebuild ... APP_PROFILE="85b6f019-d5e5-43a7-9e8f-e3aaed64a7e4" EXTENSION_PROFILE="e50cf605-ab63-40ad-8329-2758359ea748"

Building from within XCode seems to be unaffected – as far as I could tell XCode is selecting the default profiles (as if in “Automatic” mode)

Theoretically this would support multiple extensions too.

Works for me with XCode 6.3 🙂

Leave a Comment