Concepts Android (pour les développeurs Web)

Peter Conn
Peter Conn
Joyce Toh
Joyce Toh

Si vous êtes un développeur Web qui débute avec Android et Google Play, vous devez connaître certains détails. De nombreuses ressources et documentations existent déjà à ce sujet (merci à l'équipe Android), mais nous allons ici mettre en avant certains concepts importants et leur lien avec Bubblewrap.

Clé d'importation ou clé de signature

Si vous prévoyez d'utiliser Bubblewrap pour générer un Android App Bundle (remarque: à partir d'août 2021, Google Play exigera que toutes les nouvelles applications utilisent le format Android App Bundle) ou un APK à importer et publier sur Google Play, vous devrez signer votre application avec une clé de signature. Google Play vous propose deux options pour gérer ce problème:

  • Signature d'application Play (recommandée): Google gère et protège la clé de signature de votre application à votre place. Il l'utilise pour signer vos APK en vue de leur distribution. La signature d'application Play utilise deux clés. La "clé de signature d'application" que Google gérera pour vous et la "clé d'importation" que vous conservez et qui doit rester privée. Vous utilisez la clé d'importation pour signer votre application afin de l'importer dans la Play Console. Ce système vous permet de réinitialiser votre clé d'importation si elle est perdue ou compromise en contactant l'équipe d'assistance Play. Actuellement, Google Play vous permet d'importer votre application en tant qu'AAB ou APK :
    • Android App Bundle (AAB): lorsque vous importez un AAB dans la Play Console, vous différez la compilation et la génération d'APK vers le Google Play Store. Lorsqu'un utilisateur télécharge et installe votre application, Google Play la distribue sous la forme d'un APK signé. Par conséquent, la signature des APK doit également être effectuée par Google Play. Par défaut, si vous importez votre application en tant qu'AAB dans la Play Console, vous devrez utiliser la signature d'application Play.
    • APK: avec les APK, vous pouvez choisir d'activer la signature d'application Play. Nous vous recommandons vivement d'activer Play App Signing, car cela renforce la sécurité de votre clé de signature. Comme indiqué précédemment, Google Play exigera bientôt que toutes les nouvelles applications soient importées au format AAB. Nous vous recommandons donc de le faire au lieu d'importer des APK.
  • Gérer votre propre clé de signature: si vous choisissez de gérer votre propre clé et de ne pas activer la signature d'application Play, vous êtes entièrement responsable de la clé de signature de votre application. Contrairement à la signature d'application Play, vous ne pouvez pas la réinitialiser si vous perdez la clé. Par conséquent, si vous perdez la clé de signature de votre application, vous ne pourrez plus la mettre à jour.

Lors de la configuration de bubblewrap init, lorsque vous arrivez à la section Informations sur la clé de signature (5/5)", vous êtes invité à saisir un emplacement de magasin de clés et un nom de clé, ou à utiliser les valeurs par défaut. L'emplacement par défaut du keystore est le fichier android.keystore dans le répertoire de votre projet, et le nom de clé par défaut est android. Si Bubblewrap ne trouve pas de keystore existant avec ce nom de clé à l'emplacement, il en crée un pour vous et vous demande également des mots de passe. Notez les mots de passe que vous avez saisis, car vous en aurez besoin lors du processus de compilation (bubblewrap build), où la clé sera utilisée pour signer votre application. Si vous activez la signature d'application Play, la clé de signature générée et utilisée par Bubblewrap pour signer votre application devient la "clé d'importation". Que vous choisissiez d'utiliser la clé générée par Bubblewrap comme clé de signature ou d'importation, vous devez la protéger et la conserver de manière privée. Nous vous déconseillons de l'ajouter au contrôle des versions. Limitez plutôt le nombre de personnes qui y ont accès.

Les liens d'éléments numériques sont nécessaires pour déclarer la relation entre votre site Web et votre application Android. Pour vous assurer que votre application Android générée par Bubblewrap est correctement validée et lancée en tant qu'activité Web fiable (plutôt qu'en tant qu'onglet personnalisé Chrome), vous devez ajouter la clé appropriée à votre fichier assetlinks.json. Importez-le ensuite sur votre site Web à l'adresse .well-known/assetlinks.json (par rapport à la racine). Votre fichier assetlinks.json doit respecter le format suivant:

[{
 "relation": ["delegate_permission/common.handle_all_urls"],
 "target": {
   "namespace": "android_app",
   "package_name": "com.your.package_name",
   "sha256_cert_fingerprints": [
     "XX:XX:XX:..."
   ]
 }
}]

Obtenir l'empreinte du certificat SHA-256

Pour créer le fichier assetlinks.json, vous avez besoin de l'empreinte du certificat SHA 256 associée à la clé de signature de votre application. Il est important de noter que les empreintes digitales associées à vos clés de signature et d'importation seront différentes. Il est important de garder cette distinction à l'esprit, en particulier si vous observez le lancement de votre application en tant qu'onglet personnalisé Chrome (avec la barre du navigateur visible). Il est alors probable que votre fichier assetlinks.json ne contienne pas l'empreinte qui correspond à la clé appropriée.

Il est utile d'inclure l'empreinte de votre certificat de signature et d'importation dans votre fichier assetlinks.json pour déboguer plus facilement votre application en local. Pour savoir comment ajouter les deux clés au fichier assetlinks.json, consultez la section Ajouter d'autres clés ci-dessous.

Il existe plusieurs façons d'obtenir l'empreinte, qui sont détaillées dans les sections suivantes. Ils devraient tous vous donner les mêmes empreintes. N'hésitez donc pas à choisir la méthode la plus pratique.

Via la Play Console

Selon que vous activez ou non la signature d'application Play, vous pouvez avoir une ou deux clés. Pour récupérer l'empreinte SHA256 appropriée pour chaque clé:

  1. Accédez à la Play Console.
  2. Sélectionner l'application qui vous intéresse
  3. Dans le menu de navigation de gauche, sous Version, accédez à Configuration -> Intégrité de l'application.
  4. Copiez le SHA-256 de la clé appropriée: