Comments 6
Мобильная разработка это боль, особенно после веба, там совсем недавно завезли jetpack compose, я офигел
Есть вариант сказать гуглу, что я забыл пароль, и сгенерить keystore заново, но пару дней вы не сможете публиковать приложение. Все еще не могу взять в толк, зачем нужно было устраивать такой цирк, а не использовать приватный ключ у разработчика и публичный у гугла
В общем-то так оно и сделано, но с каких-то пор появилась опциональная возможность делегировать генерацию ключа в Google.
Android со своего появления позволял ставить приложения из файлов APK, но это потенциально уязвимость - вдруг юзер скачает с какого-нибудь сайта "мод на бесконечные деньги в Сбербанк", который под капотом отправляет все учётные данные пользователя автору. Или ревнивый партнер или спецслужбы обойдут блокировку пинкодом на мессенджере просто накатив поверх модифицированный APK с бекдором (заметно или даже незаметно для юзера).
Поэтому в Android у каждого APK есть цифровая подпись. Система отказывается ставить APK поверх уже установленного приложения с другой цифровой подписью. Как минимум юзеру будет лишний повод задуматься "точно ли я знаю, что делаю?", как максимум, придётся сначала удалить руками старую версию приложения с другой подписью со всеми данными, авторизациями и т. д. Соответственно, приложение с другой подписью не сможет облегчить доступ к чему-то запароленному, а ещё не пройдёт незаметно.
Шло время и приложения опубликованные на Google Play пухли. В итоге Google захотел сделать Android App Bundle - новый формат приложений, который предполагал переупаковку на стороне сервера с выкидыванием всего лишнего на конкретном устройстве пользователя, который качает приложение (например, оставить в APK только одну версию нативных библиотек под нужную архитектуру, а не 2-4 под все поддерживаемые Android, оставить графические ресурсы только под DPI устройства и т. д.). Но возникла проблема - каким ключом Google будет подписывать перепакованный APK? Если новым, своим, то не получится обновить уже установленные приложения до введения фичи, а ещё будет невозможно обновлять приложения полученные из других источников (например, скачанные с официального сайта разработчика) без переустановки.
И Google Play придумал давать разработчикам выбор - он сгенерирует ключ за них (актуально для новых приложений и не очень опытных разработчиков, для которых снижается порог входа) или же разработчик отправляет свой ключ в Google (актуально для старых приложений и для разработчиков, которые по каким-то причинам хотят больше контролировать процесс выпуска ключа, например, чтобы было чем подписывать пререлизную версию приложения до публикации в магазине, а потом ничего не ломать).
Также не забываем, что помимо распространения APK есть ещё альтернативные маркеты и хочется, чтобы можно было поставить приложение из одного и потом без проблем обновить другим.
сказать гуглу, что я забыл пароль, и сгенерить keystore заново
Есть шанс, что после такого финта старые установки приложения не смогут обновиться и будет необходимо переустанавливать приложение.
В общем, не теряйте keystore.
В iOS, в стандартном инди флоу, всё так: собираем билд в Xcode на Mac с установленным сертификатом разработчика и отправляем в App Store Connect.
Есть еще различные способы автоматизации вроде fastlane, посмотрите в его сторону.
Публикация PWA в App Store и Play Store на github actions