App IDs are an integral part of the iOS Development and Provisioning Process that allows an application to communicate with the Apple Push Notification service and/or an external hardware accessory. In addition, an App ID can also be used to share keychain data (such as passwords) between a suite of applications and share document and configuration data between your applications using iCloud.
An App ID is the combination of a unique ten character string called the "Bundle Seed ID" and a traditional CF Bundle ID (or Bundle Identifier). The Bundle Seed ID portion of your App ID can be utilized to share keychain access between multiple applications you build with a single App ID. In addition, it can be incorporated into any external hardware accessories you wish to pair your iOS application with. Registration of your App ID is required to utilize the Apple Push Notification service (APNs) and to register an application to incorporate In App Purchases.
The Bundle Identifier portion of an App ID can be substituted with a wild-card character (asterisk '*') so that a single App ID may be used to build and install multiple applications. If the wild-card character is not used, the Bundle Identifier portion of your App ID must be input as your CF Bundle ID in Xcode to allow the application to install on your device. The Bundle Seed ID portion of your App ID does not need to be input into Xcode. Wild-card App IDs cannot be used with the Apple Push Notification service or for In App Purchase.
For more information on utilizing the Apple Push Notification service, view the Apple Push Notification service Programming Guide, theApp ID How-To as well as the Apple Push Notification topic in the Apple Developer Forums.
For more information on incorporating In App Purchases into your applications, view the Store Kit Programming Guide, the App ID How-Tos, and the iTunes Connect User Guide for setup instructions.
For more information on Keychain Access sharing, view the Keychain Services Reference.
For more information on developing external accessories to communicate with your iOS application, view MFi Program.
For more information on utilizing iCloud in your applications, view What's New in iOS 5.
Creating and Configuring App IDs
![A figure shows that this chapter is part of Step 2 in the overall team admin workflow. App I D's are one part of a Development Provisioning Profile.](https://i-blog.csdnimg.cn/blog_migrate/5fdc49ba795b221c66d0c225a1c7eacd.jpeg)
An app ID is a string used to specify a keychain identity and an app, or set of apps. You can configure an app ID to share data between apps and enable an app to use Apple Push Notification Service (APNS), In-App Purchase, iCloud, and Game Center.
An app ID has two parts: the bundle seed ID followed by the bundle ID search string. The default bundle seed ID is your team ID, a 10-character string generated by Apple. A bundle ID search string is traditionally a reverse-domain-name style string. It’s the string you use in Xcode as the bundle identifier.
Figure 4-1 The Two Parts of an App ID, the Bundle Seed ID and the Bundle ID Search String.![](http://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/DevPortalGuide/Art/app_ids.jpg)
The bundle seed ID allows you to share keychain data between apps. Apps with the same bundle seed ID can share data, such as usernames and passwords. The default bundle seed ID is the team ID. Each development team is assigned a team ID and you can use it for all apps.
There are two types of app IDs that can be created: wildcard app IDs and explicit app IDs. The bundle ID search string determines the type of the app ID. The following sections provide a brief review of the types of IDs. For a detailed explanation, see “Application Identifiers are Used to Match Applications to Services” in Developing for the App Store.
Use Wildcard App IDs for a Set of Apps
The wildcard app IDs allow you to use a single app ID to build and install multiple apps. However, wildcard app IDs can’t be used with APNS, In-App Purchase, iCloud, or Game Center. Use a wildcard app ID when getting starting with development because a single ID can be used for all of your apps. Provisioning a device in Xcode generates a team provisioning profile with a wildcard app ID that you can use for development.
A wildcard app ID uses the asterisk character (*) in the bundle ID search string. The asterisk must be the last character in the bundle ID search string, such ascom.domain.*
or just *
. In the bundle identifier field in Xcode, developers can replace the asterisk with any string, as long as it matches the wildcard pattern. For example, a1b2c3d4e5.com.domainname.*
could be a1b2c3d4e5.com.domainname.myApp4
in Xcode.
![This figure shows how a wildcard character, an asterisk, can be placed in the bundle identifier. It can either fully replace the bundle identifier or can replace just the last part.](http://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/DevPortalGuide/Art/app_ids_wildcard.jpg)