Не удается обновить отладочный APK на устройстве - PullRequest
0 голосов
/ 31 марта 2020

Я сталкиваюсь с проблемой при попытке установить файл .apk типа отладки поверх другого на моем устройстве. У меня приложение с versionCode=n уже установлено. Когда я пытаюсь установить то же приложение с versionCode=n+1, я получаю сообщение об ошибке.

Вот сообщение после того, как я вызываю команду adb install xxx.apk

Не удалось установить xxx.apk : Ошибка [INSTALL_FAILED_UPDATE_INCOMPATIBLE: подписи пакета xxx не соответствуют ранее установленной версии; игнорируя!]

Все мои файлы .apk подписаны Android отладочным хранилищем ключей. Это подтверждается командой jarsigner -verify -verbose -certs xxx.apk, которая выдает мне следующее сообщение:

  • Подпись "C = US, O = Android, CN = Android Debug" Алгоритм дайджеста: SHA -256 Алгоритм подписи: SHA256 с RSA, 2048-битный ключ

jar проверен.

Эти файлы .apk создаются с помощью TeamCity CI, который просто вызывает команду assembleDebug.

Это очень странно, потому что я могу легко обновить файлы APK выпуска, созданные CI. Эта проблема возникает только в случае отладочных сборок.

Есть ли у вас какие-либо идеи по этому поводу? Заранее спасибо

1 Ответ

1 голос
/ 31 марта 2020

Каждая отладочная сборка вашего android приложения будет подписана с хранилищем ключей отладки.

Это проблема, потому что в средах непрерывной интеграции, таких как travis-ci или docker, хранилище ключей отладки создается заново. при каждом создании среды.

Это означает, что если у кого-то есть отладочная версия вашего приложения, он не сможет выполнить обновление до более новой версии, поскольку хранилища ключей будут другими.

Кредиты для: https://newfivefour.com/android-debug-build-constant-signed-keystore.html

Также для сравнения, если два apks подписаны одним и тем же ключом: check: Как узнать, какое хранилище ключей использовалось для подписи приложение?

...