Can Berk Güder
Can Berk Güder

Reputation: 113310

Wildcard App IDs for iPhone/iPod Touch Apps

I'm writing my third app, and I already have an app in the App Store, but I still don't get this App ID business.

I created the App IDs for my first two applications like this:

XXXXXXXXXX.me.cbg.FirstApp
YYYYYYYYYY.me.cbg.SecondApp

but then Apple introduced the App ID wizard, which I used to create the App ID and provisioning profiles for my third application:

ZZZZZZZZZZ.*

So my question is: What is the "proper" way of creating App IDs for three completely independent apps?

Should I use the XXXXXXXXXX.* format or XXXXXXXXXX.me.cbg.*?

Should I create three different App IDs, or just one wildcard ID?

Upvotes: 12

Views: 14030

Answers (5)

Poulsbo
Poulsbo

Reputation: 648

The key thing to understand is when you must use an Explicit App ID. From the iOS Team Administrator Guide:

Use an explicit app ID if you want to use APNS, In-App Purchase, iCloud, and Game Center features.

If you are comfortable not having access to those capabilities, you can use a wildcard App ID.

Upvotes: 1

PerfectGamesOnline.com
PerfectGamesOnline.com

Reputation: 1778

  1. Use wildcard App IDs for development because you only need 1 ID for all apps.
  2. Use Explicit App IDs on production if you need In App Purchase and Apple Push Notification service in your application.

I would personally always use Explicit App IDs on production because you never know when you will need In-app-purchase or Push Notification in the future. Apple claims though that it is posible to upgrade from wildcard to Explicit App IDs but...

The link is useful: http://developer.apple.com/library/ios/#qa/qa1713/_index.html

Upvotes: 1

arifwidi
arifwidi

Reputation: 81

Hey I just came by here, but (IMHO) I am a bit surprised that this is answered unclearly.

In my understanding you can freely submitting apps with wild card app ID if you don't want to use In App Purchase or Push Notification services in your app. If you wish to use one of them, Apple mentioned that you should be specific with your app ID.

However, additional there is another requirement, quoted from Provisioning portal:

If you are creating a suite of applications that will share the same Keychain access (e.g. sharing passwords between applications) or have a set of applications with no Keychain Access requirements, create a single App ID for all applications utilizing a trailing asterisk as a wild-card character.

Please refer to this page while you are logged into Developer Portal: iPhone Provisioning Portal - App ID How To

Hope that helps.

Upvotes: 4

Alex Wayne
Alex Wayne

Reputation: 187014

When creating your app ID on the apple website use something like this in the second box:

me.cbg.*

Now in you apps Info.plist use bundle identifier like so:

me.cbg.${PRODUCT_NAME:identifier}
// or
me.cbg.SomeAppName

You can safely ignore the XXXXXXXXXX the preprends your app id.

Upvotes: 2

Andrew Grant
Andrew Grant

Reputation: 58786

Both are "proper", it's mostly a question of the tradeoff between ease of management and allowing more granular management of certificates.

There two technical difference:

  1. Applications with IDs that are identical save from the top level (e.g. com.mycompany.aaa and com.mycompany.bbb) are able to access each others saved data. If you are writing a suite of applications then this could be extremely useful.

  2. You can only create a limited number of "AdHoc" certificates. If your apps have the same wildcard identifier then this limit would be imposed across all your applications.

Personally for a small developer I would recommend using a wildcard ID. It results in a lot less to manage in several areas, and hence removes a lot of potential for mistakes. Remember that for each ID you'll probably have three individual certificates (dev/adhoc/appstore).

Background:

Every iPhone application must have a unique identifier and certificate. Developers can either create a certificate per application by using a complete name (e.g. com.mycompany.aaa), or they can create a wildcard certificate/ID (e.g. com.mycompany.*) in which case the app name in the .plist file is used to complete the identifier during the DRM process.

Upvotes: 13

Related Questions