104 votes

Android Studio - débogage de la base de données

Android Studio signe-t-il les builds de débogage ? Si oui, où se trouve le keystore qu'il utilise pour le faire ?

178voto

user2396466 Points 496

Il se trouve au même endroit : ~/.android/debug.keystore

63voto

Fernando JS Points 1320

Si vous utilisez Windows, l'emplacement est probablement le suivant :

C:\User\YourUser\.android\debug.keystore

30voto

Max Worg Points 2824

Vous pouvez spécifier votre propre keystore de débogage si vous le souhaitez. Cette solution vous permet également de stocker vos clés en dehors du répertoire du projet et d'automatiser le processus de signature. Oui, vous pouvez aller à File -> Project Structure et d'attribuer des trousseaux de clés et des mots de passe de signature dans le fichier Signing mais cela mettra des entrées en clair dans votre fichier gradle.build, ce qui signifie que vos secrets peuvent être divulgués (en particulier dans les commits du dépôt). Avec cette solution, vous avez le contrôle de l'utilisation de votre propre keystore et la magie de l'automatisation pendant les builds de débogage et de mise en production.

1) Créez un gradle.properties (si vous n'en avez pas déjà un).

L'emplacement de ce fichier dépend de votre système d'exploitation :

   /home/<username>/.gradle/ (Linux)
   /Users/<username>/.gradle/ (Mac)
   C:\Users\<username>\.gradle (Windows)

2) Ajouter une entrée pointant vers yourprojectname.properties fichier. (exemple pour Windows)

yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties

3) Créer yourprojectname.properties à l'emplacement indiqué à l'étape 2 avec les informations suivantes :

keystore=C:\\path\\to\\keystore\\yourapps.keystore
keystore.password=your_secret_password

4) Modifiez votre gradle.build pour pointer vers le fichier yourprojectname.properties pour utiliser les variables.

if(project.hasProperty("yourprojectname.properties")
        && new File(project.property("yourprojectname.properties")).exists()) {

    Properties props = new Properties()
    props.load(new FileInputStream(file(project.property("yourprojectname.properties"))))

    android {
        signingConfigs {
            release {
                keyAlias 'release'
                keyPassword props['keystore.password']
                storeFile file(props['keystore'])
                storePassword props['keystore.password']
            }
            debug {
                keyAlias 'debug'
                keyPassword props['keystore.password']
                storeFile file(props['keystore'])
                storePassword props['keystore.password']
            }
        }
        compileSdkVersion 19
        buildToolsVersion "20.0.0"
        defaultConfig {
            applicationId "your.project.app"
            minSdkVersion 16
            targetSdkVersion 17
        }
        buildTypes {
            release {
            }
        }
    }

}

dependencies {
    ...
}

5) Profitez-en ! Maintenant, toutes vos clés seront en dehors de la racine du répertoire et vous aurez toujours les joies de l'automatisation pour chaque construction.

Si vous obtenez une erreur dans votre fichier gradle.build à propos de la variable "props", c'est parce que vous n'exécutez pas le bloc "Android {}" à l'intérieur du tout premier fichier if condition dans laquelle le props est assignée, il suffit donc de déplacer toute la section Android{ ... } dans la condition dans laquelle la variable props est assignée, puis réessayez.

J'ai reconstitué les étapes suivantes à partir des informations trouvées aquí y aquí .

15voto

Spatz Points 10227

Le chemin du fichier debug.keystore d'Android Studio dépend de la variable d'environnement ANDROID_SDK_HOME.

Si ANDROID_SDK_HOME est défini, le fichier est placé dans le sous-dossier du SDK nommé .Android .
Si elle n'est pas définie, la base de données est placée dans le chemin d'accès de l'utilisateur, dans le même sous-dossier :
- %HOMEPATH% \.android\ sur Windows
- $HOME/.Android/ sur Linux

5voto

Loren Points 265

Voici comment j'ai finalement créé le fichier ~/.Android/debug.keystore.

Tout d'abord, un peu d'histoire. J'ai acheté un nouvel ordinateur portable de voyage. J'ai installé Android Studio. J'ai cloné mon projet Android depuis le hub git. Le projet ne s'exécutait pas. J'ai finalement compris que le keystore debug.keystore n'avait pas été créé ... et je n'arrivais pas à comprendre comment Android Studio pouvait le créer.

Enfin, j'ai créé un nouveau projet vierge ... et cela a créé le keystore debug.keystore !

J'espère que cela aidera d'autres personnes qui ont ce problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X