Inside an IPA
Understand Payload, app bundles, frameworks, extensions, Info.plist, signatures, profiles, and FairPlay encryption.
An IPA is a ZIP archive with an expected layout. Renaming any ZIP to .ipa does not make it a valid iOS package.
Typical structure
Example.ipa
└── Payload/
└── Example.app/
├── Example
├── Info.plist
├── embedded.mobileprovision
├── _CodeSignature/
│ └── CodeResources
├── Frameworks/
└── PlugIns/- The main executable contains compiled code.
Info.plistdefines bundle identity, versions, executable name, device families, URL schemes, and requirements.embedded.mobileprovisioncarries the profile used for installation._CodeSignatureseals resources.Frameworkscontains dynamic frameworks and libraries that also need valid signatures.PlugInscontains extensions, each with its own bundle and identity.
FairPlay encryption
An IPA obtained from App Store delivery may contain a FairPlay-encrypted executable tied to Apple's purchase system. Re-signing changes the outer signature but does not decrypt the executable. The result can install and then crash or refuse to run.
Use a developer-provided build, your own archive, or another source you are legally entitled to use. “Decrypted IPA” describes a technical state, not proof of safety, permission, or provenance.
Why malformed archives fail
Common faults include multiple top-level app bundles, unsafe paths, missing executables, case-colliding files, unsupported compression, invalid plists, absent frameworks, stale CodeResources, incorrectly signed nested code, and an app built only for the simulator.
Simulator builds are different
An .app built for the iOS Simulator targets Mac-hosted simulator architectures and services. It is not a device IPA. Changing the extension or minimum OS cannot convert it.
Before blaming the certificate
Unzip the IPA without modifying it. Confirm exactly one expected Payload/*.app, a valid Info.plist, the named executable, and architectures for physical Apple devices. Then inspect extensions and frameworks. A certificate cannot repair missing application code.