What is the difference between the app ID and the bundle ID? Where is the app ID in the Xcode project?

IosIphoneXcode

Ios Problem Overview


In the pList file, there is a bundle ID of the form com.mycompany.myapp, but Apple also provides an app ID on the developer portal.

Thus, basically, what is the use of the bundle ID? Where can we find the app ID in the Xcode project?

Ios Solutions


Solution 1 - Ios

Answers to OP Questions

What is the difference between the app ID and the bundle ID? > Because most people think of the App ID as a string, they think it is interchangeable with Bundle ID. It appears this way because once the App ID is created in Member Center you only ever use the App ID Prefix which matches the Bundle ID of the Application Bundle

Where is the app ID in the Xcode project? >You don't find the App ID in Xcode. It is an object (not just a string) in Member Center. Xcode is where the Bundle ID is found. It is specified when creating a new project. (screenshot below) Each Target in a project will have a unique Bundle ID. It can be found/changed by selecting the project in the Project Navigator the choosing the Target and either General or Info from the Jump Bar. > > The Xcode interface is described here or here (depending on how Apple is feeling that day).

What is the use of the bundle ID? > It uniquely defines each App. It is specified in Xcode. A single Xcode project can have multiple Targets and therefore output multiple apps. A common use case for this is an app that has both lite/free and pro/full versions or is branded multiple ways.

.


Definitions

  1. App ID > Think of this as an object in Member Center with lots of metadata including: > - App ID Description > - App ID Prefix > - App ID Suffix > - App Services

  2. App ID Description > Alphanumeric plus spaces > > Sometimes you are shown this instead of the App ID, or a dropdown is sorted by this App ID > > (I always make this the same as the App ID with the dots changed to spaces)

  3. App ID Prefix > Select from a list of available hashes in the Team ID format (see below) > > You pretty much always want to select the one labeled "(Team ID)"

  4. App ID Suffix > A reverse-domain name style string > > This must match the Bundle ID specified in Xcode

  5. Explicit App ID > Describes an App ID with an App ID Suffix that contains no wildcards > > Can only be associated with a single app (by exactly matching a Bundle ID) > > Compatible with all App Services

  6. Wildcard App ID > Describes an App ID with an App ID Suffix that ends with an asterisk > > Can be associated with multiple apps (matched similar to CLI/bash shell wildcard matching) > > Not compatible with Game Center, In-App Purchase, or Push Notifications App Services

  7. App Services > A combination of > - Data Protection > - Game Center > - iCloud > - In-App Purchase > - Inter-App Audio > - Passbook > - Push Notifications

  8. Team ID > A 10 character alphanumeric hash > > Unique to every Developer Account (as in the account that costs $99/yr, not every developer on the account)

  9. Apple ID > A unique integer assigned by Apple when an app is first created in iTunes Connect.

  10. Bundle ID > A reverse-domain name style string > > Defined in Xcode > > Uniquely identifies an Application Bundle on a device or simulator > > Must have a matching App ID registered with Apple in order to deploy > > Used to distinguish app updates vs. new apps

  11. Application Bundle > The result of the Build process in Xcode. Though it has an extention of .ipa it is a zip file. The content is a very specific directory structure and holds everything the App needs. It looks like someone took a Mac .app file from /Applications, put in a directory named Payload, zipped it, then change the extension.

  12. Target > Every Xcode project has at least 1 target. Each target specifies an app that can be built from the project.

  13. SKU > Apple allows you to store a Stock Keeping Unit string (alphanumeric, cannot have spaces) for each app in iTunes Connect. Apple doesn't do anything with this except display it on reports generated for your record keeping.

.


Create Xcode iOS Project dialog in Xcode

Create Xcode iOS Project screenshot

.


Create App ID page in Member Center

Create App ID screenshot

.


App Information page in iTunes Connect

iTunes Connect screenshot

Solution 2 - Ios

Bundle ID is the identifier of an App, but App ID is not. App ID is the connection between App and provisioning profile.

From "About Bundle IDs" section in here, you can see, "A bundle ID precisely identifies a single app".

And from here, you can see, "An app ID’s primary use is as part of a provisioning profile; it specifies which apps are authorized by the profile to be signed and launched.".

App ID has 2 parts: "bundle seed ID" and "bundle ID search string". Bundle seed ID makes Apps share keychain data, that is to say, it's the key chain entry of Apps which have the same bundle seed ID. Bundle ID search string defines how many Apps are covered by this App ID. If you use a Wildcard App ID, that means many Apps will be authorized by the provisioning profile associated with this App ID. For more details please refer to here.

Solution 3 - Ios

Simply, A bundle ID precisely identifies a single app. A bundle ID is used during the development process to provision devices and by the operating system when the app is distributed to customers.

During the development process, you use an app’s bundle ID in many different places to identify the app. enter image description here

Whereas, An App ID is a two-part string used to identify one or more apps from a single development team.

enter image description here

The Team ID is supplied by Apple and is unique to a specific development team, while the bundle ID search string is supplied by you to match either the bundle ID of a single app or a set of bundle IDs for a group of your apps.

There are two types of App IDs: an explicit App ID, used for a single app, and wildcard App IDs, used for a set of apps.

sources: Bundle ID , APP ID

Solution 4 - Ios

Multiple apps can share the same App ID. The App ID does not uniquely identify an application.

> An App ID is a two-part string used to identify one or more apps from a single development team

https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/AppID.html

The ID that you see in iTunes Connect, which is unique across apps, is known as the application's Apple ID. I apologize for the confusion because no one at Apple will.

Solution 5 - Ios

App id is a combination of two strings, are separated by a period (.). String1 is a team id, Which is assigned to the development team.(provided by apple) String2 is a bundle id, is selected by you.

App id is having two types.

  1. Explicit App ID: Here team id is used to match only one app with a specific bundle id. This app id is used to match one app only. example: TEAM_ID.BUNDLE_ID

  2. Wildcard App IDs: Here team id is used to match multiple apps with multiple bundle ids. This app id is used to match multiple apps. examples: TEAM_ID.BUNDLE_ID1, TEAM_ID.BUNDLE_ID2 ...

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser255607View Question on Stackoverflow
Solution 1 - IosBruno BronoskyView Answer on Stackoverflow
Solution 2 - IosChengjiongView Answer on Stackoverflow
Solution 3 - IosmustafaView Answer on Stackoverflow
Solution 4 - IosSteven KramerView Answer on Stackoverflow
Solution 5 - IosBalajiView Answer on Stackoverflow