This Page is a Work in Progress
We want this info out as soon as possible, so we're releasing this document a little early.
- Unity Tutorial: Building your Unity game to an iOS device for testing
- Cocoacasts: What Are App IDs and Bundle Identifiers
Below is an excerpt from Cocoacasts
You may read the full article here for more information on Bundle IDs and App IDs. They have great resources!
A bundle ID or bundle identifier uniquely identifies an application in Apple's ecosystem. This means that no two applications can have the same bundle identifier. To avoid conflicts, Apple encourages developers to use reverse domain name notation for choosing an application's bundle identifier. Allowed characters are alphanumeric characters, periods and hyphens.
Let's take Cocoacasts as an example. Every application I build for Cocoacasts has a bundle identifier that starts with
com.cocoacasts, that is, the reverse of the Cocoacasts website. For my company, Code Foundry, I use bundle identifiers that start with
You don't need to own the domain you use for your application's bundle identifier. The domain is only used to ensure the bundle identifier is unique. For example, I could also use
blog.cocoacasts for the applications I build for Cocoacasts even though I don't own
To create a unique bundle identifier, you append the name of the application to the reversed domain, for example,
com.cocoacasts.scribbles. Remember that you choose the bundle identifier. Reverse domain name notation is what Apple recommends and it's a pattern most developers use.
The only requirement is that the bundle identifier is unique. Xcode warns you if you choose a bundle identifier that's already in use by another application. I strongly recommended that you use a bundle identifier that makes sense and that's why most developers stick to reverse domain name notation.
If you're building a suite of applications, then you can use the same approach. Take a look at the following example. The first bundle ID is used for the iOS client of Scribbles whereas the second bundle ID is used for the macOS client of Scribbles.
It is important to note that at the time of writing, once you have registered a bundle identifier to a Personal Team in Xcode the same bundle identifier cannot be registered to another Apple Developer Program team in the future. This means that while you are testing your game using a free Apple ID and a Personal Team, you should choose a bundle identifier that is for testing only - you won’t be able to use the same bundle identifier to release the game. An easy way to do this is to add "Test" to the end of whatever bundle identifier you were going to use - for example,
com.yourCompanyName.yourGameNameTest. For more information on bundle identifiers on iOS, see this Apple documentation. (Source Article)
- Open the Player Settings in the Inspector panel (Edit > Project Settings > Player).
- Expand the section at the bottom called Other Settings, and enter your chosen bundle identifier where it says Bundle identifier
Updated less than a minute ago