Troubleshooting iOS Install Failures
Common symptoms and remedies for iOS install failures — signing errors, enterprise certificate trust, Developer Mode, iOS version, storage, date/time, network, and profile conflicts.
When installing an iOS app, you may hit errors like "Unable to install", "Cannot verify", stalled downloads, or grayed-out icons. This page groups the common symptoms and their fixes — use the on-device message to jump to the relevant section.
Identify the Distribution Method First
Different distribution methods have different install mechanics and trust requirements, and therefore different things to check:
| Method | Typical Scenario | Key Requirement |
|---|---|---|
| App Store | The app is already shipped | The device's Apple ID region matches the App Store region |
| TestFlight | Apple's official beta flow | Joined the test via email invite or redemption code |
| Ad Hoc | Internal testing, staged rollout | The device UDID must be in the provisioning profile |
| In-House (Enterprise) | Internal enterprise distribution | The enterprise certificate is trusted on the device |
| Development | Dev/debug builds | Certificate, provisioning profile, and Bundle ID must match |
Most of the steps below apply to Ad Hoc, In-House, and Development distribution.
"Unable to install", "Cannot verify", "Install failed", or a Grayed-Out Icon
These are usually caused by signing or profile issues. Common causes:
| Possible Cause | Description |
|---|---|
| Expired certificate | The certificate is what proves the app is legitimate; once expired the app can't install or launch. |
| Revoked certificate | If Apple revokes a certificate for security reasons, even already-installed apps stop opening. |
| Wrong provisioning profile | The profile must match the app's Bundle Identifier and signing certificate. |
| Expired profile | Provisioning profiles are typically valid for one year, then must be regenerated. |
| UDID not added | With Ad Hoc, the target device's UDID must be in the provisioning profile. |
| Device limit reached | Ad Hoc accounts can register up to 100 devices per device class per year. |
| Entitlement mismatch | Entitlements declared by the app must also be enabled on the certificate and profile. |
What to check:
- See whether an older build with the same Bundle ID is already installed. If so, remove it and install again.
- Make sure the network is stable during install — a grayed-out icon usually means the download was interrupted; long-press to choose Redownload, or delete and reinstall.
- Reboot the device and try again; this clears some cache or profile-loading issues.
- If it still won't install, contact the developer or vendor who invited you, and ask them to verify the certificate, profile, and UDID.
"Untrusted Enterprise Developer"
For In-House apps, the first launch triggers an Untrusted Enterprise Developer prompt; you need to trust the enterprise certificate in Settings:
- Open Settings → General → VPN & Device Management.
- Under Enterprise App, tap the profile.
- Tap Trust "XXX" and confirm.
Starting with iOS 9, trusting must happen online — the system queries Apple's OCSP service to check the certificate. If the device can't reach Apple's servers, you'll see a "Not Connected to the Internet" message.
If a previously working app suddenly won't open and shows This app is no longer available, the enterprise certificate has typically been revoked by Apple; contact the developer to re-sign the app.
Developer Mode Must Be Enabled
On iOS 16 and later, installing Ad Hoc or Development builds requires Developer Mode:
- Open the app once after install — the system will prompt you to enable Developer Mode.
- Go to Settings → Privacy & Security, scroll down to Developer Mode, and open it.
- Toggle it on and reboot the device as prompted.
- After reboot, tap Turn On in the confirmation dialog and enter the device passcode.
If the Developer Mode entry doesn't appear, the device usually hasn't seen any app that needs it yet. Try installing an Ad Hoc app once and the entry will appear.
On supervised (MDM-managed) devices, Developer Mode may be disabled — the administrator has to allow it in the MDM policy.
Enterprise (In-House) and App Store builds are not subject to Developer Mode.
Incorrect Date and Time
iOS validates the certificate's validity period when installing and launching apps. If the device clock is far off, the certificate is treated as expired or not yet valid, causing install failures or launch errors.
Turn on Settings → General → Date & Time → Set Automatically so the clock syncs over the network.
Profile Conflicts or MDM Restrictions
If multiple profiles are already on the device, or the device is managed by an enterprise MDM, you may see:
- Errors like Profile installation failed or Unable to verify configuration profile during install.
- MDM policies blocking app installs, Developer Mode, or enterprise certificate trust.
What to check:
- Open Settings → General → VPN & Device Management and remove old profiles you no longer use.
- If the device is centrally managed, ask your IT administrator whether the policy permits this app.
iOS Version Incompatible
Confirm the app's minimum iOS version and make sure the device meets it. If the device is too old, update via Settings → General → Software Update.
Some apps also cap the maximum iOS version they support — if install fails on a newer OS, ask the developer whether they've shipped an updated build.
Not Enough Storage
iOS unpacks the IPA during install and generally needs at least twice the installer's size in free space. When space is tight you'll see install failures or a long "Waiting…" state.
Check usage under Settings → General → iPhone Storage and clear unneeded files or apps.
Network Issues
Installing Ad Hoc or In-House apps requires the device to fetch the manifest plist and IPA over HTTPS, so network stability and certificate validation both matter.
- Use a stable Wi-Fi or cellular connection, and don't switch networks mid-install.
- Some VPNs, HTTP proxies, or custom DNS setups intercept or tamper with requests to Apple domains — turn them off before installing.
- The download URL must be HTTPS with a valid certificate; self-signed certificates are rejected outright.
- For QR-code distribution, open the link in the system camera or Safari — some third-party browsers don't trigger the install flow.
Conflict with an Older Version
If a build with the same Bundle ID is already installed but uses a different certificate or signing method, install may fail. Uninstall the old version first.
Apps re-signed with different certificates under the same name also conflict, so uninstall when switching signing types.
App Incompatible with the Device
Some features or system frameworks only run on newer hardware — apps depending on a specific chip, sensor, or Metal version, for example. Confirm the app supports the target device, or ask the developer for a compatible build.
If none of the above resolves the issue, contact the app's developer for further support. Provide the device model, iOS version, the exact error message, and when it occurred to help them triage quickly.
Add a Device UDID to Your App
The full flow for adding a device UDID to an Ad Hoc iOS app: registering the device, generating a provisioning profile, and re-packaging the IPA.
Android Signing & Packaging
Generate a keystore, understand Android's V1/V2/V3 signature schemes, and build distributable APKs with Android Studio or Gradle for release on Pgyer.