Se sei uno sviluppatore web e non hai mai utilizzato Android e Google Play, dovresti trovare alcuni dettagli di cui tenere conto. Esistono già molte risorse e documentazione a riguardo (grazie al di formazione) ma di seguito tratteremo alcuni concetti importanti e la loro relazione con il bubble wrap.
Chiave di caricamento e chiave di firma
Se prevedi di utilizzare Bubblewrap per generare un Android App Bundle (AAB) (nota: a partire da agosto) 2021, Google Play richiederà che tutte le nuove app utilizzino il formato Android App Bundle) o un APK per caricarlo e pubblicarlo su Google Play, dovrai firmare la tua app con una chiave di firma. Google Google Play offre due opzioni per gestire questa situazione:
- Firma dell'app di Google Play (vivamente consigliata): Google gestirà e proteggerà la chiave di firma della tua app.
per te. che utilizza per firmare gli APK da distribuire. La firma dell'app di Google Play utilizza due chiavi. L'app "
chiave di firma" che Google gestirà per te e la "chiave di caricamento" che conservi e che devi mantenere
privato per te. Puoi usare la chiave di caricamento per firmare l'app per il caricamento su Play Console. Questo
consente di reimpostare la chiave di caricamento in caso di smarrimento o compromissione.
contattando il team di assistenza di Google Play. Attualmente, Google Play
ti consente di caricare la tua app come AAB o APK:
- Android App Bundle (AAB): quando carichi un AAB in Play Console, rinviare la creazione e la generazione di APK al Google Play Store. Quando un utente scarica e installa la tua app, Google Play la distribuisce sotto forma di APK firmato. Pertanto, anche la firma degli APK dovrà essere effettuata su Google Play. Pertanto, per impostazione predefinita, se carichi la tua app come AAB in Play Console, richiedono l'uso della firma dell'app di Google Play.
- APK: con gli APK, puoi scegliere di attivare la firma dell'app di Google Play. Attivazione dell'app Play in corso... La firma è vivamente consigliata perché aumenta la sicurezza della chiave di firma. Come indicato in precedenza, a breve Google Play richiederà di caricare tutte le nuove app in formato AAB, quindi consigliamo di farlo invece di caricare gli APK.
- Gestisci la tua chiave di firma: se scegli di gestire la tua chiave e di non attivare l'app Google Play. Firma, sei completamente responsabile della chiave di firma della tua app. A differenza della firma dell'app di Google Play, non è possibile reimpostarla se perdi la chiave. Di conseguenza, se perdi la chiave di firma dell'app non potranno più aggiornare l'app.
Durante la configurazione di bubblewrap init
, quando arrivi alla sezione "Informazioni sulla chiave di firma (5/5)",
ti verrà chiesto di inserire i valori "Posizione archivio chiavi" e "Nome chiave" oppure utilizzare i valori predefiniti. La
La posizione predefinita dell'archivio chiavi è il file android.keystore
nella directory del progetto e la posizione predefinita
il nome della chiave è android
. Se Bubblewrap non trova un archivio chiavi esistente con quel nome di chiave nella
automaticamente, ne creerà una per te e ti chiederà anche le password. Prendi nota delle password
inserito perché ti serviranno durante il processo di compilazione (bubblewrap build
), durante il quale verrà utilizzato
per firmare l'app. Se attivi la firma dell'app di Google Play, viene utilizzata la chiave di firma
generata e utilizzata per firmare la tua app diventa la "chiave di caricamento". Sia che tu scelga di utilizzare
La chiave generata dal wrapping è stata generata come chiave di firma o caricamento. Devi proteggerla e mantenerla privata.
Sconsigliamo di eseguirne il commit nel controllo della versione. Limita invece il numero di individui con
per accedervi.
Digital Asset Links
I link agli asset digitali sono necessari per dichiarare la relazione tra il tuo sito web e il tuo account Android
dell'app. Per assicurarti che l'app per Android generata da Bubblewrap sia verificata e venga lanciata come
Attività web attendibile (anziché una scheda personalizzata di Chrome), dovrai aggiungere la chiave appropriata per
il tuo file assetlinks.json
. Quindi caricalo sul tuo sito web all'indirizzo .well-known/assetlinks.json
(relativa alla radice). Il file assetlinks.json
deve avere questo formato:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
}]
Recuperare l'impronta digitale del certificato SHA256
Per creare il file assetlinks.json
, devi avere l'impronta digitale del certificato SHA 256 associata
con la chiave di firma dell'app. È importante notare che le impronte associate
le chiavi di firma e di caricamento saranno diverse. È importante tenere
questa distinzione, soprattutto se noti che la tua app viene avviata come scheda personalizzata di Chrome (con
la barra del browser visibile). È probabile che il file assetlinks.json
non contenga
corrispondente alla chiave appropriata.
È utile disporre dell'impronta digitale del certificato di firma e di caricamento nel file assetlinks.json
per eseguire più facilmente il debug locale dell'app. Per ulteriori informazioni, consulta la sezione Aggiungere altre chiavi di seguito.
informazioni su come inserire entrambe le chiavi nel file assetlinks.json
.
Esistono due modi diversi per recuperare l'impronta, descritti in dettaglio nelle sezioni successive. Tutti dovrebbero darti le stesse impronte, quindi scegli pure il metodo più adatto pratico.
Tramite Play Console
A seconda che attivi o meno la firma dell'app di Google Play, potresti avere uno o due token. Per recuperare l'impronta SHA256 appropriata per ogni chiave:
- Vai a Play Console.
- Seleziona l'app che ti interessa
- Nel menu di navigazione a sinistra, in Release, vai a Configurazione -> Integrità dell'app.
- Copia il codice SHA256 per la chiave appropriata:
Chiave di firma: copia l'impronta SHA256 nel campo "Certificato chiave di firma dell'app". Questo l'impronta corrisponderà alla tua app se la scarichi dal Google Play Store, Google Play distribuisce la tua app firmata con la chiave di firma.
Chiave di caricamento: copia l'impronta SHA256 in "Upload key certificate" (Certificato della chiave di caricamento). Questo l'impronta digitale corrisponderà all'app se la installi localmente (tramite ADB tramite USB per esempio). L'APK (sul tuo computer locale) è stato creato da Bubblewrap, pertanto è stato firmato da anche la chiave che ha creato per te (durante la configurazione di
init
). Ricorda che potrebbe essere per l'app installata in locale, che però diventa in realtà la "chiave di caricamento" una volta pubblichi l'app tramite Google Play.
Via keytool
keytool è una chiave di gestione dei certificati. Puoi usare keytool per estrarre l'impronta SHA 256 associata l'APK o il Bubblewrap AAB generato. Tieni presente che questa fingerprint è per la chiave di firma locale e se Se carichi l'app su Google Play e attivi la firma dell'app di Google Play, questa chiave diventa la "chiave di caricamento".
keytool -printcert -jarfile [path to APK or AAB] | grep SHA256
Tramite lo strumento Asset Link
Un altro modo per recuperare il file Digital Asset Links corretto per la tua app è utilizzare lo strumento Asset Link:
- Installa lo strumento Asset Link dal Play Store.
- Sullo stesso dispositivo, scarica la tua app dal Google Play Store o installala localmente.
- Apri l'app Asset Link Tool e ti verrà fornito un elenco di tutte le applicazioni installate sul tuo
dispositivo in base al nome del pacchetto. Filtra l'elenco in base all'ID applicazione scelto in precedenza durante
bubblewrap init
e fai clic sulla voce. - Vedrai una pagina con la firma della tua app e un Digital Asset Link generato. Fai clic sul Copia o condividi i pulsanti in basso per esportarlo come preferisci (ad es. salvando in Google Keep, inviala per email a te stesso).
Vale la stessa cosa di prima per le chiavi di firma o di caricamento. Se hai installato l'app da Google Play Store, lo strumento Asset Link ti fornirà l'impronta per la chiave di firma dell'app. Se hai installato l'app direttamente dal computer locale, l'impronta è per la chiave Bubble wrap generato.
Assicurarsi che il file dei link agli asset sia accessibile
Dopo averlo caricato, assicurati di poter accedere al file del link agli asset in un browser.
Verifica che https://example.com/.well-known/assetlinks.json
sia stato risolto nel file che hai appena caricato.
Siti web basati su Jekyll
Se il tuo sito web è generato da Jekyll (ad esempio Pagine GitHub), dovrai aggiungere una riga di
in modo che la directory .well-known
sia inclusa nell'output.
La guida di GitHub contiene ulteriori informazioni su questo argomento.
Crea un file denominato _config.yml
nella directory principale del tuo sito (o aggiungilo se esiste già) e
inserisci:
# Folders with dotfiles are ignored by default.
include: [.well-known]
Aggiunta di altre chiavi
Un file Digital Asset Link può contenere più di un'app e, per ogni app, può contenere più di una chiave. Ad esempio, per aggiungere una seconda chiave è sufficiente utilizzare il metodo Strumento Link asset per determinare la chiave e aggiungerla come seconda voce. Il codice in Chrome che analizza questo JSON è abbastanza rigoroso, quindi assicurati di non aggiungere accidentalmente un una virgola aggiuntiva alla fine dell'elenco.
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
},{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
}]
Risoluzione dei problemi
Chrome registra il motivo per cui la verifica di Digital Asset Links non va a buon fine e puoi visualizzare i log su un
Dispositivo Android con adb logcat
.
Se stai sviluppando su Linux/Mac, puoi visualizzare i log pertinenti da un dispositivo connesso
con:
> adb logcat -v brief | grep -e OriginVerifier -e digital_asset_links
Ad esempio, se vedi il messaggio Statement failure matching fingerprint.
, devi utilizzare la classe
Lo strumento Link asset per vedere la firma della tua app e assicurarti che corrisponda a quella indicata nel tuo assetlinks.json
.