Soon Flexible Enterprise plans — sales open shortly. Request early access
Tester guide

How to install an IPA file on iPhone in 2026

Three legitimate ways to get a test build onto a device — and what to do when the icon stays grey, iOS says “integrity could not be verified”, or the app closes the moment it opens.

Short answer: an IPA installs on an iPhone only if it was signed for that device. The easiest way is an install link from the developer, opened on the iPhone itself. On a Mac you can also add the IPA with Xcode Device Hub or Apple Configurator. On Windows there is no Apple tool for this — use the link.

This guide is for developers and the people who test their apps: QA, clients, colleagues. It covers your own builds, distributed within Apple’s rules. If you’re looking for a way to install someone else’s app outside the App Store, this isn’t it — and doing that with a developer certificate is a reliable way to get it revoked.

Before you start: three things that must be true

  1. The device is registered for this build. Development and Ad Hoc builds run only on devices listed in their provisioning profile[1]. If you haven’t sent the developer your UDID yet, start with how to find your iPhone UDID.
  2. Developer Mode can be turned on. Apple requires it to run an app installed from an IPA on iOS 16 and later[2]. See how to enable Developer Mode — including why it can take an hour.
  3. The iPhone is online the first time the app opens. Development and Ad Hoc apps check in with Apple on first launch; if that connection fails, the app may not launch[3]. Corporate Wi-Fi that blocks ppq.apple.com can cause this.

Method 1: an install link, right on the iPhone

This is how most testers install builds, and the only practical option without a Mac. The developer (or a distribution service) hosts the IPA and gives you a link.

  1. Open the link on the iPhone, in Safari.
  2. Tap Install and confirm. The app icon appears on the Home Screen and fills up as it downloads.
  3. Open the app. If iOS asks for Developer Mode, turn it on, restart and open the app again.

Under the hood, such links usually use Apple’s over-the-air install format: an itms-services:// link pointing to a small manifest file on an HTTPS server, which tells the device where to download the IPA[4]. Despite the name, the App Store isn’t involved.

With AppSign, testers get this as an app catalogue: the developer uploads builds, AppSign signs them for every registered tester, and each update installs from the same place.

Method 2: Xcode Device Hub (Mac)

In Xcode 27, Device Hub replaced the Devices and Simulators window.

  1. Connect the iPhone and pair it: Xcode → Open Developer Tool → Device Hub, tap Trust on the device, then Pair if asked[5].
  2. Select the device in the sidebar and open Apps in the inspector.
  3. Click Add (+) below the list, choose the .ipa and click Open[6].

On Xcode 26 and earlier, the same list is under Installed Apps in Window → Devices and Simulators.

Method 3: Apple Configurator (Mac)

Handy for installing one build on several connected devices at once.

  1. Install Apple Configurator from the Mac App Store and connect the devices.
  2. Select the devices, then choose Add → Apps (or drag the IPA onto them).
  3. Click Choose from my Mac, select the .ipa and click Add Apps[7].
What about Windows?Apple’s Devices app for Windows handles backups, updates and media — it doesn’t install apps[8]. Device Hub and Apple Configurator are Mac-only. On a Windows PC, the legitimate route is an install link opened on the iPhone.

When the app won’t install or won’t open

These are the cases our testers bring to support most often. iOS rarely says what is really wrong, so here is what each symptom usually means.

The icon stays grey, or “Unable to Install”

The download starts, then stops: the icon remains grey, or iOS shows “Unable to Install ‘App’”. Almost always, this device isn’t in the build’s provisioning profile. Either the UDID was never added, or the tester sent the UDID of a different device — an old iPhone, an iPad instead of the phone. Check the UDID, have the developer register it, and install a new build: a build signed before the device was added won’t work, even from the same link.

“This app cannot be installed because its integrity could not be verified”

The underlying error in this case is typically “A valid provisioning profile for this executable was not found”[9]. iOS can’t match the app to a valid profile for this device. The usual causes, from most to least common:

  • the device isn’t registered, or a different device was registered;
  • the profile is out of date or has expired — profiles are typically valid for no more than a year[1];
  • the signing certificate was revoked. This is the worst case: every build signed with it stops working, and the developer has to sign again with a new certificate.

“Developer Mode Required”

iOS installed the app but won’t run it until Developer Mode is on. Settings → Privacy & Security → Developer Mode, restart, confirm. Full walkthrough: iPhone Developer Mode.

“Untrusted Enterprise Developer”

This message belongs to apps signed with an Enterprise (in-house) certificate. To trust the developer: Settings → General → VPN & Device Management, choose the developer under Enterprise App, tap Trust; on iOS 18 and later, then tap Allow & Restart. The device must be online[10]. Only do this for your own company’s apps — the trust applies to everything that developer signs.

“App is no longer available”

The app worked before and now refuses to open. This usually means the provisioning profile or certificate it was signed with has expired or been revoked. The fix is on the developer’s side: a newly signed build.

The iOS version is too old

Every build has a minimum iOS version, and older devices simply can’t run it. Very old iOS versions may not even open modern install pages properly. Testers tend to ignore the “update iOS” step and are then surprised the app won’t install — check the version first.

The app installs, opens and immediately closes

Signing and registration are fine, but the app crashes on launch — even though it runs on the developer’s own phone. This is the hardest case, because it is usually a problem in the build itself rather than in distribution. Things worth checking:

  • the build uses a capability (push notifications, app groups, iCloud) that isn’t enabled on the App ID or in the profile — every entitlement the app claims must be allowed by its profile[1];
  • the configuration differs from the developer’s debug run: a release-only setting, a missing resource, an environment variable that exists only in Xcode;
  • the device’s iOS version or model is one the developer never tried.

Ask the tester for the crash log (Settings → Privacy & Security → Analytics & Improvements → Analytics Data) and try the exact same IPA on a registered device of your own.

Quick reference

What you seeMost likely causeWho fixes it
Grey icon / “Unable to Install”Device not in the profile, or the wrong device was registeredTester sends the right UDID; developer re-signs
“Integrity could not be verified”No valid profile for this device: not registered, expired, or certificate revokedDeveloper
“Developer Mode Required”Developer Mode is offTester
“Untrusted Enterprise Developer”Enterprise app not yet trustedTester, in Settings
“App is no longer available”Profile or certificate expired or revokedDeveloper
Won’t open the first timeNo connection to Apple on first launchTester: connect to another network
Crashes on launchProblem in the build or its capabilitiesDeveloper

Where AppSign fits

Most of the table above comes down to one thing: keeping devices, profiles and builds in sync. AppSign does the signing for every registered tester and every new build, so testers install from one catalogue instead of chasing new links — and when something does break, it’s easier to see whether the cause is the device, the certificate or the build.