Sestavení a publikace mobilní aplikace je proces přeměny zdrojového kódu na instalovatelný soubor (APK, AAB, IPA) a jeho nahrání do obchodů s aplikacemi. Podle Google Play Console (2025) je Android App Bundle (AAB) povinným formátem pro publikaci na Google Play od srpna 2021. V tomto článku se podíváme na formáty sestavení, kompilaci, podepisování kódu, proces publikace a beta testování.
Klíčové body
APK (Android Package Kit) — tradiční formát sestavení a publikace mobilních aplikací na Androidu. APK obsahuje veškerý kód, zdroje a manifest aplikace. AAB (Android App Bundle) — formát představený Googlem v roce 2018 a povinný pro nové aplikace od srpna 2021. AAB se neinstaluje přímo — Google Play dynamicky generuje optimalizované APK pro každé zařízení z AAB.
Výhody AAB: velikost stahování je v průměru o 15 % menší (dodáním pouze potřebných zdrojů: správné hustoty obrazovky, jazyky, architektury CPU). AAB také podporuje modulární doručování — můžete načítat moduly na vyžádání (Play Feature Delivery) nebo odloženě (Play On-Demand). Pro vývojáře je AAB povinný; pro distribuci mimo Google Play (sideloading, tržiště) — pouze APK.
IPA (iOS App Store Package) — instalovatelný soubor iOS, což je ZIP archiv obsahující podepsanou aplikaci. IPA obsahuje složku Payload/ s .app balíčkem, Provisioning Profile a podpis. IPA se sestavuje pouze na macOS přes Xcode, které vytvoří archiv (.xcarchive) a exportuje IPA. Pro distribuci přes App Store se IPA podepisuje Apple Distribution Certificate; pro Ad Hoc nebo Enterprise — odpovídajícími certifikáty.
| Parametr | APK | AAB | IPA |
|---|---|---|---|
| Platforma | Android | Android (Google Play) | iOS |
| Formát | ZIP archiv | ZIP archiv | ZIP archiv |
| Přímá instalace | Ano | Ne (přes Google Play) | Přes App Store / MDM |
| Podpis | Keystore (JKS) | Keystore (JKS/PEPK) | Apple Certificate |
| App Thinning | Ne | Ano (automaticky) | Ano (Slicing, Bitcode) |
JIT (Just-In-Time) — kompilace kódu během provádění aplikace, ovlivňující rychlost sestavení a publikace. Na Androidu do verze 5.0 (Lollipop) se používal Dalvik VM s JIT kompilací. Při každém spuštění aplikace byl DEX bytecode převeden na strojový kód «za běhu». Nevýhoda: zpomalení při prvním spuštění a dodatečná spotřeba energie. AOT (Ahead-Of-Time) — kompilace kódu před spuštěním aplikace, během instalace. Počínaje Androidem 7.0 (Nougat) ART (Android Runtime) kompiluje aplikaci zcela během instalace.
ART (Android Runtime) — běhové prostředí, které nahradilo Dalvik v Androidu 5.0. ART používá hybridní přístup: AOT kompilaci při instalaci + JIT pro často prováděné metody. To kombinuje rychlost AOT (rychlý start) s flexibilitou JIT (adaptivní optimalizace). Výsledek: výkon Android aplikací se zvýšil o 20–30 % ve srovnání s Dalvikem. Pro vývojáře je přechod na ART transparentní — kód nevyžaduje změny.
Bitcode — mezilehlá reprezentace kódu (IR), kterou Apple používá k překompilování IPA pro různé architektury procesorů. Bitcode je volitelný: pro iOS aplikace je ve výchozím nastavení zapnutý, pro watchOS a tvOS je povinný. Apple může překompilovat Bitcode při vydání nových procesorů bez účasti vývojáře. App Thinning — technologie Apple zahrnující Slicing (dodání pouze potřebných zdrojů pro zařízení) a On-Demand Resources (načítání zdrojů na vyžádání). App Thinning snižuje velikost stahování z App Store o 30–50 %.
DEX — formát bytecode pro Android, spouštěný ART/Dalvikem. Zdrojový kód Kotlin/Java je kompilován do class souborů, poté do DEX přes dx nebo d8 (moderní a rychlejší nástroj). Multidex — mechanismus pro aplikace překračující limit 65 536 metod v jednom DEX souboru. V moderních projektech se multidex automaticky zapíná, pokud targetSdkVersion >= 21.
Keystore — soubor obsahující soukromý klíč a certifikát pro podepsání Android aplikace během sestavení. Keystore se vytváří pomocí keytool (příkaz -genkey) nebo Android Studio. Důležité: Keystore nelze ztratit — bez něj nelze aplikaci na Google Play aktualizovat. Parametry podepisování: keyAlias, keyPassword, storePassword a storeFile. Formát: JKS (Java KeyStore) nebo PEPK (Play Encrypted Private Key) pro AAB.
App Bundle ID (Android) — jedinečný identifikátor aplikace v balíčkové notaci (com.example.app). Version Code — celé číslo pro interní číslování verzí (každé nové sestavení ho zvyšuje). Version Name — řetězec zobrazený uživateli (1.2.3). Tyto parametry se nastavují v build.gradle na úrovni aplikace.
Apple Certificate — digitální certifikát ověřující identitu vývojáře. Typy: Development (pro ladění), Distribution (pro App Store), Ad Hoc (pro omezenou distribuci). Certifikáty se vytvářejí v Apple Developer Account a stahují do Keychain. Provisioning Profile — soubor spojující certifikát, App ID (Bundle Identifier) a seznam povolených zařízení. Bez Provisioning Profile se aplikace na zařízení nespustí.
Bundle ID (iOS) — jedinečný identifikátor aplikace (com.example.app). Build Number — číslo sestavení, zvyšuje se s každým buildem. Marketing Version — verze zobrazená uživateli. Správa verzí: pro iOS se parametry nastavují v Info.plist a Project Settings; pro Android — v build.gradle. V IT Sectr automatizujeme aktualizace verzí přes Fastlane — to eliminuje lidské chyby při vydání.
Google Play Console — nástroj pro publikování Android aplikací. Proces: registrace vývojářského účtu ($25 jednorázově), vytvoření aplikace, vyplnění metadat (název, popis, snímky obrazovky, kategorie), nahrání AAB, konfigurace cen a distribuce, recenze. Google kontroluje aplikaci automaticky (viry, dodržování zásad) a ručně u některých kategorií. Recenze trvá od několika hodin do 2–3 dnů.
App Store Connect — platforma Apple pro publikování iOS aplikací. Proces: účet vývojáře Apple ($99/rok), vytvoření aplikace v App Store Connect, příprava IPA v Xcode (Archive → Distribute App → App Store Connect), nahrání přes Transporter nebo Xcode, vyplnění metadat, odeslání k recenzi. App Review — ruční recenze Apple může trvat 24 hodin až 7 dní. Typické důvody zamítnutí: nefunkční tlačítka, neúplný obsah, žádost o oprávnění bez vysvětlení.
TestFlight — oficiální nástroj Apple pro beta testování iOS aplikací. TestFlight podporuje Internal Testing (až 100 testerů e-mailem, bez recenze) a External Testing (až 10 000 testerů, s recenzí Apple). Sestavení jsou k dispozici po dobu 90 dnů, poté je třeba nahrát nové sestavení. TestFlight automaticky aktualizuje aplikaci u testerů při nahrání nového sestavení.
Internal Testing (Android) — až 100 testerů, bez recenze Google, sestavení je okamžitě k dispozici. Closed Beta — až 1000 testerů e-mailem nebo Google Groups, bez recenze. Open Beta — neomezený počet testerů prostřednictvím veřejného odkazu, s recenzí Google. Staged Rollout — postupné zvyšování procenta uživatelů, kteří dostávají aktualizaci (5 % → 20 % → 50 % → 100 %). To je nejbezpečnější způsob vydání.
App Thinning (iOS) — automatické zmenšení velikosti stahovaného IPA: Slicing (pouze potřebné zdroje pro zařízení), Bitcode (optimalizace procesoru), On-Demand Resources (stažení na vyžádání). V IT Sectr používáme TestFlight pro iOS beta testy a Internal Testing pro Android — to nám umožňuje odhalit problémy před hromadným vydáním.
Často kladené otázky
APK — univerzální instalovatelný soubor, funguje na jakémkoli zařízení. AAB — formát pro Google Play, který generuje optimální APK pro každé zařízení. Velikost stahování přes AAB je o 15 % menší. Pro Google Play je AAB povinný, pro sideloading — APK.
Nebudete moci aktualizovat aplikaci na Google Play — budete muset vytvořit novou aplikaci s novým názvem balíčku. Uchovávejte Keystore na bezpečném místě (správce hesel, šifrovaný Git). Google Play App Signing (použití klíčů Google) toto riziko snižuje.
Google Play — $25 jednorázově za vývojářský účet. App Store — $99/rok. Obě částky zahrnují neomezený počet aplikací. Pro iOS potřebujete také Mac (od $999) nebo pronájem Macu v cloudu.
Staged Rollout — postupné zavádění aktualizace: nejprve 5 % uživatelů, poté 20 %, 50 % a 100 %. Pokud jsou v jakékoli fázi zjištěny pády, zavádění se zastaví. K dispozici v Google Play Console.
Pro Android — ne, můžete nainstalovat APK na zařízení přes USB nebo emulátor bez účtu. Pro iOS — ano, bez účtu za $99/rok bude aplikace fungovat pouze na simulátoru, ne na skutečném zařízení.
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í.