Balíček A (stará / základní verze)
Klikněte nebo přetáhněte první soubor .apk / .xapk
Balíček B (nová / aktualizovaná verze)
Klikněte nebo pusťte druhý soubor .apk / .xapk
Proč porovnávání verzí APK zabraňuje neúspěšným aktualizacím
Když nainstalujete novější verzi aplikace pro Android přes stávající instalaci, PackageManager pro Android vynucuje dvě přísná pravidla: versionCode nového balíčku musí být větší nebo rovno nainstalovanému sestavení a jeho podpisový certifikát uvnitř META-INF/ (nebo APK Signing Block v2/v3) musí být bajt po bajtu identický.
- Shoda s přehledem podpisového certifikátu: Vypočítá otisk SHA-256 podpisového bloku .RSA / .DSA / .EC v obou balíčcích, takže okamžitě víte, zda bude místní aktualizace úspěšná bez odinstalace.
- Nativní rozdíl ABI a DEX: Zvýrazňuje, zda aktualizace odstranila 32bitové knihovny armeabi-v7a nebo přidala nové soubory classes*.dex.
- Delta vstupu CRC32: Uvádí přesné soubory přidané nebo odebrané mezi sestaveními.
Jak Android vyhodnocuje aktualizace balíčků (INSTALL_FAILED_UPDATE_INCOMPATIBLE)
Jednou z nejčastějších chyb, se kterými se uživatelé setkávají při aktualizaci aplikace s bočním stahováním, je "Aplikace není nainstalována, protože balíček koliduje s existujícím balíčkem" (známá v protokolech ADB jako INSTALL_FAILED_UPDATE_INCOMPATIBLE). K tomu dochází vždy, když nainstalovaná aplikace pochází z obchodu Google Play (podepsaná soukromým klíčem k vydání vývojáře) a aktualizace byla převedena z rozděleného archivu .xapk (který po sloučení rozdělení musel být znovu podepsán pomocí podpisového klíče převodníku).
Pokud však vaše stará verze i vaše nová verze byly převedeny pomocí xapktoapk.com, náš deterministický kanál pro podepisování používá stejný konzistentní podpisový certifikát napříč konverzemi – to znamená, že nový převedený soubor APK můžete nainstalovat přímo na starý převedený soubor APK bez odinstalace nebo ztráty postupu v aplikaci! Pomocí nástroje pro porovnání výše se před instalací přesvědčte, že oba soubory sdílejí stejný výtah certifikátu.