What would be the path if we stick to the same bundle ID but sign with a different certificate?
That could have some benefits, but it’s also potentially more confusing. If you change the bundle ID then everything is new, so the user path is:
-
Remove the old.
-
Install the new.
They can even skip the first step and have both installed, and then only use the new.
The issue with changing the signing identity is that it changes the designated requirement (because the DR encodes the Team ID). macOS uses the DR to track the ‘identity’ of your code, so changing it can result in non-obvious problems. Indeed, this came up recently in another thread.
For more background on DRs, see TN3127 Inside Code Signing: Requirements.
Could we in theory remove one flavour and recreate it in the other account (or transfer)?
First up, with Developer ID there’s no app transfer process.
Regarding the remove and add, the key issue here is your use of restricted entitlements, that is, entitlements that must be authorised by a provisioning profile. To get these to work you must have created a profile for your product, and that means you must have registered its App ID. I don’t think you’ll be able to delete that App ID because there are products shipping with it [1].
But, even if it did, you’d still end up with a new Team ID and thus the DR issue outlined above.
Also, if we did it this way, and the two BUs become separate companies, are there any implications (with respect to Apple's handling of identifiers) in differently named products having the same base domain name as part of the bundle ID?
AFAICT that’s not the case. The Developer website doesn’t care what bundle IDs you use [2]. What matters is that they’re unique [3], and that’s something that the App ID registration process does enforce.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
[1] I’m more familiar with the App Store side of this, where you can’t delete an App ID once App Store Connect is aware of it. I’ve never actually explored this on the Developer ID side.
[2] IIRC it prevents you from using the com.apple.
prefix though (-:
[3] Also an app extension’s bundle ID must be an immediate ‘child’ of the container app.