Provisioning Profiles

Profile Types

TypeUseElementsTypical scenario
DevelopmentDevelopment/debuggingDevelopment cert + App ID + devicesXcode on-device debugging
Ad HocTargeted test distributionDistribution cert + App ID + devicesReal-device distribution without TestFlight
App StoreReleaseDistribution cert + App ID (no devices)Submission / build upload
In-House (Enterprise)Enterprise internalEnterprise cert + App IDEnterprise distribution (requires Enterprise account)

Creation Steps

  1. Go to Certificates, Identifiers & Profiles → Profiles → ”+”.
  2. Choose the profile type (Development / Ad Hoc / App Store).
  3. Select a certificate (prefer the latest Distribution or Development).
  4. Select the App ID (ensure required capabilities are enabled).
  5. For Development / Ad Hoc, select the device list.
  6. Name it, download the .mobileprovision, and import into Xcode / CI.

Automatic vs Manual Signing

ApproachDescriptionBest for
Automatic signing (recommended)Sign in with Apple ID; Xcode manages certificates & profilesIndividuals / small teams
Manual signingManually choose certificate & profileCI, complex multi-environment

Maintenance & Updates

  • After certificate renewal, device changes, or capability additions, regenerate the profile.
  • CI: rebuild after updating certificates/profiles; fastlane match centralizes their management.
  • An expired profile doesn’t affect already-published apps — only new build signing.

Troubleshooting

Error / symptomWhat to check
No provisioning profile foundWhether App ID, certificate, devices are all ready; regenerate the profile
Profile doesn’t include the deviceAdd the device UDID to the profile and regenerate
Entitlements mismatchWhether App ID capabilities match Xcode configuration
Certificate mismatchThe certificate referenced by the profile must match the private key in Keychain

Self-Check List

  • Correct profile type created per environment
  • Referenced certificate valid and contains the private key
  • Profile regenerated after adding capabilities / devices
  • CI / Xcode updated to the latest profile
  • Submission builds use App Store / Distribution signing

Author’s Note

90% of signing errors point to the same thing: at least one of certificate, App ID, or devices doesn’t match the profile. When you hit an error, don’t panic — check each item against “Profile = Certificate + App ID + Devices” and you’ll usually locate the cause in minutes.