Android - приложение не установлено - невозможно обновить с новым apk - React Native

В настоящее время у меня есть приложение React Native в магазине Play. Шаги, выполненные месяц назад:

    1. I generated private signing key using keytool
    2. Я создал кестор под названием prod.keystore (запомненный псевдоним)
    3. Поместил мой prod.keystore в каталог android / app
    4. Отредактировал ~ / .gradle / gradle.properties с правильным паролем, псевдонимом и ключом хранилища ключей
    5. Отредактировал файл android / app / build.gradle, чтобы добавить конфигурацию подписи
    6. Ran cd android && ./gradlew AssemblyRelease, чтобы получить apk Успешно загруженный apk в Play store

Сегодня, после некоторых изменений в моем коде, я сгенерировал новый apk, используя ЖЕ prod.keystore (с тем же паролем, псевдонимом и ключом хранилища ключей). Перед этим я увеличил код версии android в Androidmanifest.xml и build.gradle.

У меня была старая версия приложения, которую я установил из Playstore. После создания нового apk я попытался установить его на свой телефон. Я ожидал, что обновление будет выполнено, но после попытки установки я получил сообщение «Приложение не установлено». adb install new-apk-name.apk дает мне немного более подробную ошибку INSTALL_FAILED_UPDATE_INCOMPATIBLE

Я не хочу удалять приложение и устанавливать его снова. Я хочу иметь возможность обновить приложение и протестировать его перед загрузкой в ​​магазин. Кто-нибудь знает, почему это не работает?


person Marina Sovic    schedule 14.10.2017    source источник


Ответы (1)


Решение

  1. Удалите приложение, загруженное из Play Store.
  2. Установите новый apk

Дважды проверьте, будет ли обновление работать для пользователей

Используйте следующий контрольный список, чтобы убедиться, что ваш новый APK готов к обновлению существующих пользователей:

Название пакета обновленного APK должно быть таким же, как у текущей версии. Код версии должен быть больше, чем текущая версия. Узнайте больше о версиях ваших приложений. Обновленный APK должен быть подписан той же подписью, что и текущая версия. Чтобы убедиться, что ваш APK использует ту же сертификацию, что и предыдущая версия, вы можете запустить следующую команду для обоих APK и сравнить результаты:

$ jarsigner -verify -verbose -certs my_application.apk

Если результаты совпадают, вы используете тот же ключ и готовы продолжить. Если результаты отличаются, вам нужно будет повторно подписать APK с правильным ключом.

Дополнительные сведения см. В документации Google здесь

person alexdriedger    schedule 14.10.2017
comment
Я не хочу этого делать. Это работает. Я хочу убедиться, что обновление будет работать, когда пользователь загрузит новую версию приложения из игрового магазина. - person Marina Sovic; 15.10.2017
comment
Google сделает это за вас. Если вы хотите дважды проверить, следуйте инструкциям Google здесь - person alexdriedger; 15.10.2017
comment
jarsigner -verify -verbose -certs my_application.apk показал мне разницу в моих сертификатах. Google play вроде добавил дополнительную подпись. После загрузки в магазин обновление заработало! - person Marina Sovic; 16.10.2017