Concepts Android (pour les développeurs Web)

Peter Conn
Peter Conn
Joyce Toh
Joyce Toh

Si vous êtes un développeur Web et que vous ne connaissez pas Android ni Google Play, voici quelques informations à connaître être conscient. Il existe déjà de nombreuses ressources et documentations à ce sujet (grâce au équipe), mais nous allons ici mettre en évidence 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 (AAB) (remarque: à partir d'août 2014) 2021, toutes les nouvelles applications devront utiliser le format Android App Bundle sur Google Play). ou APK à importer et à publier sur Google Play, vous devez signer votre application avec une clé de signature. Google Play vous propose deux options pour gérer cela:

  • Signature d'application Play (fortement recommandé): Google gère et protège la clé de signature de votre application. pour vous. Il l'utilise pour signer vos APK en vue de leur distribution. Le service Signature d'application Play utilise deux clés. L'application clé de signature. que Google gérera pour vous, ainsi que la "clé d'importation" que vous devez conserver qui sont privées. Elle vous permet de signer votre application avant de l'importer dans la Play Console. Ce vous permet de réinitialiser votre clé d'importation si elle est perdue ou compromise, contacter l'équipe d'assistance Play. Actuellement, Google Play vous permet d'importer votre application en tant qu'AAB ou APK: <ph type="x-smartling-placeholder">
      </ph>
    • Android App Bundle (AAB): quand vous importez un AAB dans la Play Console, vous déléguez la compilation et la génération des APK au Google Play Store. Lorsqu'un utilisateur télécharge et installe votre application, Google Play la distribue. en tant qu'APK signé. Par conséquent, la signature des APK devra également être effectuée Google Play. Par défaut, si vous importez votre application en tant qu'AAB dans la Play Console, nécessitent d'utiliser le service Signature d'application Play.
    • APK: avec les APK, vous avez la possibilité d'activer la signature d'application Play. Activation de l'application Play La signature est vivement recommandée, car elle renforce la sécurité de votre clé de signature. Comme indiqué auparavant, Google Play exigera bientôt l'importation de toutes les nouvelles applications au format AAB. recommandez 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é sans activer l'application Play En signant, vous êtes entièrement responsable de la clé de signature de votre application. Contrairement à la signature d'application Play, vous ne pourrez pas la réinitialiser si vous perdez la clé. Par conséquent, si vous perdez cette clé, perdent également la possibilité de mettre à jour votre application.

Lors de la configuration de bubblewrap init, lorsque vous arrivez à la section Informations sur la clé de signature (5/5), vous êtes invité à saisir l'emplacement du keystore et le nom de la clé, ou à utiliser les valeurs par défaut. La l'emplacement par défaut du keystore est le fichier android.keystore dans le répertoire de votre projet. nom de clé est android. Si Bubblewrap ne trouve pas de keystore portant ce nom de clé au niveau du il en crée un pour vous et vous invite à saisir des mots de passe. Notez les mots de passe que vous avez saisies, car vous en aurez besoin pendant le processus de compilation (bubblewrap build), où il utilisera pour signer votre application. Si vous activez le service Signature d'application Play, la clé de signature utilisée par Bubblewrap générée et utilisée pour signer votre application devient la "clé d'importation". Que vous choisissiez d'utiliser les La clé générée par Bubblewrap est utilisée comme clé de signature ou d'importation. Vous devez la protéger et la garder privée. Nous vous déconseillons de la valider pour le contrôle des versions. Au lieu de cela, limitez le nombre d’individus ayant y accéder.

Digital Asset Links est nécessaire pour déclarer la relation entre votre site Web et votre appareil Android l'application. Pour vous assurer que votre application Android générée par Bubblewrap est validée correctement et se lance en tant que une activité Web fiable (au lieu d'un onglet personnalisé Chrome), vous devrez ajouter la clé appropriée à votre fichier assetlinks.json. Ensuite, importez-la sur votre site Web à l'adresse .well-known/assetlinks.json. (par rapport à la racine). Votre fichier assetlinks.json doit se présenter comme suit:

