If I'm making an app that'a cross platform between macOS, tvOS, iOS, and watchOS what would be the best naming convention for the bundle identifiers. I'm currently using com.company.projectname.platform So for example: com.apple.garageband.iOS However I'm wondering if each platform should have the same bundle identifier? So would I just use com.apple.garageband for each platform? Does it matter? Thanks, Kevin
It used to be (don't know the current status) that you could not use the same bundle ID for macOS and iOS applications, even though they're in different app stores. So I would use the .mac and .ios convention for the two platforms. If you want to include your tvOS app in the purchase of your regular iOS app (that is, as a platform variant in the iTunes Connect application record), you must use the same bundle ID as the iOS app. (If you sell the tvOS app separately, you should use a different bundle ID.) I don't know the rules for watchOS, but again I would tend to use a unique bundle ID unless iTunes Connect requires the same bundle ID for your particular configuration.
The other thing to keep in mind is that you might want to use an application group too, so that (for example) the macOS and iOS can share iCloud Keychain settings. You can have, but don't need, an additional bundle ID for the group. I ended up using the .ios bundle ID for this.