Skip to main content

Glossary

IPA file

An IPA file (iOS App Store Package) is the installable archive of an iOS or iPadOS app: a ZIP container holding the compiled binary, its resources, its Info.plist and its code signature. Whether an IPA installs on a given iPhone depends entirely on how it was signed, which is where most internal iOS deployments go wrong.

How it works

Rename an IPA to .zip and you can open it. Inside sits a Payload folder containing the .app bundle: the Mach-O executable built by Xcode, images and localized strings, the Info.plist that declares the bundle identifier and minimum OS version, a _CodeSignature directory, and an embedded.mobileprovision file. That last file is the provisioning profile, and it is the part that decides everything.

A provisioning profile ties three things together: an App ID, a signing certificate, and a list of entitlements such as push notifications or keychain sharing. Development and ad hoc profiles also pin an explicit list of device UDIDs, capped at 100 devices per device type per membership year. Let the certificate or the profile expire and the app stops launching on every device that has it, even though nothing about the app itself changed. Enterprise distribution certificates last three years, profiles one year, which is why a lot of internal apps quietly die on an anniversary nobody had in the calendar.

Why it matters for a fleet

The old route for internal apps was the Apple Developer Enterprise Program: 299 dollars a year, an in-house distribution certificate, and an IPA you could host on your own server. Apple tightened that door after the January 2019 episode where Facebook and Google were caught using enterprise certificates to ship research apps to consumers. Today the program is granted to organizations with at least 100 employees that can justify proprietary apps for their own staff, and applications are reviewed and refused. If you are a 60-person company with one internal app, assume you won't get in.

The clean path since 2019 is Custom Apps in Apple Business Manager. You submit the app to App Store Connect, mark it as available privately to specific organizations by their ABM token or Apple Account, and Apple hosts and signs it. No certificate to renew, no profile expiry, no hosting, and the app installs silently as a managed app through your MDM. The trade-off is real: Apple reviews it, and review takes days.

Ad hoc IPAs still have their place for a 20-device pilot. Not for a fleet of 800.

How Appaloosa handles it

Appaloosa takes internal IPA uploads with version history and per-group assignment, and it also distributes Custom Apps acquired through Apple Business Manager, so the same console serves both a pilot build and a reviewed production app. Apps install as managed apps on enrolled devices, with managed app configuration and selective wipe. See the Mobile Application Management page for the distribution model.

Explore

See the full platform

Enrollment, apps, security, remote support: all in one place.

Explore Appaloosa

Ready to try Appaloosa? Start free

Frequently asked questions

Why does our internal iOS app suddenly refuse to open?
Nine times out of ten the signing certificate or the provisioning profile expired. Enterprise distribution certificates are valid three years, provisioning profiles one year, and the app stops launching the day the profile dies. Re-sign the IPA, redistribute it, and put the expiry dates in a shared calendar.
Can we still get the Apple Developer Enterprise Program?
Apple restricted it after the 2019 enterprise certificate abuse cases. You generally need at least 100 employees and a real internal-only use case, and the application can be refused. Most companies are better served by Custom Apps through Apple Business Manager.
What's the difference between a Custom App and an IPA we host ourselves?
A Custom App is reviewed, hosted and signed by Apple and delivered privately to the organizations you name in Apple Business Manager, so there are no certificates to renew. A self-hosted IPA gives you instant control over builds but puts signing, hosting and expiry on your team. Pilots often use the second, production fleets the first.