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 |
지정된 폼 팩터 트랙의 트랙 이름을 컴퓨팅하는 방법
프로덕션, 공개 테스트, 내부 테스트 트랙과 같은 일반적인 트랙 유형에는 잘 알려진 트랙 이름이 있습니다.
트랙 유형 | 기본 트랙 이름 |
---|---|
프로덕션 | 프로덕션 |
공개 테스트 | 베타 |
내부 테스트 | 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를 받게 됩니다.
임시 버전
임시 버전을 사용하면 자동으로 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."} ] }] }