Pour utiliser ce service, vous devez être titulaire d'un compte ou disposer, en tant qu'utilisateur, de l'autorisation Mettre les applications à disposition de tous les utilisateurs, exclure des appareils et utiliser la signature d'application Play. Vous devez également accepter les Conditions d'utilisation du service Signature d'application Play.
Fonctionnement
Lorsque vous utilisez le service Signature d'application Play, vos clés sont stockées sur la même infrastructure sécurisée que celle que Google utilise pour ses propres clés. Les clés sont protégées par le service de gestion des clés Google. Pour en savoir plus sur l'infrastructure de Google, lisez le Livre blanc sur la sécurité avec Google Cloud.
Les applications Android sont signées à l'aide d'une clé privée. Pour garantir la fiabilité des mises à jour d'applications, chaque clé privée est associée à un certificat public que les appareils et services utilisent pour vérifier que ces mises à jour ont la même source. Les appareils n'acceptent les mises à jour que lorsque leur signature correspond à celle de l'application installée. Ce processus est plus sûr lorsque vous confiez la gestion de votre clé de signature d'application à Google.
Remarque : Pour les applications créées avant août 2021, vous pouvez encore importer un APK et gérer vos propres clés au lieu d'utiliser le service Signature d'application Play et de procéder à la publication avec un Android App Bundle. Toutefois, si vous perdez votre keystore ou si sa sécurité est compromise, vous ne pourrez pas mettre à jour votre application sans en publier une nouvelle avec un nouveau nom de package. Pour ces applications, Play vous recommande d'utiliser le service Signature d'application Play et de passer aux app bundles.
Descriptions des clés, des artefacts et des outilsTerme | Description |
---|---|
Clé de signature d'application |
Une clé de signature d'application est utilisée par Google Play pour signer les APK envoyés sur l'appareil d'un utilisateur. Lorsque vous utilisez le service Signature d'application Play, vous pouvez soit importer une clé de signature d'application existante, soit demander à Google d'en générer une pour vous. Cette clé doit rester secrète, mais vous êtes libre de partager le certificat public de votre application avec d'autres personnes. |
Clé d'importation |
Une clé d'importation vous permet de signer votre app bundle avant de l'importer sur Google Play. Elle doit rester secrète, mais vous êtes libre de partager le certificat public de votre application avec d'autres personnes. Pour des raisons de sécurité, nous vous conseillons de choisir des clés de signature d'application et d'importation différentes. Il existe deux manières de générer une clé d'importation :
|
Certificat (.der ou .pem ) |
Un certificat contient une clé publique et des informations d'identification supplémentaires sur le propriétaire de la clé. Le certificat de clé publique permet à quiconque de vérifier qui a signé l'app bundle ou l'APK. Vous pouvez le partager librement, car il ne contient pas votre clé privée. Pour enregistrer vos clés auprès des fournisseurs d'API, vous pouvez télécharger le certificat public associé à votre clé de signature d'application et à votre clé d'importation depuis la page Signature d'application Play (Tester et publier > Configuration > Signature d'application) dans la Play Console. Un certificat de clé publique peut être partagé avec n'importe qui. Il n'inclut pas votre clé privée. |
Empreinte du certificat |
L'empreinte du certificat est une représentation courte et unique d'un certificat, souvent requise par les fournisseurs d'API en même temps que le nom du package afin de permettre à une application d'utiliser leurs services. Les empreintes MD5, SHA-1 et SHA-256 des certificats d'importation et de signature d'application sont disponibles sur la page Signature d'application Play (Tester et publier > Configuration > Signature d'application) dans la Play Console. D'autres empreintes peuvent également être converties en téléchargeant le certificat original (.der ) sur la même page. |
Keystore Java (.jks ou .keystore ) |
Le keystore est un référentiel de certificats de sécurité et de clés privées. |
Outil Play Encrypt Private Key (PEPK, chiffrement Play de clé privée) |
Cet outil permet d'exporter des clés privées depuis un keystore Java et de les chiffrer en vue de leur transfert dans Google Play. Lorsque vous fournissez la clé de signature d'application à Google, sélectionnez l'option permettant d'exporter et d'importer votre clé (et son certificat public, si nécessaire), puis suivez les instructions pour télécharger et utiliser l'outil. Vous pouvez également, si vous le souhaitez, télécharger, examiner et utiliser le code Open Source de l'outil PEPK. |
Voici comment procéder :
- Signez votre app bundle, puis importez-le dans la Play Console.
- Google génère des APK optimisés à partir de votre app bundle et les signe avec la clé de signature d'application.
- Google utilise apksigner pour ajouter deux identifiants de source au fichier manifeste de votre application (
com.android.stamp.source
etcom.android.stamp.type
) et signer ensuite les APK avec votre clé de signature d'application. Ces identifiants permettent de tracer les APK jusqu'à la personne qui les a signés. - Google fournit aux utilisateurs des APK signés.
Configurer et gérer le service Signature d'application Play
Si votre application n'utilise pas encore la signature d'application Play, suivez les instructions ci-dessous.
Étape 1 : Créez une clé d'importation
- Suivez ces instructions pour créer une clé d'importation.
- Signez votre app bundle avec la clé d'importation.
Étape 2 : Préparez votre release
- Suivez les instructions pour préparer et déployer votre release.
- Une fois que vous avez sélectionné un canal de publication, l'état du service Signature d'application Play pour votre application est affiché dans la section "Intégrité de l'appli".
- Pour continuer avec une clé de signature d'application générée par Google, importez votre app bundle. Vous pouvez également sélectionner Modifier la clé de signature d'application pour accéder aux options suivantes :
- Utiliser une clé de signature d'application générée par Google : plus de 90 % des nouvelles applications utilisent des clés de signature d'application générées par Google. Ce type de clé vous protège en cas de perte ou de piratage (la clé n'est pas téléchargeable). Si vous choisissez cette option, vous pouvez télécharger des APK de distribution à partir de l'explorateur d'app bundle et signés avec la clé générée par Google pour d'autres canaux de distribution, ou utiliser pour eux une autre clé.
- Utiliser une autre clé de signature d'application : si vous choisissez cette clé, vous pouvez utiliser la même clé qu'une autre application dans votre compte de développeur ou conserver une copie locale de cette clé pour plus de flexibilité. Par exemple, vous avez peut-être déjà choisi une clé, car votre application est préinstallée sur certains appareils. Avoir une copie de la clé en dehors des serveurs de Google augmente le risque de piratage (votre copie locale peut être compromise). Vous disposez des options suivantes pour utiliser une autre clé :
- Utiliser la même clé de signature d'application qu'une autre application de ce compte de développeur
- Exporter et importer une clé à partir d'un keystore Java
- Exporter et importer une clé (sans keystore Java)
- Désactiver la Signature d'application Play (choisissez cette option uniquement si vous envisagez de mettre à niveau votre clé de signature d'application pour vous inscrire au service Signature d'application Play).
- Suivez les instructions restantes pour préparer et déployer votre release.
Remarque : Vous devez accepter les conditions d'utilisation et activer la signature d'application pour continuer.
Étape 3 : Enregistrez votre clé de signature d'application auprès des fournisseurs d'API
Si votre application utilise des API, vous devez généralement enregistrer votre clé de signature d'application auprès de ces fournisseurs pour l'authentifier à l'aide de l'empreinte du certificat. Pour trouver le certificat, procédez comme suit :
- Ouvrez la Play Console, puis accédez à la page Signature d'application Play (Tester et publier
> Configuration > Signature d'application).
- Conseil : Vous pouvez également accéder à cette page via la page Intégrité de l'appli (Tester et publier > Intégrité de l'appli), qui contient des services de signature et liés à l'intégrité vous aidant à proposer l'expérience utilisateur que vous souhaitez pour vos applications et vos jeux.
- Faites défiler la page jusqu'à la section "Certificat de la clé de signature d'application" et copiez les empreintes (MD5, SHA-1 et SHA-256) de votre certificat de signature d'application.
- Si le fournisseur d'API requiert un autre type d'empreinte, vous pouvez également télécharger le certificat original au format
.der
et le convertir à l'aide des outils imposés par ce fournisseur d'API.
- Si le fournisseur d'API requiert un autre type d'empreinte, vous pouvez également télécharger le certificat original au format
Lorsque vous utilisez une clé générée par Google, Google génère automatiquement une clé cryptographique RSA forte de 4 096 bits. Si vous choisissez d'importer votre propre clé de signature d'application, il doit s'agir d'une clé RSA d'au moins 2 048 bits.
Étape 1 : Configurez la signature d'application Play
- Ouvrez la Play Console, puis accédez à la page Signature d'application Play (Tester et publier
> Configuration > Signature d'application).
- Conseil : Vous pouvez également accéder à cette page via la page Intégrité de l'appli (Tester et publier > Intégrité de l'appli), qui contient des services de signature et liés à l'intégrité vous aidant à proposer l'expérience utilisateur que vous souhaitez pour vos applications et vos jeux.
- Si vous ne l'avez pas déjà fait, lisez les conditions d'utilisation du service Signature d'application Play, puis sélectionnez Accepter.
Étape 2 : Envoyez une copie de votre clé d'origine à Google et créez une clé d'importation
- Trouvez la clé de signature d'application d'origine.
- Ouvrez la Play Console, puis accédez à la page Signature d'application Play (Tester et publier > Configuration > Signature d'application).
- Sélectionnez l'option d'exportation et d'importation qui convient le mieux à votre processus de publication, puis importez une clé de signature d'application existante.
Étape 3 : Créez une clé d'importation (facultatif et recommandé)
- Créez une clé d'importation, puis importez le certificat dans Google Play.
- Vous pouvez également continuer d'utiliser la clé de signature d'application comme clé d'importation.
- Copiez les empreintes (MD5, SHA-1 et SHA-256) de votre certificat de signature d'applications.
- À des fins de test, vous devrez peut-être enregistrer le certificat de votre clé d'importation auprès des fournisseurs d'API à l'aide de son empreinte et de la clé de signature d'application.
Étape 4 : Signez la mise à jour de votre application avec la clé d'importation
Lorsque vous publiez des mises à jour pour votre application, vous devez les signer avec votre clé d'importation.
- Si vous n'avez pas généré de nouvelle clé d'importation : continuez à utiliser votre clé de signature d'application d'origine pour signer les app bundles avant de les importer dans Google Play. Si vous la perdez, vous pouvez générer une nouvelle clé d'importation et l'enregistrer auprès de Google pour continuer à mettre à jour votre application.
- Si vous avez généré une nouvelle clé d'importation : utilisez cette nouvelle clé d'importation pour signer les app bundles avant de les importer dans Google Play. Google utilise la clé d'importation pour valider votre identité. Si vous la perdez, vous pouvez contacter l'équipe d'assistance pour la réinitialiser.
Vous pouvez effectuer cette opération si vous ne parvenez pas à partager votre clé existante. Avant de mettre à niveau votre clé de signature d'application pour vous inscrire, notez que :
- Cette option nécessite une double version.
- Vous devrez importer un app bundle et un APK signé avec votre ancienne clé dans chaque version. Google Play utilisera vos app bundles pour générer des APK signés avec la nouvelle clé pour les appareils équipés d'Android R* (niveau d'API 30) ou version ultérieure. Vos anciens APK seront utilisés pour les versions d'Android plus anciennes (jusqu'au niveau d'API 29).
* Si votre application utilise sharedUserId
, nous vous recommandons d'appliquer la mise à niveau de clé pour les installations et les mises à niveau sur les appareils équipés d'Android T (niveau d'API 33) ou version ultérieure. Pour le configurer, veuillez définir une version minimale précise du SDK dans la configuration du pack.
Étape 1 : Importez votre nouvelle clé, puis générez et importez une preuve de rotation
Pour que la nouvelle clé soit approuvée sur les appareils Android, vous devez importer une nouvelle clé de signature à partir d'un dépôt, puis générer et importer une preuve de rotation :
- Ouvrez la Play Console, puis accédez à la page Signature d'application Play (Tester et publier
> Configuration > Signature d'application).
- Conseil : Vous pouvez également accéder à cette page via la page Intégrité de l'appli (Tester et publier > Intégrité de l'appli), qui contient des services de signature et liés à l'intégrité vous aidant à proposer l'expérience utilisateur que vous souhaitez pour vos applications et vos jeux.
- Sélectionnez l'onglet Signature d'application.
- Cliquez sur Afficher les options avancées, puis sélectionnez Utiliser une nouvelle clé de signature d'appli (nécessite l'existence de deux versions simultanées).
- Utilisez la même clé de signature d'application qu'une autre application de votre compte de développeur, ou importez une nouvelle clé de signature d'application à partir d'Android Studio, d'un keystore Java ou d'un autre dépôt.
- Téléchargez et exécutez l'outil PEPK en suivant les instructions à l'écran.
- Lorsque votre fichier ZIP est prêt, cliquez sur Importer le fichier ZIP généré, puis importez-le dans la Play Console.
- À côté de "5. Autorisez la nouvelle clé à être jugée fiable sur les appareils Android en important une preuve de rotation, cliquez sur Afficher les instructions.
- Téléchargez APKSigner et générez une preuve de rotation en exécutant la commande suivante :
$ apksigner rotate --out /path/to/new/file --old-signer --ks old-signer-jks --set-rollback true --new-signer --ks new-signer-jks --set-rollback true
- Cliquez sur Importer un fichier de preuve de rotation généré, puis importez la preuve de rotation générée à l'étape 8.
- Cliquez sur Enregistrer.
Créer une clé d'importation et mettre à jour les keystores
Pour plus de sécurité, il est recommandé de signer votre application avec une nouvelle clé d'importation plutôt que d'utiliser votre clé de signature d'application.
Vous pouvez créer une clé d'importation lorsque vous activez le service Signature d'application Play ou par la suite depuis la page Signature d'application Play (Tester et publier > Configuration > Signature d'application).
Voici comment créer une clé d'importation :
- Suivez les instructions sur le site pour les développeurs Android. Stockez votre clé en lieu sûr.
- Exportez le certificat de cette clé d'importation au format PEM. Remplacez les arguments soulignés suivants :
$ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
-
Pendant le processus de publication, lorsque vous y êtes invité, importez le certificat pour l'enregistrer auprès de Google.
Lorsque vous utilisez une clé d'importation :
- Votre clé d'importation est uniquement enregistrée auprès de Google pour authentifier l'identité du créateur de l'application.
- Votre signature est supprimée de tous les fichiers APK importés avant leur envoi aux utilisateurs.
- Cette clé doit être une clé RSA de 2 048 bits ou plus.
Une fois que vous avez créé votre clé d'importation, voici quelques emplacements à vérifier et à mettre à jour :
- Ordinateurs locaux
- Serveur sur site verrouillé (LCA variables)
- Ordinateur cloud (LCA variables)
- Services dédiés de gestion des secrets
- Dépôts (Git)
Mettre à niveau votre clé de signature d'application
Dans certains cas, vous pouvez demander la mise à niveau d'une clé de signature d'application.
Voici deux raisons pour lesquelles vous devez demander une mise à niveau de la clé de signature d'application :
- Vous avez besoin d'une clé avec un chiffrement renforcé.
- Votre clé de signature d'application a été piratée.
Important : Les mises à niveau de clé ne sont compatibles qu'avec les applications utilisant des app bundles.
Avant de demander une mise à niveau de la clé dans la Play Console, lisez la section Éléments importants à prendre en compte avant de demander une mise à niveau de la clé ci-dessous. Vous pouvez ensuite développer les autres sections ci-dessous pour en savoir plus sur les demandes de mise à niveau de clés.
Éléments importants à prendre en compte avant de demander une mise à niveau de la cléAvant de demander une mise à niveau de la clé, il est important de comprendre les modifications que vous devrez apporter une fois la mise à niveau terminée.
- Si vous utilisez la même clé de signature d'application pour partager des données et/ou du code entre plusieurs applications, vous devez mettre à jour vos applications afin qu'elles reconnaissent à la fois les nouveaux certificats de clé de signature d'application et les anciens. Sur les appareils équipés d'Android S (niveau d'API 32) ou versions antérieures, seul l'ancien certificat de clé de signature d'application est reconnu par la plate-forme Android à des fins de partage de code et de données.
- Si votre application utilise des API, veillez à enregistrer les certificats de votre nouvelle clé de signature d'application et de l'ancienne auprès des fournisseurs d'API avant de publier une mise à jour afin que les API continuent de fonctionner. Les certificats sont disponibles sur la page Signature d'application Play (Tester et publier > Configuration > Signature d'application) dans la Play Console.
- Si certains de vos utilisateurs installent des mises à jour via le partage peer-to-peer, ils ne peuvent installer que des mises à jour signées avec la clé de la version de votre application déjà installée. S'ils ne parviennent pas à mettre à jour leur application parce qu'ils en possèdent une version signée avec une clé différente, ils ont la possibilité de désinstaller et de réinstaller l'application pour obtenir la mise à jour.
La clé de signature d'une application peut être mise à niveau une fois par an pour toutes les installations sur Android N (niveau d'API 24) et versions ultérieures.
Si votre demande de mise à niveau aboutit, votre nouvelle clé permettra de signer toutes les installations et les mises à jour d'applications. Sur les appareils équipés d'Android T (niveau d'API 33) et versions ultérieures, la plate-forme Android impose l'utilisation de la clé mise à niveau. Sur les appareils équipés d'Android S (niveau d'API 32) ou versions antérieures, la plate-forme Android n'impose pas l'utilisation de cette clé mise à niveau et reconnaît toujours l'ancienne comme clé de signature de l'application. Cela inclut également toutes les fonctionnalités de la plate-forme Android (par exemple, le partage d'autorisations personnalisées) qui s'appuient sur la clé de signature de l'application. Sur les appareils équipés d'Android N (niveau d'API 24) à Android S (niveau d'API 32), Google Play Protect vérifie que les mises à jour d'applications sont signées avec votre clé mise à niveau (si l'utilisateur n'a pas désactivé cette vérification). Cela offre une validation supplémentaire, car la plate-forme Android n'impose pas l'utilisation de la clé mise à niveau sur les appareils équipés d'Android S (niveau d'API 32) ou versions antérieures.
- Ouvrez la Play Console, puis accédez à la page Signature d'application Play (Tester et publier
> Configuration > Signature d'application).
- Conseil : Vous pouvez également accéder à cette page via la page Intégrité de l'appli (Tester et publier > Intégrité de l'appli), qui contient des services de signature et liés à l'intégrité vous aidant à proposer l'expérience utilisateur que vous souhaitez pour vos applications et vos jeux.
- Dans la fiche "Mettre à niveau votre clé de signature d'application", sélectionnez Demander la mise à niveau de votre clé.
- Sélectionnez une option afin de mettre à niveau votre clé de signature d'application pour toutes les installations sur Android N et versions ultérieures.
- Demandez à Google de générer une nouvelle clé de signature d'application (recommandé) ou importez-en une.
- Après avoir mis à niveau votre clé de signature d'application : si vous utilisiez la même clé pour la signature d'application et l'importation, vous pouvez continuer à vous servir de votre ancienne clé de signature d'application comme clé d'importation, ou générer une nouvelle clé d'importation.
- Sélectionnez un motif expliquant pourquoi vous demandez la mise à niveau de la clé de signature d'application.
- Si nécessaire, enregistrez votre nouvelle clé de signature d'application auprès des fournisseurs d'API.
Conseil : Si vous distribuez votre application via plusieurs canaux de distribution et que vous voulez optimiser la compatibilité de ses mises à jour pour vos utilisateurs, vous devez mettre à niveau votre clé sur chaque canal de distribution. Pour assurer la compatibilité avec la mise à niveau de clé de Google Play, utilisez l'outil Apksigner fourni avec Android SDK Build Tools (version 33.0.1 et ultérieures) :
$ apksigner sign --in ${INPUT_APK}
--out ${OUTPUT_APK}
--ks ${ORIGINAL_KEYSTORE}
--ks-key-alias ${ORIGINAL_KEY_ALIAS}
--next-signer --ks ${UPGRADED_KEYSTORE}
--ks-key-alias ${UPGRADED_KEY_ALIAS}
--lineage ${LINEAGE}
En savoir plus sur le fonctionnement des mises à jour d'applications
Bonnes pratiques
- Si vous distribuez également votre application en dehors de Google Play (ou si vous prévoyez de le faire plus tard) et que vous souhaitez utiliser la même clé de signature, deux possibilités s'offrent à vous :
- Laisser Google générer la clé (recommandé), puis télécharger un APK universel signé à partir de l'explorateur d'app bundle afin de le distribuer en dehors de Google Play.
- Générer la clé de signature d'application que vous voulez utiliser pour toutes les plates-formes de téléchargement d'applications, puis en transférer une copie à Google lorsque vous configurez le service Signature d'application Play.
- Pour protéger votre compte, activez la validation en deux étapes pour tous les comptes ayant accès à la Play Console.
- Après avoir publié un app bundle dans un canal de publication, vous pouvez consulter l'explorateur d'app bundle pour accéder aux APK installables que Google génère à partir de votre app bundle. Vous pouvez :
- copier et partager un lien de partage interne d'application qui vous permet de tester, d'un seul geste, ce que Google Play installera à partir de votre app bundle sur différents appareils ;
- télécharger un APK universel signé (cet APK unique est signé avec la clé de signature d'application que détient Google et peut être installé sur n'importe quel appareil compatible avec votre application) ;
- télécharger une archive ZIP contenant tous les APK d'un appareil spécifique. Ces APK sont signés avec la clé de signature d'application que détient Google. Vous pouvez également les installer dans l'archive ZIP sur un appareil à l'aide de la commande
adb install-multiple *.apk
.
- Pour plus de sécurité, générez une clé d'importation différente de votre clé de signature d'application.
- Si vous utilisez une API Google, vous pouvez enregistrer les certificats de la clé d'importation et de la clé de signature d'application dans la console Google Cloud pour votre application.
- Si vous utilisez Android App Links, veillez à mettre à jour les clés dans le fichier JSON Digital Asset Links correspondant sur votre site Web.
Clé d'importation perdue ou compromise ?
Si vous avez perdu votre clé d'importation privée ou si sa sécurité est compromise, vous pouvez en créer une autre. Le titulaire de votre compte de développeur peut alors réinitialiser la clé dans la Play Console.
Une fois que notre équipe d'assistance a enregistré la nouvelle clé d'importation, le titulaire du compte et les administrateurs généraux reçoivent dans leur boîte de réception un message et un e-mail contenant des informations complémentaires. Vous pouvez ensuite mettre à jour vos keystores et enregistrer votre clé auprès des fournisseurs d'API.
Le titulaire du compte peut également annuler la demande de réinitialisation dans la Play Console.
Important : Le fait de réinitialiser votre clé d'importation n'affectera pas la clé de signature d'application que Google Play utilise pour signer de nouveau les fichiers APK avant de les fournir aux utilisateurs.
APK Signature Scheme v4
Les appareils Android 11 et versions ultérieures sont compatibles avec le nouvel APK Signature Scheme v4. Le service Signature d'application Play utilise la signature v4 pour les applications éligibles afin qu'elles puissent accéder aux fonctionnalités de distribution optimisées disponibles sur les appareils plus récents. Aucune action de la part du développeur n'est requise, et aucun impact sur l'utilisateur lié à la signature v4 n'est attendu.
Contenu associé
- En savoir plus sur les services d'intégrité et de signature dans la Play Console
- En savoir plus sur les services de signature et liés à l'intégrité sur le site Développeurs Android