Как загрузить APK из Jenkins/Hudson в Play Store? - программирование
Подтвердить что ты не робот

Как загрузить APK из Jenkins/Hudson в Play Store?

Я реализовал непрерывный интеграционный конвейер, используя Jenkins, но в качестве последнего шага я хочу, чтобы Jenkins развернул/выгрузил подписанный файл APK в Google Play Store и AndroidPit. Я искал плагины Дженкинса/Хадсона, но нашел только два: один для Аппалузы и один для Зубиума.

У меня есть рабочая учетная запись разработчика как в Google Play, так и на AndroidPit, и вы можете вручную загрузить APK, который производит Jenkins. Но мой вопрос: Кто-нибудь знает способ научить Jenkins (например, через оболочку script?) загрузить APK в указанные магазины приложений?

4b9b3361

Ответ 2

Я могу говорить только в Google Play Store. Есть способ, но будьте осторожны, это не красиво, вам нужно закодировать свое решение. Я сейчас пишу диссертацию на тему "Бакалавриат" для решения этой проблемы - "Непрерывная доставка для приложений для Android". Мое решение - мое, это означает, что я не претендую на то, чтобы иметь идеальное решение, но могу сказать, что это довольно эффективный прототип.

Я узнал следующее:

  • Первое решение - это нет. Google предлагает Play Store API, но ему не хватает возможности загружать файлы. Похоже, что они уже подумывали о создании такого API, но он только предлагает управление биллингами In-App

  • Второе решение - использовать библиотеку Apache HttpComponents, которая позволяет вам реализовать собственный клиент для консоли разработчика Google Play, но HttpClient отсутствует JavaScript-интерпретатор... Несколько способов реализовать или добавить один. Но, конечно, не самый простой способ.

  • Третьим решением, над которым я работаю, является использование Selenium Рамки автоматизации веб-браузера. Поэтому в основном я создаю PageObjects из этих страниц и диалогов в Play Маркете. После этого вы можете создать несколько Factory для поддержки "исправлений" управления этими объектами PageObjects.

Используя их, у вас есть два варианта, насколько я могу видеть, например WebDriver Objects, который использует "невидимый" браузерный процесс, такой как FF или Chrome, а другой - ChromeDriver, который использует видимый процесс браузера для выполнения действий пользователя. И не забывайте иметь обработчики исключений, которые сканируют веб-страницу на наличие ошибок во время использования.

Есть много подводных камней из-за возможных изменений в дизайне от Google, что позволяет вашему программному обеспечению сломаться. Но есть некоторые способы справиться с этим. =) И создайте XML, содержащий всю полезную информацию о приложении, которая пригодится, когда переходите к следующему шагу.

Вы можете создать плагин Maven. Это можно загрузить на сервер непрерывной интеграции. Надеюсь, я немного помогу.

Ответ 3

Я считаю, что он не включен в API PlayStore в настоящее время, чтобы снизить нагрузку на систему и избежать злоупотреблений.

Я считаю, что мы увидим это в плагине gradle и в IDE в будущем. Пока мы ждем, когда Google решит открыть API, вот решение, которое является таким порогом, что я просто должен был предложить его:

Если у вас есть GUI, используйте автоматизацию графического интерфейса для последнего шага.

Ответ 4

Поскольку Google Play выпустил API загрузки, был добавлен плагин:

https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=73533143

Я еще не пробовал, но похоже, именно то, что мы искали.

Существуют и другие плагины, которые утверждают, что делают то же самое (спасибо @mdt)

Ответ 5

Плагин Google Play Android Publisher для Jenkins - хороший. Однако он не поддерживает загрузку описаний и скриншотов (по крайней мере пока).

Я нашел достойный плагин Gradle, называемый Gradle Play Publisher. Он поддерживает загрузку apk, обновление метаданных и загрузку скриншотов. И для установки требуется всего несколько шагов.