IPA (iOS App Store Package) är ett arkivfilformat för distribution av applikationer på iOS. Varje applikation som hamnar i App Store går igenom IPA-formatet: utvecklaren bygger projektet, signerar det och laddar upp IPA till App Store Connect. Enligt Apple Developer Documentation, 2026 är IPA-formatet baserat på ZIP och innehåller en körbar Mach-O-fil, resurser och signeringsmetadata.
Huvudpunkter
IPA (iOS App Store Package) är ett paketformat för distribution av applikationer på Apple-plattformen. Precis som APK är IPA tekniskt sett ett ZIP-arkiv, men med en egen struktur som bestäms av iOS säkerhets- och signeringskrav.
IPA-formatet dök upp tillsammans med iPhone OS 2.0 år 2008 och App Store. Som grund togs .app-paketformatet från macOS, packat i ZIP för att minska storleken vid överföring. Sedan dess har IPA-strukturen inte genomgått några grundläggande förändringar — bara signeringsscheman och metadata har förändrats.
App Store — huvudkanalen. Ad-hoc-distribution — för testning på ett begränsat antal enheter (upp till 100). Enterprise-distribution — för företagsapplikationer utan publicering i butiken. Utvecklare använder också IPA för testning på riktiga enheter via Xcode.
Den interna strukturen av IPA är ett ZIP-arkiv som innehåller Payload-mappen med .app bundle och metadata.
| Fil/katalog | Ändamål |
|---|---|
| Payload/ | Rotmapp med .app bundle |
| Payload/App.app/ | Applikationsbundle: körbar fil, resurser, nib/storyboard |
| Payload/App.app/Info.plist | Metadata: bundle ID, versioner, behörigheter |
| Payload/App.app/embedded.mobileprovision | Provisioning Profile för installation |
| iTunesMetadata.plist | Metadata för iTunes (valfritt) |
| META-INF/ | Signaturer och hashvärden för verifiering |
Inuti Payload-mappen finns applikationsbuntet med tillägget .app. Detta är inte en fil utan en katalog som iOS känner igen som en applikation. Inuti finns den körbara Mach-O-filen (namnet matchar buntnamnet), Info.plist, resurser, bilder och lokaliserade strängar.
Källkod i Swift eller Objective-C kompileras till maskinkod i Mach-O (Mach Object) format. Filen innehåller segmenten __TEXT (kod), __DATA (data) och __LINKEDIT (länkmetadata). Moderna IPA innehåller endast 64-bitars arm64-arkitektur.
Xcode automatiserar bygget av IPA: från kompilering av källkod till skapandet av ett signerat arkiv redo för uppladdning till App Store Connect.
Debug — för utveckling, utan optimeringar. Release — för publicering, med kompilatoroptimeringar. Varje schema definierar kompileringsflaggor, kodsignering och entitlements. Xcode skapar ett arkiv (Archive) via menyn Product → Archive.
// Info.plist — grundläggande metadata för applikationen
<key>CFBundleName</key>
<string>MyApp</string>
<key>CFBundleIdentifier</key>
<string>com.example.myapp</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
Xcode kompilerar varje .swift- eller .m-fil till en objektfil (.o), och länkar dem sedan till en enda Mach-O binärfil. Resurser (bilder, XIB, storyboard) behandlas separat: storyboards kompileras till binärt .storyboardc-format, bilder optimeras i Asset Catalog (.car).
Signering — den mest komplexa aspekten av IPA. Apple kräver digital signatur för varje applikation som körs på en riktig enhet. Systemet verifierar utvecklarens certifikat, entitlements och överensstämmelse med Provisioning Profile.
Certificate (Development eller Distribution) — intygar utvecklarens identitet. Provisioning Profile — kopplar samman certifikatet, bundle ID och listan över tillåtna enheter (för ad-hoc). Entitlements — applikationsbehörigheter (push-notiser, iCloud, App Groups).
Xcode signerar varje bibliotek och ramverk inuti .app bundle, och signerar sedan själva bunten. Den slutgiltiga IPA signeras på ZIP-arkivnivå. Apple verifierar alla signeringsnivåer vid installation. iOS startar inte applikationen om åtminstone en komponent har en ogiltig signatur.
// Verifiering av signatur via Security framework
import Security
func checkSignature() -> Bool {
let url = Bundle.main.bundleURL
var staticCode: SecStaticCode?
guard SecStaticCodeCreateWithPath(
url as CFURL,
[], &staticCode
) == errSecSuccess else {
return false
}
return true
}
App Store Connect — Apples plattform för hantering av applikationspublicering. Uppladdning av IPA görs via Xcode Organizer, Transporter eller kommandoraden via xcrun altool.
Efter att arkivet skapats erbjuder Xcode Distribute App med val av metod: App Store Connect, Ad-hoc, Enterprise eller Development. Efter att ha valt App Store Connect anger utvecklaren teamet och bekräftar uppladdningen. Xcode kontrollerar signeringen, skickar IPA till Apples servrar och returnerar bearbetningsstatus.
För CI/CD används xcrun altool eller nyare notarytool. Apple kräver notarieförklaring för macOS-applikationer, för iOS är detta steg valfritt men rekommenderas. xcodebuild -exportArchive skapar en signerad IPA redo för uppladdning.
Apple kontrollerar varje IPA för skadlig kod, privata API:er och överensstämmelse med App Store Review Guidelines. Kontrollprocessen tar från 1 timme till 2 dagar.
Vid uppladdning av IPA till App Store Connect tillämpar Apple App Thinning — teknik för att optimera binärfilen för specifika enheter. Slicing tar bort från IPA resurser för ej stödda upplösningar och arkitekturer. On-Demand Resources låter användare ladda ner delar av applikationen (spelnivåer, video) endast på begäran. Bitcode — en mellanliggande representation som Apple kan kompilera om för nya arkitekturer utan utvecklarens medverkan.
App Store kontrollerar också IPA:s överensstämmelse med Sandbox-kraven: applikationen får inte komma åt andra applikationers data, filsystem utanför sin egen container och hårdvarufunktioner utan uttryckligt tillstånd från användaren.
TestFlight — Apples officiella tjänst för betatestning av applikationer. Utvecklaren laddar upp IPA till App Store Connect och bjuder in testare via e-post eller en offentlig länk.
Internal Testing — upp till 100 deltagare från utvecklarens team. Kräver ingen Apple-granskning. External Testing — upp till 10 000 deltagare, kräver Beta App Review. TestFlight distribuerar automatiskt builds till testare och samlar in analysdata.
En build är tillgänglig för testning i 90 dagar efter uppladdning. TestFlight stöder upp till 100 aktiva builds samtidigt. Varje testare kan installera upp till 30 applikationer samtidigt. Crashlytics integreras med TestFlight för insamling av kraschrapporter och icke-fatala fel.
Bygge av IPA i CI-miljö kräver en macOS-runner. GitHub Actions, GitLab CI och Bitrise tillhandahåller macOS-miljöer för iOS-byggen. Fastlane lane `build_app` automatiserar hela cykeln: arkivering, signering, export av IPA och uppladdning till TestFlight. För hantering av certifikat och profiler används Match — Fastlane-verktyget som lagrar signaturer i ett krypterat Git-förråd.
Utvecklare stöter på en rad karakteristiska fel vid bygge och signering av IPA. De flesta är relaterade till felaktig konfiguration av certifikat och profiler.
Xcode hittar ingen Provisioning Profile som matchar bundle ID och certifikat. Lösning — ladda ner aktuella profiler i Xcode Accounts → Download Manual Profiles eller använd Automatic Signing.
Felet uppstår vid uppladdning av IPA med ogiltig arkitektur. Moderna IPA får endast innehålla arm64. Förekomst av i386 eller x86_64 i binärfilen leder till avvisning. Lösning — kontrollera arkitekturer i Build Settings och uteslut simulatorarkitekturer.
IPA innehåller inte rätt struktur Payload/App.app. Apple förväntar sig en exakt hierarki. Lösning — kontrollera att arkivet innehåller Payload-mappen med en .app bundle, inte en platt fillista.
För företagsdistribution används Apples Enterprise-program (299 USD/år). IPA signeras med ett Enterprise-certifikat och kan installeras på företagets alla enheter utan antalsbegränsning. Ad-hoc-distribution är begränsad till 100 enheter per utvecklarkonto (99 USD/år). MDM-system (Mobile Device Management) som Jamf och Microsoft Intune stöder massinstallation av Enterprise-IPA.
Vanliga frågor
IPA använder det körbara formatet Mach-O istället för DEX, kräver Provisioning Profile för installation och genomgår en strikt App Store-granskning. APK, till skillnad från IPA, kan installeras direkt utan mellanhänder (sideloading).
Nej, bygge av IPA kräver Xcode och Apples verktyg som endast är tillgängliga på macOS. Alternativ: fjärrservrar med macOS (Mac min, AWS Mac) eller molnbaserade CI-tjänster (GitHub Actions med macOS-runner).
Enkel applikation — 5–30 MB. Applikation med medelkomplexitet — 30–150 MB. Spel kan nå 4 GB. Apple begränsar nedladdningsstorleken via mobilt nätverk till 200 MB, men användaren kan ladda ner via Wi-Fi.
För ad-hoc-installation används Xcode eller Apple Configurator. Enterprise-applikationer distribueras via en intern server med manifest.plist. En vanlig användare kan inte installera IPA utan jailbreak eller TestFlight.
Fat IPA innehåller flera arkitekturer (arm64 + x86_64) för universellt bygge. Thin IPA innehåller endast en arkitektur för en specifik enhet. Apple accepterar endast thin IPA för publicering — fat binärfiler avvisas.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också