# Check if a UDID Is in a Provisioning Profile or IPA

> See which iPhones a .mobileprovision file or an .ipa build will install on, in the browser, with Quick Look on a Mac, or with one Terminal command.

Last updated: 2026-11-10
Canonical: https://buildferry.app/check-udid-in-provisioning-profile

An ad hoc or development build only installs on the iPhones listed in its provisioning profile. When a tester can't install, the first thing to check is whether their UDID is in that list.

## Where the profile is

- **On its own,** it's a `.mobileprovision` file you download from the Apple Developer website or that Xcode manages for you.
- **Inside a build,** it's called `embedded.mobileprovision`. An .ipa is a zip file, and the profile sits at `Payload/YourApp.app/embedded.mobileprovision`.
- **App extensions** have their own `embedded.mobileprovision` inside each `.appex` in the `PlugIns` folder.

## 1. In your browser

Drop a .mobileprovision file on our [provisioning profile viewer](https://buildferry.app/mobileprovision-viewer), or a whole .ipa on the [IPA inspector](https://buildferry.app/ipa-inspector). Both run in your browser and show the devices, expiry date, team and entitlements. Paste a UDID to see if it's included.

## 2. With Quick Look on a Mac

With Xcode installed, select the .mobileprovision file in Finder and press the **Space** bar. The preview shows the app ID, expiry date, certificates, devices and entitlements.

## 3. In Terminal

Decode the profile, then list its devices:

```
security cms -D -i embedded.mobileprovision -o profile.plist
plutil -extract ProvisionedDevices xml1 -o - profile.plist
```

To check one UDID, search for it:

```
grep -i 00008110-001A2B3C4D5E6F7A profile.plist
```

For an .ipa, unzip it first:

```
unzip -q MyApp.ipa -d MyApp
security cms -D -i MyApp/Payload/MyApp.app/embedded.mobileprovision -o profile.plist
```

## Reading the result

| What you see | What it means |
| --- | --- |
| `ProvisionedDevices` with a list of UDIDs | Development or ad hoc. Only those devices can install it. |
| `ProvisionsAllDevices` | An enterprise (in-house) profile. Any device can install it. |
| Neither | An App Store profile. It can't be installed on test devices at all. |

Also check:

- **ExpirationDate.** Builds stop installing and opening once the profile expires.
- **application-identifier** under Entitlements. It must match the app's bundle ID, or end in `*` as a wildcard.

## If the UDID is missing

Registering the device isn't enough, because a profile only lists the devices it had when it was generated.

1. Register the UDID in your Apple Developer account, under **Devices**.
2. Edit the profile and regenerate it, or let Xcode's automatic signing do it.
3. Export or re-sign the build with the new profile and send it again.

You can't add a UDID by editing the file. Apple signs every profile, and the iPhone checks that signature.

[BuildFerry](https://buildferry.app/) does those three steps for you. A tester opens your link, you approve their iPhone, and it's registered, added to the profile and the build re-signed in the cloud. [Try it free](https://buildferry.app/signup).
