Skip to content
App Signing & PushPart 20 of 44
App SigningMobile DevelopmentFlutter

Every Identifier in Apple's Developer Portal, Explained

The eleven identifier types in Apple's developer portal, from App IDs and App Groups to Merchant, Media and Maps IDs: what each one names and when you need it.

By Bimal Khatri·14 min read·Sep 17, 2026·Updated Sep 17, 2026
Every Identifier in Apple's Developer Portal, Explained

An identifier in Apple's developer portal is a registered name. You register it once under Certificates, Identifiers & Profiles, and Apple then hangs other things off it: provisioning profiles, certificates, .p8 keys and entitlements.

The portal's "Register a new identifier" page offers eleven types. Almost every app needs only the first, the App ID. The other ten matter when you use the feature they are named after: Sign in with Apple on the web, Wallet passes and orders, Apple Pay, iCloud, data shared with a widget, Apple Music, MapKit JS, or a casting extension for your own TV or speaker hardware.

All eleven at a glance

IdentifierWhat it namesYou need it when
App IDsAn app, app extension or App Clip, plus the capabilities it may useAlways
Services IDsA website that uses Sign in with Apple, WeatherKit, or Account & Organizational Data SharingSign in with Apple outside your iOS app, or WeatherKit's web service
Pass Type IDsOne kind of Apple Wallet passYou issue passes such as tickets or loyalty cards
Order Type IDsOne kind of Wallet order-tracking packageYou send order status to Wallet
Website Push IDsA website that sends Safari's original push notifications on macOSYou still use that legacy system
iCloud ContainersA storage space in iCloudYour app uses CloudKit or iCloud Documents
App GroupsA shared container for your own apps and extensionsA widget or extension shares data with the app
Merchant IDsYou, as a merchant that accepts Apple PayYou take Apple Pay for goods or services
Media IDsAn app or service that uses MusicKit, ShazamKit or Apple Music FeedYou call those services with developer tokens
Maps IDsAn app that uses MapKit JSYou show Apple Maps on a website
Media Device Sharing ExtensionA casting protocol that your media sharing extension speaksYou make playback hardware and ship an iOS 27 extension for it

Apple's help pages name the Account Holder or Admin role as the one that registers identifiers.

Which ones your feature needs

A chart that pairs features with identifiers and credentials. Push notifications: an App ID with Push on, plus an APNs key. A widget reading app data: an App ID each for the app and widget, plus an App Group. iCloud sync: App ID plus an iCloud container. Sign in with Apple on a website or Android: App ID plus a Services ID and a Sign in with Apple key. Apple Pay: App ID plus a Merchant ID and a payment processing certificate. Wallet passes: a Pass Type ID and its certificate. WeatherKit from a server: a Services ID and a WeatherKit key. MapKit JS: a Maps ID and a Maps key. Apple Music API or ShazamKit: a Media ID and a media key.

A useful way to sort the list: some identifiers are assigned to App IDs and end up inside your app's entitlements (iCloud containers, App Groups, Merchant IDs). Some are paired with a certificate that proves who signed something (Pass Type IDs, Order Type IDs, Website Push IDs, and Merchant IDs again). And some are paired with a .p8 key that your server uses to sign short-lived tokens (Services IDs, Media IDs, Maps IDs).

App IDs

An App ID is Apple's record of your bundle ID: your Team ID in front, A1B2C3D4E5.com.example.app, plus the list of capabilities the app may use. Every app, extension and App Clip needs one, and provisioning profiles are built around it. It comes in explicit and wildcard forms.

This one has a post of its own: Bundle ID vs App ID.

Services IDs

Apple's description: a Services ID identifies your website when it works with Apple web services such as WeatherKit, Sign in with Apple, and Account & Organizational Data Sharing. You register it with a reverse-domain style string, then configure the domain and return URL it is allowed to use.

It matters most for Sign in with Apple anywhere other than your Apple app: a website, or an Android app using a sign-in service such as Firebase Auth, Supabase or Auth0. Pair the Services ID with a Sign in with Apple key, which your server uses to sign the client secret it sends to Apple. The full setup is in Sign in with Apple on Android and the web.

For WeatherKit's web service, Apple says every registered Services ID is eligible. You also need a private key with WeatherKit enabled.

Pass Type IDs

A Pass Type ID names one kind of Wallet pass: this event's tickets, or this shop's loyalty cards. Apple's own example is a reverse-DNS string like com.example-company.passes.ticket.event-4631A.

