iOS developer & learning

.mobileprovision viewer

Open a provisioning profile to see its app ID, team, type, expiry, devices, certificates and entitlements. The file is read in this tab; this tool's code doesn't send it anywhere.

Drop a .mobileprovision or .provisionprofile file here or choose it. The file is read in this tab; this tool's code doesn't send it anywhere.

Viewing only: the profile's signature is not verified.

Free to use, no account. More developer tools

What's inside a provisioning profile

A .mobileprovision file is a property list wrapped in a CMS (PKCS #7) signature from Apple. This viewer finds the XML plist inside the signed data and reads it, the same content security cms -D -i profile.mobileprovision prints on a Mac. It does not check Apple's signature, so use it to read a profile, not to prove one is genuine. Apple notes that the format isn't documented and can change; modern systems use the binary DER-Encoded-Profile inside it as the source of truth, which carries the same values.

Reading the summary

  • Type is inferred: ProvisionsAllDevices means Enterprise (or Developer ID on the Mac); a device list with get-task-allow true means Development, without it Ad Hoc; no device list means App Store.
  • application-identifier is the Team ID plus the bundle ID, and can end in * for a wildcard profile.
  • Expires turns amber within 30 days and red once passed. Development and distribution profiles both expire; an expired one stops Development and Ad Hoc builds from launching.
  • Certificates lists each signing certificate's name, Team ID and expiry. A build signed with a certificate that isn't in this list won't install.

Entitlements that explain common failures

  • aps-environment: development tokens work only with api.sandbox.push.apple.com, and production with api.push.apple.com. A mismatch is the usual reason for 400 BadDeviceToken. If the key is missing, Push Notifications isn't enabled for the App ID.
  • com.apple.developer.associated-domains: the domains for universal links and shared web credentials. If your domain isn't here, no AASA file will help; check the file itself with the AASA validator.
  • com.apple.security.application-groups and keychain-access-groups: what an extension or widget can share with the app.
  • get-task-allow: true lets a debugger attach. It must be false for App Store and Ad Hoc builds.

Finding profiles on your Mac

Xcode 16 and later keep downloaded profiles in ~/Library/Developer/Xcode/UserData/Provisioning Profiles; older versions used ~/Library/MobileDevice/Provisioning Profiles. Each file is named by its UUID, which this viewer shows. In a built app the profile is embedded.mobileprovision inside the .app bundle (right-click the .ipa's app, Show Package Contents). Drop that file here to see exactly what a build was signed with.

Fixing a profile that doesn't match

A profile is a snapshot: adding a device, renewing a certificate or turning on a capability for the App ID doesn't change the copies you already have. In Certificates, Identifiers & Profiles, edit the profile, select the new devices or certificate, save and download it again; with automatic signing, Xcode does this for you on the next build. Then drop the new file here and compare the UUID, the device count and the entitlements with the old one before you ship the build.

Questions

How do I see which devices are in a profile?

Drop the .mobileprovision file here and open the Devices section: every UDID in ProvisionedDevices is listed, with a search box. App Store profiles have no device list, and Enterprise profiles cover all devices.

Is aps-environment development or production?

The summary shows it. development means the build's tokens belong to the APNs sandbox; production means api.push.apple.com. TestFlight, Ad Hoc and App Store builds are production.

Why did my profile expire?

Every profile has an ExpirationDate. Profiles also stop working when the certificate they contain expires or is revoked, or when you change the App ID's capabilities. Regenerate it in Certificates, Identifiers & Profiles, or let Xcode manage signing.

Where are provisioning profiles stored on a Mac?

Xcode 16 and later use ~/Library/Developer/Xcode/UserData/Provisioning Profiles; earlier versions used ~/Library/MobileDevice/Provisioning Profiles. A built app carries its own copy as embedded.mobileprovision.

Is my profile uploaded?

No. The file is read in this tab; this tool's code doesn't send it anywhere. The page only reads the plist inside the file and does not verify Apple's signature.

Push Notification - TesterSee screenshots and reviews

From the same developer

  • Push Notification - Tester screenshot 1
  • Push Notification - Tester screenshot 2