L'API Google Play Developer ti consente di caricare nuovi APK per le tue app e rilasciarli in diversi canali. In questo modo puoi implementare le versioni alpha e beta della tua app, che vengono rese disponibili agli utenti approvati. In questo modo, puoi anche implementare una versione di implementazione graduale, che viene resa disponibile automaticamente a un numero ridotto di utenti dell'app. Una volta rilasciata la versione di implementazione graduale, puoi aumentare gradualmente il numero di utenti che ricevono quella versione dell'app, finché non la implementi come versione "di produzione".
Aggiunta e modifica di APK
Carica uno o più APK chiamando il metodo Edits.apks: upload.
Questo metodo carica l'APK in un "bucket" di archiviazione, dove può essere assegnato a una "traccia" per il deployment agli utenti. Se la modifica viene eliminata o ignorata, anche gli APK caricati in quella modifica vengono persi.
Rilascia gli APK sui "canali" chiamando Edits.tracks: update. Puoi rilasciare APK nei seguenti canali:
Canali di test come
"alpha"
e"beta"
Le versioni alpha e beta dell'app vengono implementate per gli utenti che assegni ai gruppi di alpha e beta test. Assegni gli utenti a questi gruppi utilizzando Google Play Console.
Il canale di test interno:
"qa"
Le versioni interne della tua app vengono implementate nel canale di test interno come configurato in Google Play Console.
Il canale di produzione:
"production"
Le release nel canale "produzione" vengono implementate per tutti gli utenti. Puoi utilizzare le release in più fasi nel canale "Produzione" per eseguire il deployment della release prima su una piccola percentuale di utenti di produzione e poi aumentare gradualmente questa percentuale man mano che aumenta la tua fiducia nella release.
Gli utenti della modalità semplice non devono inserire più di un APK in nessun canale. Gli utenti in modalità avanzata che utilizzano il supporto di più APK possono caricare zero, uno o più APK in ogni traccia.
Nome della traccia per le tracce dei fattori di forma
Il nome della traccia per una traccia di fattore di forma è preceduto da un identificatore specifico.
Fattore di forma | Prefisso |
---|---|
Android Automotive OS | auto e motori |
Wear OS | abbigliamento |
Android TV | tv |
Android XR | android_xr |
Google Play Games su PC | google_play_games_pc |
Come si calcola il nome della traccia per una determinata traccia del fattore di forma?
I tipi di canale comuni come produzione, test aperto e test interno hanno un nome del canale ben noto.
Tipo di monitoraggio | Nome traccia predefinito |
---|---|
Produzione | produzione |
Test aperti | beta |
Test interno | qa |
Il nome della traccia per una determinata traccia del fattore di forma può essere calcolato come:
"[prefix]:defaultTrackName"
.
Ad esempio, il fattore di forma Wear OS avrà tracce con nome:
"wear:production"
, "wear:beta"
e "wear:qa"
.
I canali di test chiusi vengono creati manualmente e hanno nomi personalizzati. Pertanto, una traccia di test chiuso per un fattore di forma con il nome $name
avrà il nome della traccia "[prefix]:$name"
.
Esempio di workflow APK
Questa sezione descrive un modo tipico di utilizzare l'API Tracks. In questo caso, supponiamo che tu voglia caricare nuove versioni dell'APK per ogni traccia e assegnare un numero di utenti che riceveranno una versione di implementazione graduale. In pratica, è improbabile che uno sviluppatore esegua tutte queste azioni nella stessa operazione. Potrebbe, ad esempio, aggiornare la versione beta un giorno, creare una release di produzione un altro giorno e così via.
- Apri una nuova modifica, come descritto in Workflow delle modifiche
- Chiama il metodo Edits.apks: upload per ogni APK che vuoi caricare. Trasmetti l'APK nel corpo della richiesta del metodo. In questo modo l'APK viene inserito in un'area di archiviazione, ma non viene rilasciato in un canale né viene eseguito il deployment. Il metodo restituisce un codice di versione per ogni APK che carichi; utilizzerai questo codice di versione per fare riferimento all'APK quando lo rilasci in un canale.
Chiama il metodo Edits.tracks: update per ogni traccia su cui vuoi rilasciare gli APK. Nel corpo della richiesta, trasmetti una risorsa Edits.tracks contenente la release che vuoi implementare. Ad esempio, per rilasciare un APK con codice di versione 88:
{ "releases": [{ "versionCodes": ["88"], "status": "completed" }] }
A questo punto, gli APK non sono ancora disponibili per gli utenti. Come per altre modifiche, le modifiche non vengono pubblicate finché non le confermi.
Chiama il metodo Modifiche: commit per eseguire il commit delle modifiche. Una volta eseguita questa operazione, gli utenti di ogni traccia riceveranno la versione aggiornata dell'APK. Come per tutte le modifiche, potrebbero essere necessarie diverse ore prima che le modifiche diventino effettive.
Implementazioni graduali
Quando hai una nuova versione dell'APK che vuoi implementare gradualmente, puoi scegliere di rilasciarla come versione "implementazione controllata". Se lo fai, Google Play lo implementa automaticamente nella frazione desiderata di utenti dell'app che specifichi. Se l'APK "rollout" non presenta problemi (ad esempio arresti anomali e così via), puoi aumentare la frazione di utenti che ricevono quella versione; quando è tutto pronto, puoi implementare l'APK come nuova versione di produzione.
Questa sezione descrive i passaggi da seguire per eseguire un lancio controllato di un APK, quindi promuoverlo in produzione:
Crea una modifica, come descritto in Flusso di lavoro delle modifiche.
Carica un nuovo APK nella modifica utilizzando il metodo Edits.apks: upload.
Avvia un'implementazione graduale di
"inProgress"
nel canale di produzione utilizzando il metodo Edits.tracks: update. Scegli la frazione di utenti che devono ricevere il nuovo APK. A questo punto, l'APK non è ancora disponibile per gli utenti finali.{ "releases": [{ "versionCodes": ["99"], "userFraction": 0.05, "status": "inProgress" }] }
Esegui il commit delle modifiche nella modifica attiva chiamando Edits: commit. Nelle prossime ore, il nuovo APK verrà implementato per gli utenti. La frazione di utenti selezionati riceverà il nuovo APK.
A seconda dell'esito dell'implementazione graduale, potresti voler aumentare la percentuale di utenti idonei per la release o interromperla.
Aumentare la frazione di utenti per un'implementazione graduale
Supponendo di avere un'implementazione graduale in corso al 5%, come descritto nella sezione precedente, questa sezione descrive come aumentare la percentuale nel caso in cui il rilascio stia andando bene:
Crea una modifica, come descritto in Flusso di lavoro delle modifiche.
Modifica il rilascio graduale di
"inProgress"
nel canale di produzione utilizzando il metodo Edits.tracks: update. Aumenta la frazione di utenti che devono ricevere il nuovo APK:{ "releases": [{ "versionCodes": ["99"], "userFraction": 0.1, "status": "inProgress" }] }
Esegui il commit delle modifiche nella modifica attiva chiamando Edits: commit. Nelle prossime ore, il nuovo APK verrà implementato per gli utenti. La frazione di utenti selezionati riceverà il nuovo APK.
Interrompere un'implementazione graduale
Supponendo che tu abbia un lancio graduale in corso al 5%, come descritto nella sezione precedente, questa sezione descrive come interrompere il lancio graduale nel caso in cui si riscontri un problema:
Crea una modifica, come descritto in Flusso di lavoro delle modifiche.
Modifica il rilascio graduale di
"inProgress"
nel canale di produzione utilizzando il metodo Edits.tracks: update. Imposta lo stato su"halted"
.{ "releases": [{ "versionCodes": ["99"], "status": "halted" }] }
Esegui il commit delle modifiche nella modifica attiva chiamando Edits: commit. La tua release non sarà più disponibile per i nuovi utenti.
Se in un secondo momento decidi di riprendere una release interrotta, puoi farlo impostando
di nuovo lo stato su "inProgress"
.
Completamento di un'implementazione graduale
Quando l'implementazione graduale ti soddisfa e vuoi implementare la release per il 100% degli utenti, puoi impostare lo stato della release su "completed"
:
Crea una modifica, come descritto in Flusso di lavoro delle modifiche.
Modifica il rilascio graduale di
"inProgress"
nel canale di produzione utilizzando il metodo Edits.tracks: update. Imposta lo stato su"completed"
.{ "releases": [{ "versionCodes": ["99"], "status": "completed" }] }
Esegui il commit delle modifiche nella modifica attiva chiamando Edits: commit. Nelle prossime ore, il nuovo APK verrà implementato per gli utenti. La frazione di utenti selezionati riceverà il nuovo APK.
Interrompere un'implementazione completata
Supponendo che tu abbia completato l'implementazione su una traccia, come descritto nella sezione precedente, questa sezione descrive come interrompere l'implementazione completata nel caso in cui si riscontri un problema:
Crea una modifica, come descritto in Flusso di lavoro delle modifiche.
Modifica la release
"completed"
nel canale di produzione utilizzando il metodo Edits.tracks: update. Imposta lo stato su"halted"
.{ "releases": [{ "versionCodes": ["99"], "status": "halted" }] }
Esegui il commit delle modifiche nella modifica attiva chiamando Edits: commit. La release non sarà più disponibile per i nuovi utenti o per l'upgrade degli utenti esistenti.
La release che inizierà a essere pubblicata al posto della release "completed"
sarà
la release "completed"
precedente nel canale pubblicato e
non interrotto. Tieni presente che ciò significa che puoi interrompere una release "completed"
su un canale solo se sono già state pubblicate una o più release "completed"
sul canale.
Se chiami GetTrack
o ListTracks
mentre una release "completed"
è in pausa,
la "release di fallback per la pubblicazione" verrà visualizzata come release completata nella
traccia in cui la release "completed"
precedente è stata interrotta.
Ad esempio, se inizialmente avevi una traccia alpha
simile a questa:
{
"track": "alpha",
"releases": [
{
"name": "2 (2.0)",
"versionCodes": [
"2"
],
"status": "completed"
}
]
}
e hai interrotto il rilascio di "completed"
seguendo i passaggi descritti in questa sezione,
la chiamata a GetTrack
per la traccia alpha
restituirebbe un risultato simile a questo:
{
"track": "alpha",
"releases": [
{
"name": "2 (2.0)",
"versionCodes": [
"2"
],
"status": "halted"
},
{
"name": "1 (1.0)",
"versionCodes": [
"1"
],
"status": "completed"
}
]
}
Se in un secondo momento decidi di riprendere la pubblicazione di "completed"
, puoi farlo impostando di nuovo lo stato su "inProgress"
o "completed"
. Tieni presente che puoi creare una nuova
release con stato "inProgress"
sopra la release "completed"
, ma potrai
riprendere la release "completed"
solo fino al 100% (ovvero fino a uno
stato di "completed"
).
Versioni bozza
Le bozze delle release ti consentono di caricare automaticamente gli APK e creare una release tramite l'API, che può essere implementata in un secondo momento tramite Google Play Console. Per creare una bozza di release in un canale:
- Apri una nuova modifica, come descritto in Workflow delle modifiche
- Chiama il metodo Edits.apks: upload per ogni APK che vuoi caricare. Trasferisci l'APK nel corpo della richiesta del metodo. Il metodo restituisce un codice di versione per ogni APK che carichi; utilizzerai questo codice di versione per fare riferimento all'APK quando lo assegni a una release.
Chiama il metodo Edits.tracks: update per ogni traccia su cui vuoi pubblicare. Nel corpo della richiesta, trasmetti una risorsa Edits.tracks contenente la bozza di release che vuoi creare. Ad esempio:
{ "releases": [{ "name": "My draft release", "versionCodes": ["88"], "status": "draft" }] }
Chiama il metodo Modifiche: commit per eseguire il commit delle modifiche. La bozza della release può ora essere esaminata e implementata tramite Google Play Console o l'API.
Specificare le note di rilascio
Quando rilasci una nuova versione dell'applicazione, puoi mettere in evidenza le novità per gli utenti specificando le note di rilascio.
A questo scopo, utilizza il campo "releaseNotes"
quando fornisci una
risorsa Edits.tracks al
metodo Edits.tracks: update.
{ "releases": [{ "name": "Release with notes", "versionCodes": ["88"], "status": "completed", "releaseNotes": [ {"language": "en-US", "text": "Describe what's new in this release."} ] }] }