APK e tracce

L'API Google Play Developer ti consente di caricare nuovi APK per le tue app e di rilasciarli in diversi canali di release. In questo modo puoi eseguire il deployment delle versioni alpha e beta della tua app, rese disponibili agli utenti approvati. In questo modo puoi anche eseguire il deployment di una versione dell'implementazione graduale, che viene resa automaticamente disponibile per un numero limitato di utenti dell'app. Dopo aver rilasciato la versione con implementazione graduale, puoi aumentare gradualmente il numero di utenti che ricevono quella versione dell'app, fino a quando non esegui il deployment di quella versione come versione "produzione".

Aggiunta e modifica di APK

  1. Carica uno o più APK chiamando il metodo Edits.apks: upload.

    Questo metodo carica l'APK in un "bucket di archiviazione", in cui può essere assegnato a un "traccia" per eseguirne il deployment agli utenti. Se la modifica viene eliminata o eliminata, vengono persi anche tutti gli eventuali APK caricati nella modifica.

  2. Rilascia gli APK sulle "tracce" chiamando Edits.tracks: update. Puoi rilasciare gli APK nei seguenti canali:

    • Canali di test come "alpha" e "beta"

      Il deployment delle versioni alpha e beta dell'app viene eseguito per gli utenti assegnati ai gruppi di alpha e beta test. Puoi assegnare gli utenti a questi gruppi utilizzando Google Play Console.

    • Canale di test interno: "qa"

      Viene eseguito il deployment delle versioni interne della tua app nel canale di test interno configurato in Google Play Console.

    • Canale di produzione: "production"

      Il deployment delle release nel canale "produzione" viene eseguito per tutti gli utenti. Puoi utilizzare le release graduali sul canale "produzione" per eseguire il deployment della release in modo sicuro prima per una piccola percentuale di utenti di produzione e poi aumentare gradualmente questa percentuale man mano che aumenta l'affidabilità della release.

    Gli utenti in modalità semplice non devono inserire più di un APK in ogni canale. Gli utenti in modalità avanzata che utilizzano il supporto di più APK possono caricare zero, uno o più APK per ogni canale.

Nome della traccia per le tracce dei fattori di forma

Il nome della traccia di un fattore di forma è preceduto da un identificatore specifico.

Fattore di forma Prefisso
Sistema operativo Android Automotive auto e motori
Wear OS wear
Android TV tv

Come calcolare il nome della traccia per un determinato canale del fattore di forma?

I tipi di canali comuni come canale di produzione, test aperto e test interno hanno un nome ben noto.

Tipo di monitoraggio Nome traccia predefinito
Produzione produzione
Test aperti beta
Test interni qa

Il nome della traccia per una determinata traccia di fattori di forma può essere calcolato come: "[prefix]:defaultTrackName". Ad esempio, il fattore di forma Wear OS avrà canali con nome: "wear:production", "wear:beta" e "wear:qa".

I canali di test chiusi vengono creati manualmente e hanno nomi personalizzati. Pertanto, un canale di test chiuso per un fattore di forma denominato $name avrà il nome del canale "[prefix]:$name".

Esempio di flusso di lavoro APK

In questa sezione viene descritto un modo tipico di utilizzo dell'API Track. In questo caso, supponiamo che tu voglia caricare nuove versioni dell'APK per ogni canale e assegnare una serie di utenti che ricevano una versione con implementazione graduale. In pratica, è improbabile che uno sviluppatore esegua tutte queste azioni nella stessa operazione; potresti invece aggiornare la versione beta un giorno, creare una release graduale per la fase di "produzione" un altro giorno e così via.

  1. Apri una nuova modifica, come descritto nel Flusso di lavoro delle modifiche
  2. Chiama il metodo Edits.apks: upload per ogni APK da caricare. Trasmetti l'APK nel corpo della richiesta del metodo. 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 caricato; utilizzerai questo codice di versione per fare riferimento all'APK quando lo rilasci in un canale.
  3. Chiama il metodo Edits.tracks: update per ogni canale per cui vuoi rilasciare APK. Nel corpo della richiesta, passa una risorsa Edits.tracks contenente la release che vuoi implementare. Ad esempio, per rilasciare un APK con codice versione 88:

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

    Al momento gli APK non sono ancora disponibili per gli utenti. Come per le altre modifiche, le modifiche vengono pubblicate solo dopo averle confermate.

  4. Chiama il metodo Edits: commit per eseguire il commit delle modifiche. Una volta eseguita questa operazione, agli utenti di ogni canale verrà fornita la versione aggiornata dell'APK. Come per tutte le modifiche, l'applicazione delle modifiche può richiedere diverse ore.

Implementazioni graduali

Se hai una nuova versione dell'APK di cui vuoi eseguire il deployment gradualmente, puoi scegliere di rilasciarla come versione di "implementazione graduale". In questo caso, Google Play ne esegue il deployment automaticamente nella frazione desiderata di utenti dell'app da te specificata. Se l'APK "implementazione" non presenta problemi (ad esempio arresti anomali e così via), potresti aumentare la frazione di utenti che ricevono quella versione; quando è tutto pronto, puoi eseguire il deployment dell'APK come nuova versione di produzione.

In questa sezione vengono descritti i passaggi da seguire per eseguire un'implementazione graduale di un APK e poi promuoverlo alla versione di produzione:

  1. Crea una modifica, come descritto nel flusso di lavoro delle modifiche.

  2. Carica un nuovo APK nella modifica, utilizzando il metodo Edits.apks: upload.

  3. Avvia una release graduale "inProgress" nel canale di produzione utilizzando il metodo Edits.tracks: update. Scegli la frazione di utenti che dovrebbero ricevere il nuovo APK. Al momento l'APK non è ancora disponibile per nessun utente finale.

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

  4. Esegui il commit delle modifiche nella modifica attiva chiamando Modifiche: commit. Nelle prossime ore, il nuovo APK verrà implementato per gli utenti. La frazione di utenti selezionati riceverà il nuovo APK.

A seconda del successo dell'implementazione graduale, puoi aumentare la percentuale di utenti idonei per la release o interromperla.

Aumento della frazione di utenti per un'implementazione graduale

Supponendo che tu abbia un'implementazione graduale in corso al 5%, come descritto nella sezione precedente, questa sezione descrive come aumentare la percentuale nel caso in cui la release stia andando bene:

  1. Crea una modifica, come descritto nel flusso di lavoro delle modifiche.

  2. Modifica la release graduale "inProgress" nel canale di produzione utilizzando il metodo Edits.tracks: update. Aumenta la frazione di utenti che dovrebbero ricevere il nuovo APK:

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

  3. Esegui il commit delle modifiche nella modifica attiva chiamando Modifiche: 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'implementazione graduale in corso al 5%, come descritto nella sezione precedente, questa sezione descrive come interrompere l'implementazione graduale se rilevi un problema:

  1. Crea una modifica, come descritto nel flusso di lavoro delle modifiche.

  2. Modifica la release graduale "inProgress" nel canale di produzione utilizzando il metodo Edits.tracks: update. Imposta lo stato su "halted".

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

  3. Esegui il commit delle modifiche nella modifica attiva chiamando Modifiche: 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 riportando lo stato su "inProgress".

Completamento di un'implementazione graduale

Se l'implementazione graduale ti soddisfa e vuoi implementare la release per il 100% degli utenti, puoi impostare lo stato della release su "completed":

  1. Crea una modifica, come descritto nel flusso di lavoro delle modifiche.

  2. Modifica la release graduale "inProgress" nel canale di produzione utilizzando il metodo Edits.tracks: update. Imposta lo stato su "completed".

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

  3. Esegui il commit delle modifiche nella modifica attiva chiamando Modifiche: commit. Nelle prossime ore, il nuovo APK verrà implementato per gli utenti. La frazione di utenti selezionati riceverà il nuovo APK.

Release bozza

Le bozze di release ti consentono di caricare automaticamente APK e creare una release tramite l'API, di cui può essere eseguito il deployment in un secondo momento tramite Google Play Console. Per creare una versione bozza in un canale:

  1. Apri una nuova modifica, come descritto nel Flusso di lavoro delle modifiche
  2. Chiama il metodo Edits.apks: upload per ogni APK da caricare. Trasmetti l'APK nel corpo della richiesta del metodo. Il metodo restituisce un codice di versione per ogni APK caricato; lo utilizzerai per fare riferimento all'APK quando lo assegnerai a una release.
  3. Chiama il metodo Edits.tracks: update per ogni traccia in cui vuoi pubblicare il brano. Nel corpo della richiesta, passa una risorsa Edits.tracks contenente la bozza della release che vuoi creare. Ad esempio:

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

  4. Chiama il metodo Edits: commit per eseguire il commit delle modifiche. Ora puoi esaminare e implementare la versione bozza tramite Google Play Console o l'API.

Specifica delle note di rilascio

Quando rilasci una nuova versione dell'applicazione, puoi evidenziare le novità per gli utenti specificando le note di rilascio relative alla release.

A tale 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."}
      ]
  }]
}