You register the identifier first, then create a Pass Type ID certificate for it. That certificate signs each pass, and the passTypeIdentifier inside a pass must match the certificate that signed it. A pass is uniquely identified by its pass type identifier together with its serial number, so adding a pass with the same pair replaces the old one on the device.

An app can also read passes of its own types through the Wallet capability, which adds the pass type IDs to its entitlements. The certificate side, including what happens when it expires, is covered in Pass Type ID certificates.

Order Type IDs

An Order Type ID names one kind of order tracking package for Apple Wallet: the cards that show how an order is progressing, such as "your order has shipped", available from iOS 16. The steps mirror pass types: register the Order Type ID, then create an Order Type ID certificate under Certificates, Services.

Inside each order, orderTypeIdentifier must correspond with the certificate that signs it. People never see this value.

Website Push IDs

A Website Push ID registers one website for Safari's original push notification system on macOS. You create one per website, then a Website Push ID certificate to sign the site's notification packages and send the notifications through APNs.

For new work you probably do not need it. Standard Web Push, supported by Safari 16 on macOS 13 and by Home Screen web apps on iOS 16.4, needs no developer membership at all. Apple has not formally deprecated the older system, but the standard one has taken its place in practice.

iCloud Containers

An iCloud container is a named storage space in iCloud. You need at least one to turn on iCloud for an App ID, whether the app uses CloudKit (structured records in Apple's servers) or iCloud Documents (files synced across devices).

  • The name must begin with iCloud., followed by a unique reverse-DNS string: iCloud.com.example.app.
  • Several apps from the same team can share one container.
  • In the app, the containers appear in the com.apple.developer.icloud-container-identifiers entitlement.

Two cautions from Apple's documentation. If you later remove the iCloud capability in Xcode, you must turn iCloud off for the App ID yourself, and Xcode does not automatically detach a container you deselect, so that existing versions of the app keep working. And if you transfer an app that shares a CloudKit container with your other apps, the container goes with it, and the apps left behind lose access to it.

App Groups

An App Group is a shared container that several of your own apps and extensions can read and write. It is how a home screen widget or a notification service extension sees the main app's data, including a shared UserDefaults suite.

  • The identifier must begin with group.: group.com.example.app.
  • Each developer account can register up to 1,000 of them.
  • Every target that uses the group must have it enabled, on its own App ID.
  • A registered App Group also works as a keychain access group, so the apps can share keychain items.
  • For an App Clip, an App Group can share data only between the App Clip and its parent app.

Mac apps can also use groups named after the Team ID, such as A1B2C3D4E5.shared, which do not need registering. The step-by-step setup, including the Flutter side, is in App Groups on iOS.

A map showing two App IDs, one for the app and one for its widget, on the left. The app's App ID connects to an iCloud container, iCloud.com.example.app, through the iCloud capability; to a Merchant ID, merchant.com.example, through the Apple Pay capability; and to an App Group, group.com.example.app, through the App Groups capability. The widget's App ID connects to the same App Group.

Merchant IDs

A Merchant ID identifies you to Apple Pay as a merchant that can accept payments. It never expires, and one Merchant ID can serve several apps. By convention it starts with merchant, as in merchant.com.example, and the app lists its Merchant IDs in the com.apple.developer.in-app-payments entitlement.

The expiring parts are the certificates created for it:

  • the Apple Pay Payment Processing Certificate, whose key decrypts payment data (one active per Merchant ID, valid 25 months)
  • the Apple Pay Merchant Identity Certificate, which your server presents for Apple Pay on the web (up to three active, also 25 months)

Payment providers such as Stripe often generate the certificate request for you. More in Apple Pay Merchant ID and its two certificates.

Media IDs

A Media ID identifies an app or service that talks to Apple's media services: MusicKit (the Apple Music API), ShazamKit and Apple Music Feed. You tick the services you plan to use when registering it, then create a Media Services private key, which signs the developer tokens those services require.

Two details from Apple's help page:

  • You can attach two keys to each Media ID, so you can switch to a new key before revoking the old one.
  • The identifier's description is shown to people as your app's name when the app asks for access to Apple Music. Write it as you want users to read it.

Maps IDs

A Maps ID registers an app that uses MapKit JS, the JavaScript version of Apple Maps for websites. You register one Maps ID per app, create a private key with MapKit JS enabled, and use the key to sign the JSON Web Tokens that MapKit JS asks for. Each Maps ID can have two keys at a time. The portal can now also create Maps tokens for you directly.

Media Device Sharing Extension

This is the newest type, and the one most developers can ignore. Apple describes it as a Media Sharing Extension Protocol ID: the name of a casting protocol that your media sharing extension speaks, which media apps use to declare that they support your extension.

It is for companies that make playback hardware, such as TVs and speakers. From iOS and iPadOS 27, such a company can ship an extension that makes its devices appear in the system media picker, the same picker people use for AirPlay and Bluetooth. The extension handles discovery, connection and playback, and it can stream real-time audio and video, including screen mirroring. Media apps then use Apple's AVSystemRouting framework instead of bundling each hardware maker's own casting code.

A sequence chart with four lanes: a media app using AVSystemRouting, the iOS media picker, the hardware maker's extension, and the TV or speaker. When the picker opens, iOS loads the extension, which discovers devices and reports them. The person chooses one, iOS asks the extension to connect, and the extension connects over the maker's protocol. iOS tells the media app a device was selected, the app asks to start playing, and iOS hands playback to the extension.

The protocol ID goes into the com.apple.developer.media-device-extension entitlement, with a media-device-protocol. prefix, and each value must match a protocol the extension declares. Apple adds some strict conditions:

  • Both the extension and the app that contains it need the entitlement.
  • That container app must exist only to deliver and install the extension.
  • An app holding this entitlement cannot hold any other managed entitlement.

It replaces the Media Device Discovery Extension introduced with iOS 16.

What happens to identifiers over time

Identifiers are long-lived, but a few rules are worth knowing before you tidy up the list:

SituationWhat happens
Deleting an App ID you no longer useAllowed, and any profile that contains it becomes invalid
Deleting the explicit App ID of an app you uploadedNot allowed
App IDs grouped for Sign in with AppleMust be ungrouped before you can delete them
Changing an App ID's capabilitiesProfiles that contain it become invalid and need regenerating
A Merchant IDNever expires; its certificates do
Transferring an app to another teamThe App ID and iCloud containers move with it, and so does a Services ID associated with it for Sign in with Apple. An App Group can be deleted from the old account and registered in the new one

Common mistakes

  • Registering an App Group but enabling it on only one target. The widget or extension needs it on its own App ID too, or it cannot see the shared container.
  • Naming a container without its prefix. iCloud containers must start with iCloud. and App Groups with group..
  • Using the App ID where a Services ID is needed. Sign in with Apple on a website or Android is configured on a Services ID, with its own domain and return URL.
  • Setting up a Website Push ID for a new website. Standard Web Push works in current versions of Safari without one.
  • Writing a careless Media ID description. People see it as your app's name when asked for Apple Music access.
  • Confusing Media IDs with the Media Device Sharing Extension. One is for apps using Apple's media services; the other is for hardware makers building a casting extension.
  • Deleting identifiers to clean up. Profiles that contain a deleted App ID stop working, and an uploaded app's App ID cannot be deleted anyway.
  • Forgetting that one Merchant ID can serve many apps. There is no need to register a new one for each app.

Questions people ask

What is an identifier in Apple Developer?

A registered name in Certificates, Identifiers & Profiles. Apple attaches profiles, certificates, keys and capabilities to these names, so each app, website or service you connect to Apple starts with one.

What is the difference between an App ID and a Services ID?

An App ID registers an app and its capabilities. A Services ID registers a website, and is what Sign in with Apple and WeatherKit's web service use outside your Apple app.

Do I need an App Group for a widget?

Only if the widget needs the main app's data. Then both the app and the widget need the same App Group enabled on their own App IDs.

Can two apps share one iCloud container?

Yes. Apps from the same team can use the same container. Be careful when transferring one of them to another team: the container goes with it.

Does an Apple Pay Merchant ID expire?

No. The Merchant ID never expires. The payment processing and merchant identity certificates created for it last 25 months.

What is a Media ID used for?

Calling Apple's media services, MusicKit, ShazamKit and Apple Music Feed, with developer tokens signed by a media key. Its description is shown to users as your app's name.

What is the Media Device Sharing Extension identifier?

A protocol ID for hardware makers who build a media sharing extension in iOS or iPadOS 27, so their TVs or speakers appear in the system media picker. Most app developers never need it.

Can I delete an identifier?

Usually, yes. The exception that matters: you cannot delete the explicit App ID of an app you have uploaded to App Store Connect. Deleting an App ID also invalidates the profiles that use it.

Where this comes from

Checked against Apple's documentation in September 2026:

Keep reading

More writing

Keep reading