Computers & Electronics
142,056 views
25 min · 3 min read
7 steps
Advanced

How to create and sign mobile provisioning profiles and test apps on iOS devices

This guide walks you through creating and signing mobile provisioning profiles and installing test apps on iOS devices. It covers the required certificates, device registration, profile creation, and simple deployment steps so you can test builds on physical hardware. Expect to spend about 15–45 minutes if you already have an Apple Developer account.

Verified by pleasexplain editors
  1. Step 1: Set up Apple developer account

    Sign in to your Apple Developer or Apple ID account at developer.apple.com and confirm you have an active paid membership. This membership is required for device provisioning and lasts 1 year; renewals are handled in your account settings. Having the account ready avoids permission errors later.

    [Illustration: screenshot of Apple Developer account dashboard on a laptop screen]

  2. Step 2: Create or export a signing certificate

    In the Certificates section, request a new iOS Development certificate or export an existing one from your Mac Keychain as a .p12 file using a secure passphrase. Keep the private key safe; the certificate and private key are required to sign builds and are tied to your team identity. Exporting takes about 1–3 minutes.

    [Illustration: macOS Keychain Access window showing certificate and export dialog]

  3. Step 3: Register test devices by UDID

    Collect each test device’s UDID (use Finder, iTunes, or a shortcut) and add up to 100 devices per type in the Devices pane of your Developer portal. Enter a recognizable name and the UDID for each device; registration syncs immediately and is required for development provisioning. This step prevents install errors like 'Untrusted Developer.'

    [Illustration: iPhone connected to Mac showing device summary with UDID highlighted]

  4. Step 4: Create a development provisioning profile

    In Profiles, create a new iOS App Development profile: select your App ID, the development certificate, and the devices you registered, then download the .mobileprovision file. Choose an explicit App ID matching your bundle identifier to enable app services. Creating the profile takes 2–4 minutes.

    [Illustration: browser window showing provisioning profile creation form with checkboxes selected]

  5. Step 5: Install certificate and profile on Mac

    Double-click the .p12 to import into Keychain (enter the passphrase) and double-click the .mobileprovision to add it to Xcode. Verify the certificate appears in Keychain and Xcode > Preferences > Accounts shows your team and provisioning profiles. Proper installation ensures Xcode can sign builds automatically.

    [Illustration: Xcode Preferences Accounts pane with team listed and Keychain Access showing certificate]

  6. Step 6: Configure Xcode project signing settings

    Open your Xcode project, select the target, and in Signing set the team, provisioning profile, and certificate; enable automatic signing if preferred. Ensure the bundle identifier exactly matches the App ID used in the profile, and build for a Generic iOS Device or connected device. Correct settings prevent code signing errors at build time.

    [Illustration: Xcode project settings Signing & Capabilities tab with team and profile fields]

  7. Step 7: Build, sign, and install on device

    Connect the device by USB or enable wireless debugging, choose the device as the run target, then build and run from Xcode; the app will be signed and installed automatically. If prompted on the device, trust the developer in Settings > General > Device Management. Typical install takes 10–30 seconds per app depending on size.

    [Illustration: iPhone on a desk receiving an app via Xcode run command with progress bar]


  • Use explicit bundle identifiers (com.example.app) to enable capabilities and avoid wildcard pitfalls.
  • Keep a plain-text inventory of device UDIDs, certificate names, and profile expiration dates for quick reference.
  • Set calendar reminders 30 days before provisioning profiles or certificates expire to avoid broken installs.
  • Prefer automatic signing in Xcode when you are the sole developer; switch to manual for CI servers or complex teams.
  • Export .p12 backups and store encrypted copies in a secure password manager or company vault.
  • Use TestFlight for distributing builds to more than 100 testers or for Beta App Review to simplify distribution

  • Never share private keys or .p12 passphrases over unsecured channels; treat them like passwords.
  • Provisioning profiles and development certificates expire—apps signed with expired credentials will fail to install until renewed.
  • Adding more than the allowed device count requires removing devices at the annual reset or managing device lists carefully.
  • Modifying entitlements or bundle identifiers after a profile is created may invalidate the profile and require creating a new one

Was this guide helpful?