Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jackawatts/39b930e01cf8d7a66accd95129839f73 to your computer and use it in GitHub Desktop.
Save jackawatts/39b930e01cf8d7a66accd95129839f73 to your computer and use it in GitHub Desktop.

App IDs

App IDs provide metadata and capabilities for an iOS application.

The app is uniquely identified in the app store via its Bundle ID

The App ID Prefix is pre-pended to the Bundle ID to allow the app to be searchable and should be set to the Team ID (allowing apps developed by the Team to be easily identified)

  • Explicit App IDs: are used for a single app, and required when distributing to the App Store
  • Wildcard App IDS: are used for a set of apps and cannot be distributed to the App Store

Overview and steps for creating an App ID are here

NOTE: capabilities don't have to be known up front when creating the initial app and can be added at a later stage

Further info regarding configuring specifics of the App ID follow:

  • Name: the app name
  • Prefix: makes up the first part of the search string for an app, in all cases this should be the TeamID
  • Bundle ID: Is a globally unique identifier for the app in the App Store: best practice is to use a reverse-domain style string: eg. com.companyname.appname
  • Wildcard Bundle ID can only be used for apps which have don't have any capabilities
  • App Capabilities:
    • App Capabilities are described here
    • Steps for configuring capabilities are described here
    • Push notifications will require an APN key, described below

Certificates

Certificates are required for iOS Development overview detailed here

  • Developer Certificates: belong to an individual, allowing them to run and develop apps
  • Distribution Certificates: belong to the team, allowing them to distribute an app for testing, app store or the enterprise
  • APNs Auth Key: to enable push notifications

Apple developer certificates are necessary for iOS15 onward, the earlier iOS certificate format is obsolete.

Provisioning Profiles

Provisioning profiles are required to deploy an app to a iOS device, Mac or to the App Store. They link a signing certificate to identifie the publisher to the App ID and depending a list of UUIds the app can be installed on.

More details regarding Distribution can be found here with methods below covered here:

Superficially developer and ad hoc distribution profiles appear the same and are outlined here, however the signing requirements and intent are different.

  • Developer: for development, only the developer certificates added to this profile will be able to sign the app manually via XCode, detailed here.
  • Ad Hoc: for testing with registered devices within the organization. It requires a Distribution Certificate and does not require XCode detailed here
  • App Store: for TestFlight or AppStore distribution detailed here
  • Enterprise/In House: for deployment of Enterprise Apps detailed, they here. Manual deployment of the app (ie not by MDM) will require the user to trust the organization as outlined here
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment