Пакет А (старая/базовая версия)
Нажмите или перетащите первый файл .apk/.xapk.
Пакет B (новая/обновленная версия)
Нажмите или перетащите второй файл .apk/.xapk.
Почему сравнение версий APK предотвращает неудачные обновления
Когда вы устанавливаете более новую версию приложения Android поверх существующей установки, Android PackageManager применяет два строгих правила: versionCode нового пакета должен быть больше или равен установленной сборке, а его сертификат подписи внутри META-INF/ (или APK Signing Block v2/v3) должен быть побайтно идентичен.
- Соответствие дайджеста сертификата подписи: Вычисляет отпечаток SHA-256 блока подписи .RSA / .DSA / .EC в обоих пакетах, поэтому вы сразу узнаете, будет ли обновление на месте успешным без удаления.
- Собственные различия ABI и DEX: Указывает, удалило ли обновление 32-битные библиотеки armeabi-v7a или добавило новые файлы classes*.dex.
- Дельта записи CRC32: Перечисляет точные файлы, добавленные или удаленные между сборками.
Как Android оценивает обновления пакетов (INSTALL_FAILED_UPDATE_INCOMPATIBLE)
Одна из наиболее частых ошибок, с которыми пользователи сталкиваются при обновлении загруженного приложения, — это «Приложение не установлено, поскольку пакет конфликтует с существующим пакетом» (известная в журналах ADB как INSTALL_FAILED_UPDATE_INCOMPATIBLE). Это происходит всякий раз, когда установленное приложение поступает из Google Play Store (подписано закрытым ключом выпуска разработчика) и обновление конвертируется из разделенного архива .xapk (который необходимо повторно подписать ключом подписи конвертера после объединения разделений).
Однако если и ваша старая, и новая версия были преобразованы с помощью xapktoapk.com, наш детерминированный конвейер подписывания использует один и тот же согласованный сертификат подписи для всех преобразований — это означает, что вы можете установить новый преобразованный APK непосредственно поверх старого преобразованного APK, не удаляя и не теряя прогресс в приложении! Перед установкой воспользуйтесь приведенным выше инструментом сравнения, чтобы убедиться, что оба файла используют один и тот же дайджест сертификата.