IPA: vad är det, filstruktur och funktionsprincip

Författare: IT Sectr Publicerad: 2026-04-15 Lästid: 8 min

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 — arkivformat för distribution av iOS-applikationer via App Store och ad-hoc-installation.
  • Struktur inkluderar en signerad körbar Mach-O-fil, resurser och Provisioning Profile.
  • Signering — obligatorisk: utan korrekt certifikat och profil installeras inte IPA.
  • Bygge utförs via Xcode med stöd för olika scheman: Debug, Release, Ad-hoc, Enterprise.
  • Arkitekturer — moderna IPA innehåller binärfiler för arm64, utan stöd för 32-bitars enheter.

Vad är IPA och vad används det till

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.

Formatets historia

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.

Användningsscenarier

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.

Intern struktur av IPA-fil

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.plistMetadata: bundle ID, versioner, behörigheter
Payload/App.app/embedded.mobileprovisionProvisioning Profile för installation
iTunesMetadata.plistMetadata för iTunes (valfritt)
META-INF/Signaturer och hashvärden för verifiering

.app bundle

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örbar Mach-O-fil

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.

Byggprocess av IPA via Xcode

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.

Byggscheman

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.

objective-c
// 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>

Byggarkitektur

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).

IPA-signering och Provisioning Profile

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.

Signeringskomponenter

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).

Signeringsprocess

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.

swift
// 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
}

Publicering av IPA i App Store Connect

App Store Connect — Apples plattform för hantering av applikationspublicering. Uppladdning av IPA görs via Xcode Organizer, Transporter eller kommandoraden via xcrun altool.

Uppladdningsprocess

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.

Kommandorad

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.

App Thinning: optimering av IPA för enheter

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.

Testning av IPA via TestFlight

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.

Intern och extern testning

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.

TestFlight-begränsningar

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.

IPA och Continuous Integration

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.

Typiska problem med IPA

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.

Signeringsfel: No matching provisioning profile found

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.

ITMS-90125: The binary is invalid

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.

Invalid Bundle Structure: The bundle is missing the required .app bundle

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.

Distribution av IPA utan App Store

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

Vad är skillnaden mellan IPA och APK?

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).

Kan man bygga IPA på Windows?

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).

Hur stor är en typisk IPA?

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.

Hur installerar man IPA utan App Store?

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.

Vad är thin IPA och fat IPA?

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

  • IPA — distributionsformat för iOS-applikationer baserat på ZIP med körbar Mach-O-fil.
  • Struktur inkluderar Payload/.app bundle, Info.plist, signaturer och Provisioning Profile.
  • Bygge utförs via Xcode med kompilering av Swift/Objective-C till arm64-maskinkod.
  • Signering obligatorisk: certifikat + Provisioning Profile + entitlements verifieras av iOS vid installation.
  • Publicering sker via App Store Connect med granskning av Apple Review Guidelines.
  • TestFlight — det officiella verktyget för betatestning för upp till 10 000 deltagare.
  • Begränsningar: bygge endast på macOS, obligatorisk signering, maximalt 4 GB storlek.

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.

Diskutera projektet

Läs också