APK-файлы и треки

API разработчика Google Play позволяет загружать новые APK-файлы для ваших приложений и выпускать их в разные версии . Это позволяет вам развертывать альфа- и бета-версии вашего приложения, которые доступны одобренным пользователям. Это также позволяет вам развернуть версию поэтапного развертывания , которая автоматически становится доступной небольшому числу пользователей приложения. После того как вы выпустили версию поэтапного развертывания, вы можете постепенно увеличивать количество пользователей, которые получают эту версию приложения, пока вы, наконец, не развернете эту версию как «рабочую».

Добавление и изменение APK

  1. Загрузите один или несколько APK-файлов, вызвав метод Edits.apks: upload .

    Этот метод загружает APK в «корзину» хранилища, где его можно назначить «дорожке» для развертывания среди пользователей. (Если изменение удалено или отменено, все APK-файлы, загруженные в него, также будут потеряны.)

  2. Выпустите APK-файлы на «треках», вызвав Edits.tracks: update . Вы можете выпустить APK-файлы на следующих треках:

    • Тестирование треков, таких как "alpha" и "beta"

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

    • Трек внутреннего тестирования: "qa"

      Внутренние версии вашего приложения развертываются на вашей внутренней тестовой версии, как это настроено в консоли Google Play.

    • Производственный трек: "production"

      Релизы на «производственной» дорожке развертываются для всех пользователей. Вы можете использовать поэтапные выпуски на «производственной» дорожке, чтобы безопасно развернуть выпуск сначала для небольшого процента рабочих пользователей, а затем постепенно увеличивать этот процент по мере роста вашей уверенности в выпуске.

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

Название трека для треков форм-фактора

Имя дорожки для дорожки форм-фактора начинается с определенного идентификатора.

Форм-фактор Префикс
Автомобильная ОС Android автомобильный
Носить ОС носить
Андроид ТВ телевизор

Как вычислить название трека для трека данного форм-фактора?

Общие типы треков, такие как производство, открытое тестирование и внутреннее тестирование, имеют хорошо известное название.

Тип трека Имя трека по умолчанию
Производство производство
Открытое тестирование бета
Внутреннее тестирование ка

Имя дорожки для дорожки данного форм-фактора может быть вычислено как: "[prefix]:defaultTrackName" . Например, форм-фактор Wear OS будет иметь треки с названиями: "wear:production" , "wear:beta" и "wear:qa" .

Треки закрытого тестирования создаются вручную и имеют произвольные названия. Таким образом, трек закрытого тестирования для форм-фактора с именем $name будет иметь имя трека "[prefix]:$name" .

Пример рабочего процесса APK

В этом разделе описывается типичный способ использования Tracks API. В этом случае мы предполагаем, что вы хотите загрузить новые версии APK для каждой версии и назначить нескольким пользователям получение поэтапной версии. (На практике разработчик вряд ли будет выполнять все эти действия за одну операцию; вместо этого вы можете обновить бета-версию в один день, создать поэтапный выпуск «производственной» версии в другой день и так далее.)

  1. Откройте новое редактирование, как описано в разделе «Рабочий процесс редактирования».
  2. Вызовите Edits.apks: метод загрузки для каждого APK, который вы хотите загрузить. Передайте APK в теле запроса метода. (При этом APK помещается в область хранения, но не высвобождается и не развертывается.) Этот метод возвращает код версии для каждого загружаемого вами APK; вы будете использовать этот код версии для ссылки на APK, когда выпустите его на трек.
  3. Вызовите метод Edits.tracks: update для каждой дорожки, для которой вы хотите выпустить APK-файлы. В теле запроса передайте ресурс Edits.tracks, содержащий версию, которую вы хотите развернуть. Например, чтобы выпустить APK с кодом версии 88:

    {
    "releases": [{
      "versionCodes": ["88"],
      "status": "completed"
    }]
    }
    

    На данный момент APK-файлы по-прежнему недоступны пользователям. Как и другие изменения, изменения не вступят в силу, пока вы их не зафиксируете.

  4. Вызовите метод Edits: commit , чтобы зафиксировать изменения. После этого пользователям каждого трека будет предоставлена ​​обновленная версия APK. (Как и в случае со всеми изменениями, вступление изменений в силу может занять несколько часов.)

Поэтапное внедрение

Если у вас есть новая версия APK-файла, которую вы хотите развернуть постепенно, вы можете выпустить ее как версию «поэтапного внедрения». Если вы это сделаете, Google Play автоматически развернет его среди указанной вами доли пользователей приложения. Если у «выпускаемого» APK нет проблем (например, сбоев и т. д.), вы можете увеличить долю пользователей, получающих эту версию; когда вы будете готовы, вы можете развернуть этот APK как новую производственную версию.

В этом разделе описаны шаги, которые необходимо выполнить для поэтапного развертывания APK, а затем его продвижения в рабочую среду:

  1. Создайте редактирование, как описано в разделе «Рабочий процесс редактирования» .

  2. Загрузите в редакцию новый APK, используя метод Edits.apks:upload .

  3. Запустите поэтапный выпуск "inProgress" на рабочей версии, используя метод Edits.tracks: update . Выберите долю пользователей, которые должны получить новый APK. На данный момент APK по-прежнему недоступен ни для одного конечного пользователя.

    {
    "releases": [{
      "versionCodes": ["99"],
      "userFraction": 0.05,
      "status": "inProgress"
    }]
    }
    

  4. Зафиксируйте изменения в активном редактировании, вызвав Edits: commit . В течение следующих нескольких часов новый APK будет доступен пользователям. Выбранная вами часть пользователей получит новый APK.

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

Увеличение доли пользователей при поэтапном внедрении

Предполагая, что у вас есть постоянное поэтапное развертывание на уровне 5 %, как описано в предыдущем разделе, в этом разделе описывается, как увеличить процент в случае, если выпуск проходит хорошо:

  1. Создайте редактирование, как описано в разделе «Рабочий процесс редактирования» .

  2. Измените промежуточный выпуск "inProgress" на рабочей версии с помощью метода Edits.tracks: update . Увеличьте долю пользователей, которые должны получить новый APK:

    {
    "releases": [{
      "versionCodes": ["99"],
      "userFraction": 0.1,
      "status": "inProgress"
    }]
    }
    

  3. Зафиксируйте изменения в активном редактировании, вызвав Edits: commit . В течение следующих нескольких часов новый APK будет доступен пользователям. Выбранная вами часть пользователей получит новый APK.

Остановка поэтапного внедрения

Предполагая, что у вас есть текущее поэтапное внедрение на уровне 5 %, как описано в предыдущем разделе, в этом разделе описывается, как остановить поэтапное внедрение в случае обнаружения проблемы:

  1. Создайте редактирование, как описано в разделе «Рабочий процесс редактирования» .

  2. Измените промежуточный выпуск "inProgress" на рабочей версии с помощью метода Edits.tracks: update . Установите статус "halted" .

    {
    "releases": [{
      "versionCodes": ["99"],
      "status": "halted"
    }]
    }
    

  3. Зафиксируйте изменения в активном редактировании, вызвав Edits: commit . Ваш выпуск больше не будет доступен новым пользователям.

Если позже вы решите возобновить остановленный выпуск, вы можете сделать это, вернув ему статус "inProgress" .

Завершение поэтапного внедрения

Если вы удовлетворены поэтапным внедрением и хотите распространить выпуск для 100 % пользователей, вы можете установить статус выпуска на "completed" :

  1. Создайте редактирование, как описано в разделе «Рабочий процесс редактирования» .

  2. Измените промежуточный выпуск "inProgress" на рабочей версии с помощью метода Edits.tracks: update . Установите статус "completed" .

    {
    "releases": [{
      "versionCodes": ["99"],
      "status": "completed"
    }]
    }
    

  3. Зафиксируйте изменения в активном редактировании, вызвав Edits: commit . В течение следующих нескольких часов новый APK будет доступен пользователям. Выбранная вами часть пользователей получит новый APK.

Черновые релизы

Черновые выпуски позволяют автоматически загружать APK-файлы и создавать выпуск через API, который впоследствии можно будет развернуть через консоль Google Play. Чтобы создать черновик релиза для трека:

  1. Откройте новое редактирование, как описано в разделе «Рабочий процесс редактирования».
  2. Вызовите Edits.apks: метод загрузки для каждого APK, который вы хотите загрузить. Передайте APK в теле запроса метода. Метод возвращает код версии для каждого загружаемого вами APK; вы будете использовать этот код версии для ссылки на APK, когда назначите его выпуску.
  3. Вызовите метод Edits.tracks: update для каждой дорожки, которую вы хотите выпустить. В теле запроса передайте ресурс Edits.tracks, содержащий черновой вариант выпуска, который вы хотите создать. Например:

    {
    "releases": [{
      "name": "My draft release",
      "versionCodes": ["88"],
      "status": "draft"
    }]
    }
    

  4. Вызовите метод Edits: commit , чтобы зафиксировать изменения. Теперь ваш черновой выпуск можно проверить и развернуть через консоль Google Play или API.

Указание примечаний к выпуску

При выпуске новой версии вашего приложения вы можете указать пользователям, что нового, указав примечания к выпуску для вашего выпуска.

Для этого используйте поле "releaseNotes" при предоставлении ресурса Edits.tracks методу Edits.tracks: update .

{
  "releases": [{
      "name": "Release with notes",
      "versionCodes": ["88"],
      "status": "completed",
      "releaseNotes": [
        {"language": "en-US", "text": "Describe what's new in this release."}
      ]
  }]
}