Как применить миграционную подпись к APK, созданному Flash Builder

Я разработал приложение для Android с помощью Flash Builder.

Версия 1.0 была создана со старым сертификатом (файл.PFX).

Срок действия этого сертификата истек.

Поэтому я создаю новую версию 1.1 с новым сертификатом.

Но когда я пытаюсь установить новую версию, отображается следующее сообщение.

Приложение не установлено: уже установлен существующий пакет с таким же именем и конфликтующей подписью.

Существует простое решение: удалите первую версию (1.0) и установите новую версию (1.1).

Но я не хочу потерять данные своего приложения, созданные 1.0 (старая версия).

Может ли кто-нибудь предложить лучшее решение?

2 ответа

Решение

К сожалению, на данный момент нет лучшего решения для этой ситуации.

Цитирование официальной документации на разработчиков Android,

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

  • Обновление приложения. Выпуская обновления для своего приложения, вы должны продолжать подписывать обновления тем же сертификатом или набором сертификатов, если хотите, чтобы пользователи могли без проблем обновиться до новой версии. Когда система устанавливает обновление для приложения, она сравнивает сертификаты в новой версии с сертификатами в существующей версии. Если сертификаты совпадают точно, включая данные сертификата и порядок, система разрешает обновление. Если вы подписываете новую версию без использования соответствующих сертификатов, вы также должны назначить приложению другое имя пакета - в этом случае пользователь устанавливает новую версию как совершенно новое приложение.

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

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

  • Если вы планируете поддерживать обновления для одного приложения, вы должны убедиться, что срок действия вашего ключа превышает ожидаемый срок службы этого приложения. Рекомендуется срок действия 25 лет или более. По истечении срока действия вашего ключа пользователи больше не смогут беспрепятственно обновляться до новых версий вашего приложения.

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

  • Если вы планируете опубликовать свои приложения в Google Play, ключ, который вы используете для подписи приложений, должен иметь срок действия, заканчивающийся после 22 октября 2033 года. Google Play применяет это требование, чтобы пользователи могли без проблем обновлять приложения, когда новые версии доступны.

Итак, в заключение вы должны удалить старую версию и установить новую, подписанную новым сертификатом.

Надеюсь это поможет.

Вы можете продлить свой старый сертификат в Центре сертификации (CA), чтобы не столкнуться с этим конфликтом.

Другие вопросы по тегам