Google Play Developer API를 사용하면 앱의 새 APK를 업로드하고 다른 출시 트랙에 출시할 수 있습니다. 이렇게 하면 앱의 알파와 베타 버전을 배포할 수 있으며, 승인된 사용자가 사용할 수 있습니다. 또한 일부 앱 사용자에게 자동으로 제공되는 단계적 출시 버전을 배포할 수 있습니다. 단계적 출시 버전을 출시한 후에는 최종적으로 '프로덕션' 버전을 배포할 때까지 단계적 출시 버전 앱의 사용자 수를 점차 늘릴 수 있습니다.
APK 추가 및 수정
Edits.apks: upload 메서드를 호출하여 하나 이상의 APK를 업로드합니다.
이 메서드는 APK를 저장소 '버킷'에 업로드하며 이곳에서 APK를 '트랙'에 할당하여 사용자에게 배포할 수 있습니다. (edit이 삭제되면 edit에 업로드된 모든 APK도 삭제됩니다.)
Edits.tracks: update를 호출하여 '트랙'에 APK를 출시합니다. 다음 트랙에 APK를 출시할 수 있습니다.
"alpha"
및"beta"
와 같은 테스트 트랙앱의 알파 및 베타 버전은 알파 및 베타 테스트 그룹에 지정한 사용자에게 배포됩니다. Google Play Console을 사용하여 이러한 그룹에 사용자를 할당합니다.
내부 테스트 트랙:
"qa"
앱의 내부 버전은 Google Play Console에 구성된 대로 내부 테스트 트랙에 배포됩니다.
프로덕션 트랙:
"production"
'프로덕션' 트랙의 출시 버전은 모든 사용자에게 배포됩니다. '프로덕션' 트랙에서 스테이징 버전을 사용하면 소수의 프로덕션 사용자에게 먼저 안전하게 출시 버전을 배포한 다음 버전의 신뢰도가 높아지면 이 비율을 점차 늘릴 수 있습니다.
단순 모드 사용자는 트랙에 두 개 이상의 APK를 올리면 안 됩니다. 다중 APK 지원을 사용하는 고급 모드 사용자는 각 트랙에 APK를 업로드하지 않거나 1개 이상의 APK를 업로드할 수 있습니다.
폼 팩터 트랙의 트랙 이름
폼 팩터 트랙의 트랙 이름에는 특정 식별자가 접두어로 사용됩니다.
폼 팩터 | 접두어 |
---|---|
Android Automotive OS | automotive |
Wear OS | wear |
Android TV | tv |
Android XR | android_xr |
PC용 Google Play 게임즈 | google_play_games_pc |
지정된 폼 팩터 트랙의 트랙 이름을 컴퓨팅하는 방법
프로덕션, 공개 테스트, 내부 테스트 트랙과 같은 일반적인 트랙 유형에는 잘 알려진 트랙 이름이 있습니다.
트랙 유형 | 기본 트랙 이름 |
---|---|
프로덕션 | 프로덕션 |
공개 테스트 | 베타 |
내부 테스트 | qa |
지정된 폼 팩터 트랙의 트랙 이름은 다음과 같이 컴퓨팅할 수 있습니다.
"[prefix]:defaultTrackName"
예를 들어 Wear OS 폼 팩터에는 이름이 "wear:production"
, "wear:beta"
, "wear:qa"
인
트랙이 있습니다.
비공개 테스트 트랙은 수동으로 생성되며 맞춤 이름을
사용합니다. 따라서 이름이 $name
인 폼 팩터의 비공개 테스트 트랙의 트랙 이름은 "[prefix]:$name"
입니다.
APK 워크플로 예
이 섹션에서는 Tracks API의 일반적인 사용 방법을 설명합니다. 이 경우, 각 트랙에 새 버전의 APK를 업로드하고 단계적 출시 버전을 받을 일부 사용자를 지정한다고 가정합니다. (실제로 개발자가 모든 작업을 한 번에 실행하는 경우는 거의 없습니다. 대신, 어느 날에 베타 버전을 업데이트하고 다른 날에 스테이징 버전을 '프로덕션'에 생성하는 등의 방식일 수 있습니다.)
- Edits 워크플로에 설명된 대로 새 edit을 엽니다.
- 업로드할 APK마다 Edits.apks: upload 메서드를 호출합니다. 메서드의 요청 본문에 APK를 전달합니다. 그러면 APK가 저장소 영역에 배치되지만, 트랙에 출시되거나 배포되지 않습니다. 이 메서드는 업로드하는 APK마다 버전 코드를 반환합니다. 트랙에 APK를 출시할 때 버전 코드를 사용하여 APK를 참조합니다.
APK를 출시하려는 각 트랙에 대해 Edits.tracks: update 메서드를 호출합니다. 요청 본문에 출시하려는 버전이 포함된 Edits.tracks resource 리소스를 전달합니다. 예를 들어, 버전 코드가 88인 APK를 출시하려면 다음과 같이 합니다.
{ "releases": [{ "versionCodes": ["88"], "status": "completed" }] }
이 시점에서 사용자는 아직 APK를 사용할 수 없습니다. 다른 edit과 마찬가지로, edit이 커밋될 때까지 변경사항은 반영되지 않습니다.
Edits: commit 메서드를 호출하여 변경사항을 커밋합니다. 이 메서드를 호출한 후에는 각 트랙의 사용자에게 업데이트된 버전의 APK가 제공됩니다. (모든 edit과 마찬가지로, 변경사항이 적용되려면 몇 시간이 소요될 수 있습니다.)
단계적 출시
새 버전의 APK를 점진적으로 배포하려고 하면 '단계적 출시' 버전으로 출시를 선택할 수 있습니다. 이렇게 하면, Google Play에서 개발자가 지정한 일부 앱 사용자에게 APK를 자동으로 배포합니다. '출시' APK에 문제(예: 비정상 종료 등)가 없으면 출시 버전을 받는 사용자의 비율을 늘릴 수 있습니다. 준비가 완료되면 APK를 새 프로덕션 버전으로 배포할 수 있습니다.
이 섹션에서는 APK의 단계적 출시를 실행한 다음 APK를 프로덕션으로 승급하는 단계를 설명합니다.
Edits 워크플로에 설명된 대로 edit을 만듭니다.
Edits.apks: upload 메서드를 사용하여 edit에 새 APK를 업로드합니다.
Edits.tracks: update 메서드를 사용하여 프로덕션 트랙에서
"inProgress"
스테이징 버전을 시작합니다. 새 APK를 받아야 하는 사용자의 비율을 선택합니다. 이 시점에서 최종 사용자는 아직 APK를 사용할 수 없습니다.{ "releases": [{ "versionCodes": ["99"], "userFraction": 0.05, "status": "inProgress" }] }
Edits: commit을 호출하여 활성 edit에서 변경사항을 커밋합니다. 앞으로 몇 시간 내에 새로운 APK가 사용자에게 출시됩니다. 지정된 사용자 비율만큼 새 APK를 받게 됩니다.
단계적 출시의 성공 여부에 따라 이 버전의 APK를 사용하는 사용자의 비율을 늘리거나 APK 사용을 중지할 수 있습니다.
단계적 출시의 사용자 비율 늘리기
이 섹션에서는 이전 섹션에서 설명한 대로 단계적 출시 진행을 5%로 가정하고 출시가 잘 진행되는 경우 비율을 늘리는 방법에 관해 설명합니다.
Edits 워크플로에 설명된 대로 edit을 만듭니다.
Edits.tracks: update 메서드를 사용하여 프로덕션 트랙의
"inProgress"
스테이징 버전을 변경합니다. 다음과 같이 새 APK를 받아야 하는 사용자의 비율을 늘립니다.{ "releases": [{ "versionCodes": ["99"], "userFraction": 0.1, "status": "inProgress" }] }
Edits: commit을 호출하여 활성 edit에서 변경사항을 커밋합니다. 앞으로 몇 시간 내에 새로운 APK가 사용자에게 출시됩니다. 지정된 사용자 비율만큼 새 APK를 받게 됩니다.
단계적 출시 중지
이 섹션에서는 이전 섹션에서 설명한 대로 단계적 출시 진행을 5%로 가정하고 문제가 발견된 경우 단계적 출시를 중지하는 방법에 관해 설명합니다.
Edits 워크플로에 설명된 대로 edit을 만듭니다.
Edits.tracks: update 메서드를 사용하여 프로덕션 트랙의
"inProgress"
스테이징 버전을 변경합니다. 상태를"halted"
로 설정합니다.{ "releases": [{ "versionCodes": ["99"], "status": "halted" }] }
Edits: commit을 호출하여 활성 edit에서 변경사항을 커밋합니다. 이 버전은 더 이상 신규 사용자에게 제공되지 않습니다.
추후 중단된 버전을 재개하려면 상태를 "inProgress"
로 다시 설정하면 됩니다.
단계적 출시 완료
단계적 출시가 만족스럽고 이 버전을 100%의 사용자에게 출시하고 싶다면 출시 상태를 "completed"
로 설정하면 됩니다.
Edits 워크플로에 설명된 대로 edit을 만듭니다.
Edits.tracks: update 메서드를 사용하여 프로덕션 트랙의
"inProgress"
스테이징 버전을 변경합니다. 상태를"completed"
로 설정합니다.{ "releases": [{ "versionCodes": ["99"], "status": "completed" }] }
Edits: commit을 호출하여 활성 edit에서 변경사항을 커밋합니다. 앞으로 몇 시간 내에 새로운 APK가 사용자에게 출시됩니다. 지정된 사용자 비율만큼 새 APK를 받게 됩니다.
완료된 출시 중지
이 섹션에서는 이전 섹션에서 설명한 대로 출시가 완료된 상태로 가정하고 문제가 발견된 경우 완료된 출시를 중지하는 방법에 관해 설명합니다.
Edits 워크플로에 설명된 대로 edit을 만듭니다.
Edits.tracks: update 메서드를 사용하여 프로덕션 트랙의
"completed"
버전을 변경합니다. 상태를"halted"
로 설정합니다.{ "releases": [{ "versionCodes": ["99"], "status": "halted" }] }
Edits: commit을 호출하여 활성 edit에서 변경사항을 커밋합니다. 이 버전은 더 이상 신규 사용자 및 업그레이드가 필요한 기존 사용자에게 제공되지 않습니다.
"completed"
버전을 대체하여 제공되는 버전은 해당 트랙에서 게시되었으며 중지되지 않은 이전 "completed"
버전입니다. 즉, 해당 트랙에 이미 하나 이상의 "completed"
버전이 게시되어 있어야만 "completed"
버전을 중지할 수 있습니다.
"completed"
버전이 중지된 상태에서 GetTrack
또는 ListTracks
를 호출하면 이전에 "completed"
버전이 중지됐었던 트랙에 '제공 중인 대체 버전'이 완료된 버전으로 표시됩니다.
예를 들어 처음에 alpha
트랙이 다음과 같았습니다.
{
"track": "alpha",
"releases": [
{
"name": "2 (2.0)",
"versionCodes": [
"2"
],
"status": "completed"
}
]
}
아울러 이 섹션의 단계에 따라 "completed"
릴리스를 중지했다면, alpha
트랙에 대해 GetTrack
를 호출할 경우 다음과 같은 결과가 반환됩니다.
{
"track": "alpha",
"releases": [
{
"name": "2 (2.0)",
"versionCodes": [
"2"
],
"status": "halted"
},
{
"name": "1 (1.0)",
"versionCodes": [
"1"
],
"status": "completed"
}
]
}
추후 "completed"
버전을 재개하려면 상태를 "inProgress"
또는 "completed"
로 다시 설정하면 됩니다. "completed"
버전을 기반으로 새로운 "inProgress"
상태 버전을 만들 경우 "completed"
버전의 100%(즉, "completed"
의 상태)로만 재개할 수 있습니다.
임시 버전
임시 버전을 사용하면 자동으로 APK를 업로드하고 추후 Google Play Console을 이용하여 배포할 수 있는 출시 버전을 API를 통해 생성할 수 있습니다. 트랙에 임시 버전을 만들려면 다음 단계를 따르세요.
- Edits 워크플로에 설명된 대로 새 edit을 엽니다.
- 업로드할 APK마다 Edits.apks: upload 메서드를 호출합니다. 메서드의 요청 본문에 APK를 전달합니다. 이 메서드는 업로드하는 각 APK의 버전 코드를 반환합니다. APK를 출시 버전에 지정할 때 이 버전 코드를 사용하여 APK를 참조합니다.
출시하려는 각 트랙에서 Edits.tracks: update 메서드를 호출합니다. 요청 본문에 생성하려는 임시 버전이 포함된 Edits.tracks resource를 전달합니다. 예:
{ "releases": [{ "name": "My draft release", "versionCodes": ["88"], "status": "draft" }] }
Edits: commit 메서드를 호출하여 변경사항을 커밋합니다. 이제 Google Play Console 또는 API를 통해 임시 버전을 검사하고 출시할 수 있습니다.
출시 노트 지정
새 버전의 애플리케이션을 출시할 때 출시 버전에 출시 노트를 작성하여 사용자에게 새로운 기능을 쉽게 알릴 수 있습니다.
이렇게 하려면 Edits.tracks: update 메서드에 Edits.tracks resource를 제공할 때 "releaseNotes"
필드를 사용합니다.
{ "releases": [{ "name": "Release with notes", "versionCodes": ["88"], "status": "completed", "releaseNotes": [ {"language": "en-US", "text": "Describe what's new in this release."} ] }] }