[{
 "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 SHA256

Pour créer le fichier assetlinks.json, vous devez associer l'empreinte du certificat SHA 256 avec 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, surtout si vous observez que votre application se lance en tant qu'onglet personnalisé Chrome (avec visible dans la barre du navigateur). Ensuite, il est probable que votre fichier assetlinks.json ne comporte pas l'empreinte numérique correspondant à 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 localement. Pour en savoir plus, consultez la section Ajouter des clés ci-dessous. des informations sur la manière d'avoir les deux clés dans le fichier assetlinks.json.

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 digitales. N'hésitez donc pas à choisir la méthode la plus pratiques.

Via la Play Console

Selon que vous activez ou non le service 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électionnez l'application qui vous intéresse
  3. Dans le menu de navigation de gauche, sous Publier, accédez à Configuration -> Intégrité de l'appli.
  4. Copiez le code SHA256 de la clé appropriée:

Récupérez l&#39;empreinte du certificat SHA256 appropriée pour votre clé de signature ou d&#39;importation

  • Clé de signature: copiez l'empreinte SHA256 du certificat de clé de signature d'application. Ce correspondra à votre application si vous la téléchargez sur le Google Play Store Google Play distribue votre application signée avec la clé de signature.

  • Clé d'importation: copiez l'empreinte SHA256 du certificat de clé d'importation. Ce l'empreinte correspondra à votre application si vous l'installez en local (via ADB sur USB pour exemple). Cet APK (sur votre machine locale) a été créé par Bubblewrap et donc signé par la clé créée pour vous (lors de la configuration de init). N'oubliez pas qu'il peut s'agir de signature de votre application installée localement, qui devient en fait la "clé d'importation" une fois vous la publiez via Play.

Via keytool

keytool est une clé. de gestion des certificats. Vous pouvez utiliser keytool pour extraire l'empreinte SHA 256 associée à le fichier APK ou AAB Bubblewrap généré. Notez que cette empreinte correspond à la clé de signature locale. Si lorsque vous importez votre application sur Play et activez le service Signature d'application Play, cette clé devient la "clé d'importation".

keytool -printcert -jarfile [path to APK or AAB] | grep SHA256

Pour obtenir le fichier Digital Asset Links qui correspond à votre application, vous pouvez également utiliser l'outil Asset Links:

  1. Installez l'outil Asset Links depuis le Play Store.
  2. Sur le même appareil, téléchargez votre application depuis le Google Play Store ou installez-la en local.
  3. Ouvrez l'outil Asset Link Tool pour afficher la liste de toutes les applications installées sur votre appareil par nom de package. Filtrer la liste en fonction de l'ID d'application que vous avez choisi précédemment bubblewrap init, puis cliquez sur cette entrée.
  4. Une page contenant la signature de votre application et un lien vers des ressources numériques généré s'affichent. Cliquez sur Boutons "Copier" ou "Partager" situés au bas de l'écran pour l'exporter comme vous le souhaitez (par exemple, "Enregistrer dans Google Keep", par e-mail).

La même idée s'applique pour les clés de signature ou d'importation. Si vous avez installé votre application depuis la Google Play Store, l'outil Asset Links vous fournira l'empreinte de la clé de signature de votre application. Si vous avez installé l'application directement à partir de votre ordinateur local, l'empreinte correspond à la clé Film bulle généré.

Une fois l'importation terminée, vérifiez que vous pouvez accéder au fichier de lien d'élément dans un navigateur. Vérifiez que https://example.com/.well-known/assetlinks.json renvoie vers le fichier que vous venez d'importer.

Sites Web basés sur Jekyll

Si votre site Web est généré par Jekyll (tel que des pages GitHub), vous devez ajouter une ligne de configuration afin que le répertoire .well-known soit inclus dans le résultat. L'aide de GitHub contient plus d'informations à ce sujet. Créez un fichier nommé _config.yml à la racine de votre site (ou ajoutez-le s'il existe déjà). saisissez:

# Folders with dotfiles are ignored by default.
include: [.well-known]

Ajouter des clés

Un fichier Digital Asset Links peut contenir plusieurs applications, chacune pouvant contenir plus de une clé. Par exemple, pour ajouter une deuxième clé, il vous suffit d'utiliser la commande l'outil Asset Links pour déterminer la clé et l’ajouter en tant que deuxième entrée. Dans Chrome, le code qui analyse ce fichier JSON est assez strict. Veillez donc à ne pas ajouter accidentellement un une virgule supplémentaire à la fin de la liste.

[{
  "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:..."
    ]
  }
}]

Dépannage

Chrome enregistre la raison pour laquelle la validation de Digital Asset Links échoue. Vous pouvez consulter les journaux sur un Appareil Android avec adb logcat. Si vous développez sous Linux/Mac, vous pouvez consulter les journaux pertinents depuis un appareil connecté. par:

> adb logcat -v brief | grep -e OriginVerifier -e digital_asset_links

Par exemple, si le message Statement failure matching fingerprint. s'affiche, vous devez utiliser la méthode L'outil Asset Links pour voir la signature de votre application et vous assurer qu'elle correspond à celle indiquée dans votre assetlinks.json .