Support for Non-Team ID prefixes on the Mac App Store

My iOS version of the app is available on the App Store with a non-team ID prefix for its bundle ID. It has been available there for a long time and I am not sure why I chose a custom prefix for it.

The Mac version of the same app is available on the Mac App Store with a different bundle ID and with a prefix that matches my team ID.

I am currently looking to "merge" both apps into a single bundle ID. The plan is to stop using the current Mac app and release a new one as a universal app under the existing bundle ID for the iOS app.

Unfortunately, it looks like that the Mac App Store does not actually allow any submissions that have a non-team ID for a prefix.

I know that it is a very specific case but any suggestions would be welcomed.

Answered by DTS Engineer in 847776022

Just so we’re clear about terminology:

  • A bundle ID is how the system uniquely identifies your app. It’s typically in reverse DNS format, for example, com.apple.iWork.Pages.
  • An App ID is composed of an App ID prefix and a bundle ID. For example, 74J34U3R6X.com.apple.iWork.Pages.
  • The App ID prefix is typically your Team ID, but iOS used to encourage unique App ID prefixes, where you allocate a prefix that’s different from your Team ID.

Unique App ID prefixes are a legacy feature. We generally recommend that folks move to using their Team ID as the App ID prefix. This enables important features, for example, shared keychain access groups.

Unique App ID prefixes were a legacy feature before the App Store landed on the Mac. Given that, they’ve never been supported on the Mac. And, while I can’t predict The Future™, it seems unlikely that we’d add support for this legacy feature to the Mac.

My general advice for folks in your situation is to convert your iOS app to using its Team ID as its App ID prefix.

IMPORTANT Doing this can have negative consequences. The primary one relates to keychain access groups. I talk about that in depth in App ID Prefix Change and Keychain Access. Fortunately, you’re not transferring your app between teams, so there’s a reasonable path forward in your case.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Accepted Answer

Just so we’re clear about terminology:

  • A bundle ID is how the system uniquely identifies your app. It’s typically in reverse DNS format, for example, com.apple.iWork.Pages.
  • An App ID is composed of an App ID prefix and a bundle ID. For example, 74J34U3R6X.com.apple.iWork.Pages.
  • The App ID prefix is typically your Team ID, but iOS used to encourage unique App ID prefixes, where you allocate a prefix that’s different from your Team ID.

Unique App ID prefixes are a legacy feature. We generally recommend that folks move to using their Team ID as the App ID prefix. This enables important features, for example, shared keychain access groups.

Unique App ID prefixes were a legacy feature before the App Store landed on the Mac. Given that, they’ve never been supported on the Mac. And, while I can’t predict The Future™, it seems unlikely that we’d add support for this legacy feature to the Mac.

My general advice for folks in your situation is to convert your iOS app to using its Team ID as its App ID prefix.

IMPORTANT Doing this can have negative consequences. The primary one relates to keychain access groups. I talk about that in depth in App ID Prefix Change and Keychain Access. Fortunately, you’re not transferring your app between teams, so there’s a reasonable path forward in your case.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Hi Quinn,

Many thanks for your detailed reply, I really appreciate it.

What would be the correct way to proceed with the migration to the Team ID as the App ID prefix? Do I just delete the app identifier in the Developer portal, then create a new one with the same bundle ID but the correct (Team ID) App ID prefix?

Also, am I correct assuming that any changes that I make this way don't affect the App Store version of the app until a new update is actually released on the App Store?

My iOS version of the app is available on the App Store with a non-team ID prefix for its bundle ID. It has been available there for a long time and I am not sure why I chose a custom prefix for it. The Mac version of the same app is available on the Mac App Store with a different bundle ID and with a prefix that matches my team ID. I am currently looking to "merge" both apps into a single bundle ID. The plan is to stop using the current Mac app and release a new one as a universal app under the existing bundle ID for the iOS app. Unfortunately, it looks like that the Mac App Store does not actually allow any submissions that have a non-team ID for a prefix. I know that it is a very specific case but any suggestions would be welcomed. my ID :- 563388139

563388139

What would be the correct way to proceed with the migration to the Team ID as the App ID prefix?

That’s not something you can change yourself; you have to talk to Apple Developer Program Support. Reach out to them via Apple > Developer > Contact Us.

Oh, one thing I should mention: If your app has embedded app extensions, you should include their App IDs in your request as well. It’s actually possible to have different App ID prefixes in your app and its nested appexes, but a) that’s weird, and b) it’ll block your eventual goal of getting to the Mac.

any changes that I make this way don’t affect the App Store version of the app until a new update is actually released on the App Store?

Basically yes, but the details are kinda subtle.

The DevPrograms change allows you to submit an app with the the new prefix to App Store Connect. Once you release that app to customers, the change takes effect on each device as each customer updates your app.


I am not sure why I chose a custom prefix for it.

That was just how things worked back in the day.

I am currently looking to “merge” both apps into a single bundle ID.

That’s not possible. You can use the process I outlined above to change the App ID prefix of the iOS app. That would allow you to ship a Mac product with the same bundle ID as your iOS app. However, there’s no way to merge two apps. Our systems identify apps by their bundle ID. Your existing Mac app would still have a different bundle ID, so it’d still be a separate app.

What you can do is retire (remove from sale) your existing Mac app and encourage your customers to move over to the new app, the one that shares its bundle ID with your iOS app. However, that’s not always a simple process, especially if it’s a paid-for app or if you support in-app purchases.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Many thanks for clarifying the migration process, Quinn.

One more question - my app currently supports "Sign in with Apple" and it is enabled as the "Primary App ID" with its non-Team ID prefix. The fact that the "Sign in with Apple" settings page is using App IDs and not bundle IDs is a bit concerning since the App ID will change after migration.

Do you know by any chance how "Sign in with Apple" is implemented under the hood, is it directly tied to the App ID or it is working with Bundle IDs? I don't want to reset my current "Sign in with Apple" users :)

I don't want to reset my current "Sign in with Apple" users :)

Indeed. I’m not a Sign in with Apple expert, so I don’t have a definitive answer for you here. I recommend that you start a new thread about this in the Privacy & Security > Sign in with Apple topic area.

Having said that, I’ve not heard a lot of kvetching about this — unlike, say, with the keychain — so my suspicion is that this won’t be a problem.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I recommend that you start a new thread about this in the Privacy & Security > Sign in with Apple topic area.

Thanks! I tried posting a thread there, unfortunately it looks like it is not possible to create a new thread for "Sign in with Apple". I always get "This post contains sensitive language. Please revise it in order to continue". Created FB18737304.

I have the same problem )-:

Hmmm, that’s weird. Thanks for filing FB18737304. I’ve escalated it internally (i. 98053709).

This seems to be specific to Privacy & Security > Sign in with Apple. I recommend that you create your thread in Privacy & Security > General and I’ll move it over.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I recommend that you create your thread in Privacy & Security > General and I’ll move it over.

Belay that. It seems that our forums folks fixed this quickly. I’m now able to post in Privacy & Security > Sign in with Apple. Please retry your original post and lemme know how you get along.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Support for Non-Team ID prefixes on the Mac App Store
 
 
Q