IPA (iOS App Store Package) je formát archivního souboru pro distribuci aplikací na iOS. Každá aplikace, která se dostane do App Store, prochází formátem IPA: vývojář sestaví projekt, podepíše jej a nahraje IPA do App Store Connect. Podle Apple Developer Documentation, 2026 je formát IPA založen na ZIP a obsahuje spustitelný Mach-O soubor, zdroje a metadata podpisu.
Hlavní body
IPA (iOS App Store Package) je formát balíčku pro distribuci aplikací na platformě Apple. Stejně jako APK je technicky IPA ZIP archiv, ale s vlastní strukturou diktovanou požadavky iOS na bezpečnost a podepisování.
Formát IPA se objevil spolu s iPhone OS 2.0 v roce 2008 a App Store. Jako základ byl vzat formát balíčku .app z macOS, zabalený do ZIP pro zmenšení velikosti při přenosu. Od té doby struktura IPA neutrpěla zásadní změny — měnila se pouze schémata podepisování a metadata.
App Store — hlavní kanál. Ad-hoc distribuce — pro testování na omezeném počtu zařízení (až 100). Enterprise distribuce — pro firemní aplikace bez publikace v obchodě. Vývojáři také používají IPA pro testování na skutečných zařízeních přes Xcode.
Vnitřní struktura IPA je ZIP archiv obsahující složku Payload s .app bundle a metadaty.
| Soubor/adresář | Určení |
|---|---|
| Payload/ | Kořenová složka s .app bundle |
| Payload/App.app/ | Bundle aplikace: spustitelný soubor, zdroje, nib/storyboard |
| Payload/App.app/Info.plist | Metadata: bundle ID, verze, oprávnění |
| Payload/App.app/embedded.mobileprovision | Provisioning Profile pro instalaci |
| iTunesMetadata.plist | Metadata pro iTunes (volitelné) |
| META-INF/ | Podpisy a hashe pro ověření |
Uvnitř složky Payload se nachází bundle aplikace s příponou .app. Není to soubor, ale adresář, který iOS rozpoznává jako aplikaci. Uvnitř je spustitelný Mach-O soubor (jméno odpovídá jménu bundle), Info.plist, zdroje, obrázky a lokalizované řetězce.
Zdrojový kód v Swift nebo Objective-C je zkompilován do strojového kódu ve formátu Mach-O (Mach Object). Soubor obsahuje segmenty __TEXT (kód), __DATA (data) a __LINKEDIT (metadata propojení). Moderní IPA obsahují pouze 64bitovou architekturu arm64.
Xcode automatizuje sestavení IPA: od kompilace zdrojového kódu po vytvoření podepsaného archivu připraveného k nahrání do App Store Connect.
Debug — pro vývoj, bez optimalizací. Release — pro publikaci, s optimalizacemi překladače. Každé schéma definuje příznaky kompilace, podepisování kódu a entitlements. Xcode vytváří archiv (Archive) pomocí nabídky Product → Archive.
// Info.plist — základní metadata aplikace
<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 zkompiluje každý .swift nebo .m soubor do objektového souboru (.o), poté je spojí do jednoho Mach-O binárního souboru. Zdroje (obrázky, XIB, storyboard) jsou zpracovány samostatně: storyboardy jsou zkompilovány do binárního formátu .storyboardc, obrázky jsou optimalizovány v Asset Catalog (.car).
Podpis — nejsložitější aspekt IPA. Apple vyžaduje digitální podpis pro každou aplikaci spuštěnou na skutečném zařízení. Systém ověřuje certifikát vývojáře, entitlements a shodu s Provisioning Profile.
Certificate (Development nebo Distribution) — potvrzuje identitu vývojáře. Provisioning Profile — propojuje certifikát, bundle ID a seznam povolených zařízení (pro ad-hoc). Entitlements — oprávnění aplikace (push notifikace, iCloud, App Groups).
Xcode podepíše každou knihovnu a framework uvnitř .app bundle, poté podepíše samotný bundle. Konečný IPA je podepsán na úrovni ZIP archivu. Apple ověřuje všechny úrovně podpisu při instalaci. iOS nespustí aplikaci, pokud alespoň jedna komponenta má neplatný podpis.
// Ověření podpisu pomocí 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 — platforma Apple pro správu publikací aplikací. Nahrání IPA se provádí prostřednictvím Xcode Organizer, Transporter nebo příkazového řádku přes xcrun altool.
Po vytvoření archivu Xcode nabízí Distribute App s výběrem metody: App Store Connect, Ad-hoc, Enterprise nebo Development. Po výběru App Store Connect vývojář určí tým a potvrdí nahrání. Xcode zkontroluje podpis, odešle IPA na servery Apple a vrátí stav zpracování.
Pro CI/CD se používá xcrun altool nebo novější notarytool. Apple vyžaduje notářské ověření pro macOS aplikace, pro iOS je tento krok volitelný, ale doporučený. xcodebuild -exportArchive vytváří podepsaný IPA připravený k nahrání.
Apple kontroluje každý IPA na škodlivý kód, soukromá API a soulad s pravidly App Store Review Guidelines. Proces kontroly trvá od 1 hodiny do 2 dnů.
Při nahrání IPA do App Store Connect Apple aplikuje App Thinning — technologii optimalizace binárního souboru pro konkrétní zařízení. Slicing odstraňuje z IPA zdroje pro nepodporovaná rozlišení a architektury. On-Demand Resources umožňuje stahovat části aplikace (úrovně her, videa) pouze na vyžádání uživatele. Bitcode — mezilehlá reprezentace, kterou Apple může překompilovat pro nové architektury bez účasti vývojáře.
App Store také kontroluje soulad IPA s požadavky Sandbox: aplikace nesmí přistupovat k datům jiných aplikací, k souborovému systému mimo svůj kontejner a k hardwarovým funkcím bez výslovného svolení uživatele.
TestFlight — oficiální služba Apple pro beta testování aplikací. Vývojář nahraje IPA do App Store Connect a pozve testery e-mailem nebo prostřednictvím veřejného odkazu.
Internal Testing — až 100 účastníků z týmu vývojáře. Nevyžaduje kontrolu Apple. External Testing — až 10 000 účastníků, vyžaduje absolvování Beta App Review. TestFlight automaticky distribuuje buildy testerům a sbírá analytiku.
Build je k dispozici pro testování po dobu 90 dnů po nahrání. TestFlight podporuje až 100 aktivních buildů současně. Každý tester může nainstalovat až 30 aplikací současně. Crashlytics se integruje s TestFlight pro sběr zpráv o pádech a nefatálních chybách.
Sestavení IPA v CI prostředí vyžaduje macOS runner. GitHub Actions, GitLab CI a Bitrise poskytují macOS prostředí pro iOS sestavení. Fastlane lane `build_app` automatizuje celý cyklus: archivaci, podpis, export IPA a nahrání do TestFlight. Pro správu certifikátů a profilů se používá Match — nástroj Fastlane, který ukládá podpisy v šifrovaném Git úložišti.
Vývojáři se setkávají s řadou charakteristických chyb při sestavování a podepisování IPA. Většina souvisí s nesprávnou konfigurací certifikátů a profilů.
Xcode nenachází Provisioning Profile odpovídající bundle ID a certifikátu. Řešení — stáhněte aktuální profily v Xcode Accounts → Download Manual Profiles nebo použijte Automatic Signing.
Chyba při nahrání IPA s neplatnou architekturou. Moderní IPA by měly obsahovat pouze arm64. Přítomnost i386 nebo x86_64 v binárním souboru vede k odmítnutí. Řešení — zkontrolujte architektury v Build Settings a vylučte architektury simulátoru.
IPA neobsahuje správnou strukturu Payload/App.app. Apple očekává přesnou hierarchii. Řešení — zkontrolujte, že archiv obsahuje složku Payload s jedním .app bundle, nikoli plochý seznam souborů.
Pro firemní distribuci se používá program Enterprise Apple (299 USD/rok). IPA je podepsána Enterprise certifikátem a může být instalována na libovolná zařízení společnosti bez omezení počtu. Ad-hoc distribuce je omezena na 100 zařízení na účet vývojáře (99 USD/rok). Systémy MDM (Mobile Device Management), jako jsou Jamf a Microsoft Intune, podporují hromadnou instalaci Enterprise-IPA.
Často kladené dotazy
IPA používá spustitelný formát Mach-O místo DEX, vyžaduje Provisioning Profile pro instalaci a prochází přísnou kontrolou App Store. APK, na rozdíl od IPA, lze nainstalovat přímo bez prostředníků (sideloading).
Ne, sestavení IPA vyžaduje Xcode a nástroje Apple, které jsou dostupné pouze na macOS. Alternativy: vzdálené servery macOS (Mac min, AWS Mac) nebo cloudové CI služby (GitHub Actions s macOS runnerem).
Jednoduchá aplikace — 5–30 MB. Aplikace střední složitosti — 30–150 MB. Hry mohou dosahovat 4 GB. Apple omezuje velikost stahování prostřednictvím mobilní sítě na 200 MB, ale uživatel může stáhnout přes Wi-Fi.
Pro ad-hoc instalaci se používá Xcode nebo Apple Configurator. Enterprise aplikace jsou distribuovány prostřednictvím interního serveru s manifest.plist. Běžný uživatel nemůže nainstalovat IPA bez jailbreak nebo TestFlight.
Fat IPA obsahuje více architektur (arm64 + x86_64) pro univerzální sestavení. Thin IPA obsahuje pouze jednu architekturu pro konkrétní zařízení. Apple přijímá pouze thin IPA pro publikaci — fat binární soubory jsou odmítány.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také