Как стать автором
Обновить

Автоматизация публикации Android приложений в Google Play и Huawei AppGallery — инструкция от А до Я

Уровень сложностиСложный
Время на прочтение19 мин
Количество просмотров15K
Всего голосов 8: ↑8 и ↓0+8
Комментарии12

Комментарии 12

Если ваши пользователи установят bundle приложения из Google Play, то они не смогут обновить его через Huawei.

а каким образом гугл определяет, что это одно и тоже приложение?

Приложение уникально идентифицируется по Application ID (com.example.xxx). Данный ID можно видеть в веб-версии при клике на любое из приложений (https://play.google.com/store/apps/details?id=XXXX).

Если ID совпадает, то вы будете видеть приложение в различных сторах, только обновить не получится из-за различия сигнатур. Мы сейчас имеет Google, Huawei, F-Droid и просто Web версию - все с различными сигнатурами...

Хотелось уточнить, совсем не смогут обновить из другого стора или обновить смогут, если захотят, но с удалением всех данных приложения? Есть какой-то способ сделать безопасные обновления?

Ну про "сотни часов" мне кажется слегка перебор:) У меня за последний год 95% времени на публикации в PlayMarket/AppGallery/Rustore отожрали не рутинные операции, а сюрпризы от роботов-модераторов в PlayMarket да согласование с бизнесом постоянных нововведений для содержимого секций типа DataSafety и т.п. CI/CD тут к сожалению врядли поможет:)

Согласен с вами. Вот на всё это и ушло время, сэкономленное от возни с технической подготовкой релизов :). У нас просто еще приложение с NDK + различные данные надо подготавливать, поэтому без сборки на CI/CD сходу сделать всё правильно может быть трудно.

А приоритет обновления можно выставить для ГП?

Уточните, что имеете ввиду под приоритетом?

Update Priority, используемое, например, для In-app updates. Целое число от 1 до 5. Можно установить с помощью Google Play Developer API. Так же с помощью Fastlane можно.

Большое спасибо автору за описание своего опыта.

Странно, что у вас сборки beta и release отличаются. Бета это ведь и есть будущий релиз (ну, с некоторой вероятностью)?

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

Добавлю, что api магазина App Gallery кривое, как и сам магазин. Сталкивался с ситуацией, когда после обрыва загрузки файла консоль перешла в неработоспособное состояние и пришлось руками удалять последний загруженный файл (ттт, получилось) :)

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

Также лично мне кажется, что 30 страниц описания деплоя версии - это овербюрократия, но тут конечно дело личное, кому что нравится.

Странно, что у вас сборки beta и release отличаются. Бета это ведь и есть будущий релиз (ну, с некоторой вероятностью)?


Отличаются другим application id чтобы можно было бы поставить в параллель. Также в beta есть crashlytics, а в продакшене нет (это особенность проекта).

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


Всё так. Но с bundle в конечном итоге подписывать будет магазин. Здесь скорее вопрос надо ли использовать разные application id чтобы при необходимости можно было бы установить два приложения в параллель и как-то перенести данные. Хотя кажется, шаринг данных через id тоже уже прикрылся с каких-то версий. Только какой-нибудь application-specific импорт-экспорт.

Добавлю, что api магазина App Gallery кривое, как и сам магазин.
Сталкивался с ситуацией, когда после обрыва загрузки файла консоль
перешла в неработоспособное состояние и пришлось руками удалять
последний загруженный файл (ттт, получилось) :)

Оно примерно везде одинаково кривое, в том числе в Apple AppStore. Всё равно периодически что-то отваливается...

Также лично мне кажется, что 30 страниц описания деплоя версии - это
овербюрократия, но тут конечно дело личное, кому что нравится.

Да не бюрократия, просто тестировали не на программистах и писали всё, что было непонятно.

Внимание: задача publish почему-то не имеет явной зависимости на bundle

Так это и логично и правильно
Мы собираем бандл 1 раз и потом просто паблишим его в разные сторы

туда же можно добавить ещё Galaxy Store и в будущем RuStore и не нужно под каждый собирать, а только паблишить. Гугл уже давно не возникает по поводу наличия хуавеевских зависимостей, а хуавей никогда и не возражал

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории