views:

741

answers:

2

I've got my app approved a while ago and used the * provisioning profile so I created somehting like:

com.mydomain.MyApp

but now I have the necessity of adding push notifications and I can't due I am using the * provisioning profile and it needs to have its own app ID and profile.

How should I proceed in order to achieve an app update without breaking anything

+1  A: 

You can't change the CFBundleIdentifier of a released app if you want to release updates for it, the App Store will automatically reject it when you upload. So...

I needed to enable iAds on an app previously developed with a wildcard App ID. Here's what I did:

I have a wildcard App ID of <AlphaNumeric>.* which my app currently uses, and my app has a CFBundleIdentifier of com.companyname.mygame.

Created a new App ID of <AlphaNumeric>.com.companyname.mygame.

Created new development and distribution provisioning profiles that include the new App ID.

Download the new provisioning profiles to Xcode and my devices.

I was then able to compile the App with the new non-wildcard distribution profile, which meant on upload I could enable iAds (or Push for you). The CFBundleIdentifier didn't change so the new compilation appears as an update to the existing app.

I can confirm this process worked without issue.

hjd
so, in other words, you can't change the bundle identifier of the app, but you can release updates under a new AppID and provisioning profile using that new AppID?
Ben Collins
As long as the new AppID contains the same alpha numeric namespace as the original wildcard ID. So if a company ("BenCollins") created an app ("TheApp") in wildcard App ID 1234abcd.*, you'd need to create a new App ID of 1234abcd.com.BenCollins.TheApp and use that.
hjd
+1  A: 

The bundle identifier for an app must always remain the same between updates, but the AppID can actually be different. So all you need to do is create a new AppID that used the same bundle identifier as the original app instead of a wild card.

Apps that use a wildcard still need a normal bundle identifier. The wildcard AppID lets you use any bundle identifier you like, but it still needs one.

http://developer.apple.com/iphone/library/qa/qa2009/qa1680.html