web-dev-qa-db-fra.com

Comment signer votre application à l'aide de la clé de téléchargement

J'essaie de publier mon application sur Google Playstore, et je ne peux pas comprendre comment signer l'application à l'aide de la clé de téléchargement, comme indiqué dans https://developer.Android.com/studio/publish/app -signing.html

J'utilise Android Studio, et j'ai signé l'apk utiliser Build -> générer un APK signé, et créé ma propre clé sur mon propre chemin/fichier de stockage de clés. Maintenant, pour faire la version, j'ai besoin d'utiliser la clé de téléchargement Google, ce qui m'a dérouté. Donc,

  1. où puis-je trouver ma clé de téléchargement dans la console Google Play? Sous Signature d'application de cette application, je peux voir Télécharger le certificat de MD5, SHA-1, SHA-256 et même télécharger un fichier upload.pem. Que dois-je en faire?

  2. alors exactement comment utiliser le Build -> générer un APK signé dans Android Studio pour le signer avec cette soi-disant clé de téléchargement?

Mon application utilise la connexion Google pour authentifier les utilisateurs. En ce moment, cela fonctionne si je viens d'installer mon propre apk. Mais si je le télécharge depuis la boutique Google, il ne peut pas faire l'authentification Google, pour laquelle je suppose que j'ai foiré la procédure de publication.

Pour info, j'utilise le processus "Utiliser la signature de l'application Google Play".

Veuillez aider.

22
Michael

Je pense que j'ai compris cela ...

Lorsque vous choisissez d'utiliser le processus de signature d'application Google, Google Play MODIFIE la signature de votre application téléchargée sur l'empreinte digitale du certificat SHA-1 du certificat de signature d'application (par rapport au certificat de téléchargement). Voir la figure 1 sur ce document Studio pour le flux de processus.

[Au fait, vous pouvez trouver les certificats des deux applications sur la console Google Play -> Gestion des versions -> Signature de l'application]

Cela signifie que, pour que Oauth fonctionne, vous devez créer un nouveau OAuth 2.0 justificatif d'identité (sur console.developers.google.com) qui utilise l'empreinte digitale du certificat de signature d'application (par rapport à l'empreinte digitale du certificat d'importation) avec le même package prénom.

Votre package aura désormais 2 Oauth informations d'identification, l'une pour les versions de production, l'autre pour votre développement/test. Les deux auront le même nom de package; les informations d'identification de production utiliseront l'empreinte de signature de l'application, tandis que les informations d'identification de développement/test utiliseront l'empreinte digitale Télécharger (ou fichier de clés local).

De toute évidence, vous ne connaîtrez pas l'empreinte digitale de signature de l'application jusqu'à ce que votre application soit déployée pour la première fois sur Google Play (GP l'attribue). Ainsi, les informations d'identification de production devront être créées après le téléchargement sur Google Play pour la première fois, mais avant de cliquer sur "Déployer en production".

8
RudyF

Avec le nouveau système, la clé de téléchargement est un magasin de clés simple et normal que vous pouvez créer avec Android studio. Donc, il vous suffit de signer votre apk et de l'envoyer au playstore.

Google supprimera cette clé et utilisera la clé d'application déclarée (et générée dans google play)

2
Pauland

Quel processus vous souhaitez suivre, il y a deux façons disponibles: -

  1. Gérez la clé et le magasin de clés par vous-même ou
  2. Utilisation de la signature de l'application Google (qui fournira plus tard le support pour récupérer la clé même lorsque vous la perdrez).

Parlons du premier qui est utilisé le plus souvent et le plus facilement. Pas:-

  1. Créez un fichier Keystore et enregistrez le mot de passe, l'alias et le mot de passe d'alias dans un endroit sûr.
  2. Gardez ce fichier de clés au même endroit où vous avez conservé le fichier avec les informations d'identification ci-dessus.
  3. Maintenant, allez dans build-> Generate Signed APK-> Sélectionnez le fichier de clés que vous venez de créer, fournissez toutes les informations d'identification requises telles que: - mot de passe, alias, mot de passe d'alias.
  4. Le studio Android génère le fichier APK signé pour vous et vous pouvez le télécharger sur Playstore.
  5. La prochaine fois que vous générerez à nouveau un fichier APK, vous devrez suivre uniquement les étapes 3 et 4, car votre fichier de clés va être utilisé comme vous l'avez utilisé précédemment, car vous appuyez sur une mise à jour d'application. Et lorsque vous souhaitez mettre à jour une application, l'APK doit signer avec le même magasin de clés ou vous pouvez dire le même SHA certificat.

Si vous voulez faire tout le processus par cammand, vous pouvez ajouter le buildType dans le fichier app.gradle, qui est plus efficace et plus approprié.

Pour ajouter la configuration buildType, veuillez consulter le code gradle: -

Android{
buildTypes {
        debug {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }

        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            storeFile file("path for release.keystore")
            storePassword keystore_password
            keyAlias keystore_alias
            keyPassword keystore_alias_password
        }
    }
} 

Dans la configuration ci-dessus, vous devez fournir le chemin d'accès du fichier du fichier de clés de libération dans la balise storeFile, et également fournir les informations d'identification dans storePassword, keyAlias ​​et keyPassword comme mentionné.

Après avoir ajouté la configuration ci-dessus, vous pouvez maintenant générer un apk signé par une simple commande gradlew: - ./gradlew clean assembleRelease

Si vous souhaitez utiliser la deuxième méthode La signature avec les détails de la clé de l'application Google est disponible ici si vous rencontrez un problème à n'importe quelle étape, veuillez mentionner cette étape afin que je puisse résoudre le problème.

Pour générer la clé de téléchargement, vous devez d'abord le faire: -

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

puis signez l'apk en utilisant:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keys

Vous pouvez également utiliser github lib pour automatiser l'ensemble du processus à partir de ici .

Ou vous pouvez vous référer ici pour plus de détails.

0
Avi