IPA: co to je, struktura souboru a princip fungování

Autor: IT Sectr Publikováno: 2026-04-15 Doba čtení: 8 min

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 — formát archivu pro distribuci iOS aplikací prostřednictvím App Store a ad-hoc instalace.
  • Struktura zahrnuje podepsaný spustitelný Mach-O soubor, zdroje a Provisioning Profile.
  • Podpis — povinný: bez správného certifikátu a profilu se IPA neinstaluje.
  • Sestavení se provádí přes Xcode s podporou různých schémat: Debug, Release, Ad-hoc, Enterprise.
  • Architektury — moderní IPA obsahují binární soubory pro arm64, bez podpory 32bitových zařízení.

Co je IPA a k čemu se používá

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

Historie formátu

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.

Scénáře použití

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 souboru IPA

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.plistMetadata: bundle ID, verze, oprávnění
Payload/App.app/embedded.mobileprovisionProvisioning Profile pro instalaci
iTunesMetadata.plistMetadata pro iTunes (volitelné)
META-INF/Podpisy a hashe pro ověření

Bundle .app

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.

Spustitelný soubor Mach-O

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.

Proces sestavení IPA přes Xcode

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.

Schémata sestavení

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.

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

Architektura sestavení

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 IPA a Provisioning Profile

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.

Komponenty podpisu

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

Proces podpisu

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.

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

Publikace IPA v App Store Connect

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.

Proces nahrání

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

Příkazový řádek

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

App Thinning: optimalizace IPA pro zařízení

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.

Testování IPA přes TestFlight

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.

Interní a externí testování

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.

Omezení TestFlight

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.

IPA a Continuous Integration

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.

Typické problémy s IPA

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

Chyba podpisu: No matching provisioning profile found

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.

ITMS-90125: The binary is invalid

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.

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

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

Distribuce IPA bez App Store

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

Čím se IPA liší od APK?

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

Lze sestavit IPA na Windows?

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

Jak velký je typický IPA?

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.

Jak nainstalovat IPA bez App Store?

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.

Co je thin IPA a fat IPA?

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í

  • IPA — formát distribuce iOS aplikací založený na ZIP se spustitelným souborem Mach-O.
  • Struktura zahrnuje Payload/.app bundle, Info.plist, podpisy a Provisioning Profile.
  • Sestavení se provádí přes Xcode s kompilací Swift/Objective-C do strojového kódu arm64.
  • Podpis povinný: certifikát + Provisioning Profile + entitlements jsou ověřovány iOS při instalaci.
  • Publikace probíhá přes App Store Connect s kontrolou Apple Review Guidelines.
  • TestFlight — oficiální nástroj beta testování pro až 10 000 účastníků.
  • Omezení: sestavení pouze na macOS, povinný podpis, maximálně 4 GB velikost.

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

Prodiskutovat projekt

Přečtěte si také