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 .