I want to close the loop here.
As I mentioned above, the CFBundleIdentifier
documentation makes it crystal clear that a watchOS app must have the bundle ID of the container app plus the .watchkitapp
suffix. There’s no debate about that.
Given that, the Developer website shouldn’t let team A register an App ID of AAA.III
and team B register an app ID of BBB.III.watchkitapp
, where AAA
and BBB
are App ID prefixes for teams A and B respectively, and III
is a bundle ID.
However, it’s clear that this protection isn’t, or at least hasn’t been, working. In Volker88’s case, their app is open source and we suspect that a different developer downloaded and built their project, whereupon Xcode somehow managed to register the watchOS app’s App ID to that developer’s team O-: That’s speculation though. I wasn’t able to fully explain how this happened, largely because I was focused on helping Volker88 fix it.
The solution was for that developer to remove the App ID from their team, allowing Volker88 to re-register it to their team. Getting that organised took a while )-:
In conclusion, I have three bits of advice.
First, if you encounter this problem yourself, try to work out what other team registered the App ID. I most commonly see this where developer’s collide with themselves. For example, you might be a member of multiple teams and you accidentally register the App ID with the wrong team. It’s easy to fix that: Switch to the other team and delete the App ID.
Second, if your app is open source, minimise the risk of this happening by using a different bundle ID in your open source project. One option here is to use a disambiguator like we do for sample code. To see that in action, download any modern sample (like this one) and search for SAMPLE_CODE_DISAMBIGUATOR
.
Finally, if you do hit this problem and are unable to resolve it yourself, you should contact Apple Developer Program Support via Apple > Developer > Contact Us. Please be patient with them though. This is a complex issue and you’re gonna need to spend some time explaining it before you get any traction.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"