Is it safe to change the AppID Prefix between updates?

Magnus picture Magnus · Aug 27, 2013 · Viewed 10.4k times · Source

I am trying to understand the role of the first part of the AppID for iOS apps. This part was formerly known as the "Bundle Seed ID", but is now often referred to as the AppID Prefix.

A while ago (iOS 5?), Apple made some changes in both their portal and their documentation and started to recommend using the "Team ID" (unique per developer account) as the AppID Prefix. This is simple and straightforward for new developers with new apps.

But what is the the best practice for handling existing apps with regards to the AppID prefix? I know that it is not possible to change BundleID (= the second part of the AppID) between two app versions, but is it safe to change the prefix between app versions?

Note that I am not referring to replacing a "wildcard AppID", e.g. ABC1234567.*, to an explicit AppID using the same prefix, e.g. ABC1234567.com.mycompany.myapp. There is tons of information about this (most of it outdated, though). I am thinking about changing the complete AppID, e.g. ABC1234567.com.mycompany.myapp, for an existing app by replacing the prefix with my Team ID, e.g. DEF7654321.com.mycompany.myapp.

I think I have read somewhere that it should be OK to change the prefix for existing apps, except in the special case that the app is using the keychain to store data. If this is true, the easiest way to handle the prefix for existing apps would be to migrate to the new Team ID when it's time to release next update. When all my apps are migrated, I can continue using the Team ID (as Apple recommends for new apps) and finally forget about all this mess. Can anyone confirm this?

If you can shed some more lights upon the concept of the AppID prefix, and what it is actually used for on an iOS device (except the keychain which I already know about), I would be happy if you could write a comment. Perhaps we could build up the full understanding of this by adding bits and pieces from different sources. Sadly, the Apple documentation is very thin in this area.

(There is another similar question: Can I change the Bundle Identifier in my app after it's been approved? But that is mainly focusing on the BundleID, i.e. the second part of the AppID, so this is not a duplicate, even though some of the answers and comments are touching upon this topic.)

Answer

Magnus picture Magnus · Oct 16, 2013

My conclusion, as of today, is that it is completely safe to replace the AppID prefix by a new one, with the exception of apps using the keychain. This opens up for migrating the prefix for all my exiting apps on the App Store to the new TeamID based prefix.

This conclusion is based on the following input:

  • A discussion I had with Apple's developer support a couple of weeks ago. They told me that there should not be any problems changing the prefix, except for apps using the keychain.
  • A test I did, using ad-hoc distribution, verifying that an existing app on a test device did not lose any data when it was updated to a new version with another prefix.
  • The fact that I have successfully uploaded new versions, with replaced prefix, of two of my existing apps without any problems so far.

The status of the two "live" apps that I have changed, is that they have been approved in the review. However, they are currently waiting in "Pending Developer Release", since I am waiting for a third app to get ready in order to sync the release with that one.

If I see any kind of problems when they go live on the App Store, I will of course update this answer.

Update:

The two apps were released successfully more than three weeks ago. The roll-out worked as expected and I have not received any user complaints.

In summary, the answer is YES, this is completely safe!