Автоматическое публикация приложения Android Beta в магазине Google Play

Я ищу метод, который я могу использовать для автоматического публикации приложения в потоках альфа-и бета-тестирования в магазине Google Play с моего CI-сервера.

Моя настройка CI выглядит следующим образом:

  • Приложение Android написано с использованием Android Studio (использование Eclipse на самом деле для нас не является опцией).
  • Сценарии сборки написаны в Rake и запускают задачи Gradle, а также тесты Calabash-Android.
  • Сервер сборки - Teamcity 8+, который в настоящее время размещен локально (хотя мы можем переходить к Jenkins в облаке).

Просканировав через stackoverflow для ответа на этот вопрос, единственный найденный API для автоматической загрузки apk в Google Play?, ответ на это, однако, летнего возраста, и, как мы все знаем, год - это целая жизнь в разработке программного обеспечения, поэтому я надеюсь, что что-то может улучшить что-то.

У меня также есть вопрос, после публикации этих двух потоков, как долго нужно, чтобы тестеры видели их в магазине? Я слышал от 24 до 48 часов, которые рассматривают приложения, опубликованные на производство, всего за пару часов, кажется немного странным.

Ответ 1

Обновление: плагин теперь доступен как com.savillians.gradle:android-publisher:0.4 из центра maven. Добавьте его в определение buildscripts в build.gradle и примените его, как я сказал ниже.

У меня был такой же вопрос, и благодаря комментариям @edovino и образцам API Google Play я смог создать плагин gradle, который делает публикацию на любой трек, который вы пожелаете, для любого вкуса/варианта, который вы пожелаете.

Смотрите источники здесь: https://github.com/bluesliverx/gradle-android-publisher

Я работаю над публикацией этого в maven central, поэтому его можно использовать в сборке script, но пока вы можете захватить подкаталог android-publisher в репо, поместите его в корень вашего gradle создать и переименовать папку в buildSrc. Используйте следующую строку в файле build.gradle для проекта Android, который вы хотите опубликовать:

apply plugin: com.savillians.gradle.androidpublisher.AndroidPublisherPlugin

Затем вы можете установить настройки публикации с помощью блока androidPublisher в файле build.gradle.

android {
    ...
}
androidPublisher {
    applicationName = "Company-Name-Product-Name/1.0"
    packageName = "<package name>"
    serviceAccountEmail = "<service account email>"
    serviceAccountKeyFile = file('<p12 keyfile - NOT the json file>')
    track = "alpha" // default, don't need to specify
    variantName = "release" // default, don't need to specify
}

Убедитесь, что у созданной учетной записи службы есть разрешения "диспетчера релиза", загрузите файл ключа p12 и поместите его в каталог проекта. Затем запустите эту команду:

gradle androidPublish

Это отправит его в Google Play с использованием указанных вами учетных данных. Удачи и дайте мне знать, если у вас есть вопросы, так как это совершенно новое.

Ответ 2

Если вы используете Jenkins, Google Play Android Плагин для издателей позволяет автоматически загружать альфа-версии или бета-версии.

Вы также можете использовать его для "продвижения" APK от альфы, до бета-тестирования или от бета-версии до поэтапного развертывания, например.

Также включена поддержка нескольких APK и возможность загрузки (или повторного использования) файлов расширения.

Интегрируя с функциональностью учетных данных в Jenkins, плагин может безопасно получать доступ к вашим аккаунтам Google Play без необходимости проверки закрытого ключа в репозитории или аналогичном.