When to use an explicit app ID versus a wildcard ID?
What are the exact advantages of creating explicit App ID and Wild card ID? I saw that if we are creating a bundle of apps, we can create a wildcard App ID, otherwise explicit ID is good etc. But I am a bit confused and want to know more details about the exact advantages of both types.
If I have a free version first(1.0) and then want to submit priced version of same app with new features(2.0), what shoul开发者_StackOverflow中文版d be the right way?
Thanks.
You should choose a wildcard App ID if you do not plan to use push notifications and/or in App purchase. In your case, since you plan to start with a free version, then to provide a priced new version you should choose an explicit App ID reflecting the name of your application, and use in App purchase to allow people to buy the contents related to your priced version. This is what Apple is now recommending. Basically, the folks at Apple do not want us to develop a light and a priced version. They want a single App that can offer free contents and priced contents through in App purchase.
Provisioning profiles with Wildcard App IDs
are recommended for most iPhone OS development because a single Wildcard App ID
can be used to build and install most applications, including the sample code projects provided in the iPhone Reference Library. Wildcard App IDs are created by entering an asterisk in the Identifier portion of your App ID. The wildcard asterisk character must be the last character in the App ID string. If you use a Wildcard App ID, remember to replace the asterisk with an appropriate string using the reverse-DNS format when you fill in the Bundle Identifier field in your Xcode project.
Example App ID: ABCDE12345.*
ABCDE12345
is the Bundle Seed ID (generated by Apple)
* is the Bundle Identifier of the App ID. When you enter the Bundle Identifier in your Xcode project you need to replace the asterisk with an appropriate string using the reverse-DNS format
Example App ID: ABCDE12345.com.foocompany.*
ABCDE12345
is the Bundle Seed ID (generated by Apple)
com.foocompany.* is the Bundle Identifier of the App ID and the Bundle Identifier in your Xcode project must start with ‘com.foocompany.’ and the asterisk can be replaced with a string of your choosing
The second type of App ID is called an Explicit App ID. This type of App ID restricts a provisioning profile to only allow the installation of one application. Explicit App IDs are required to enable certain iOS features such as In App Purchase and Apple Push Notification service in your applications. Explicit App IDs are created by entering a specific string in the Identifier portion of your App ID. The recommended practice is to use a reverse-DNS formatted string for the Bundle Identifier portion of the App ID.
Example App ID: ABCDE12345.com.foocompany.appname
ABCDE12345
is the Bundle Seed ID (generated by Apple)
com.foocompany.appname is the App ID's Bundle Identifier and needs to be the same as your app’s Bundle Identifier
If you currently have an app that uses a wildcard App ID and would like to update your app to use an explicit App ID please see Technical Q&A QA1680, 'Updating from a wildcard App ID to an explicit App ID'.
Important Note: Change the "yourcompany"
in your app’s default Bundle Identifier to the actual name of your company. This helps to avoid issues when you try to upload your app to the App Store.
Wildcard App Id is easier to use. You don't have to create new App Id and new provisioning profile for each small app you want to test. Explicit App ID is necessary to enable push notifications and in-app purchase. If you don't need both, just use wildcard and save your time for something more important than creating, downloading, installing and distributind multiple provisioning profiles(up to three for each App id - for development, adhoc and app store distributions!).
wildcard must be good for "Developer" testing your app on your device. (which should be in your provisioning profile with its associated UDID) Exclusive ID is for "Distribution", I would imagine
The idea is, as I understand it, that apps with a wildcard app id can share data. So if you want your pay version to be able to grab the settings the user entered when they were using the free version, you'd want that. That said, I've never used the wildcard option, so I don't have hands on experience using this.
精彩评论