Android Studio - Debug-Keystore


107

Signiert Android Studio Debug-Builds? Wenn ja, wo befindet sich der dafür verwendete Keystore?


1
Es wird trotzdem signiert, da nur signierte Builds installiert werden können.
Alexander Kulyakhtin

3
Ich denke, das ist eine gültige Programmierfrage. Es bezieht sich direkt auf die Toolchain, die bei der Entwicklung von Android-Apps verwendet wird.
Austyn Mahoney


@Prachi wie kann dies ein Duplikat einer Frage sein, die mehr als 3 Jahre später gestellt wurde? Vielleicht ist es das andere, ein Duplikat davon.
Fasteque

Antworten:


179

Es befindet sich am selben Ort: ~/.android/debug.keystore


5
Ist es nicht stattdessen in ~ / .android?
Eugene Mymrin

14
keytool -list -v -keystore ~ ​​/ .android / debug.keystore
jturolla

5
Dies ist die Windows-Version des Befehls keytool: keytool -exportcert -alias androiddebugkey -keystore C: \ Benutzer \ <Benutzer> \ .android \ debug.keystore -list -v
Simon

12
Das Standardkennwort lautet "android" und der Schlüsselalias lautet "androiddebugkey".
NaXa

1
Und das Standardkennwort für androiddebugkey ist auch "android".
KibitzerCZ

63

Wenn Sie Windows verwenden, lautet der Speicherort wahrscheinlich wie folgt:

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


30

Wenn Sie möchten, können Sie Ihren eigenen Debug-Keystore angeben. Diese Lösung bietet Ihnen auch die Möglichkeit, Ihre Schlüssel außerhalb des Projektverzeichnisses zu speichern und die Automatisierung beim Signieren zu genießen. Ja, Sie können auf File -> Project Structureder SigningRegisterkarte signierende Schlüsselspeicher und Kennwörter zuweisen und diese zuweisen. Dadurch werden jedoch Klartexteinträge in Ihre gradle.build-Datei eingefügt, was bedeutet, dass Ihre Geheimnisse möglicherweise offengelegt werden (insbesondere bei Repository-Commits). Mit dieser Lösung erhalten Sie die Kontrolle über die Verwendung Ihres eigenen Keystores und die Magie der Automatisierung während Debug- und Release-Builds.

1) Erstellen Sie eine gradle.properties (falls Sie noch keine haben).

Der Speicherort für diese Datei hängt von Ihrem Betriebssystem ab:

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

2) Fügen Sie einen Eintrag hinzu, der auf die yourprojectname.propertiesDatei verweist . (Beispiel für Windows)

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

3) Erstellen Sie eine yourprojectname.propertiesDatei an dem in Schritt 2 angegebenen Speicherort mit den folgenden Informationen:

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

4) Ändern Sie Ihre gradle.buildDatei so, dass sie auf die yourprojectname.propertiesDatei zeigt, um die Variablen zu verwenden.

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) Viel Spaß! Jetzt befinden sich alle Ihre Schlüssel außerhalb des Stammverzeichnisses des Verzeichnisses, und dennoch haben Sie für jeden Build die Freude an der Automatisierung.

Wenn in Ihrer gradle.build-Datei ein Fehler bezüglich der Variablen "props" angezeigt wird, liegt dies daran, dass Sie den Block "android {}" nicht in der allerersten ifBedingung ausführen, in der die propsVariable zugewiesen wird. Verschieben Sie also einfach den gesamten android {... } Abschnitt in den Zustand, in dem die Requisitenvariable zugewiesen ist, und versuchen Sie es erneut.

Ich habe diese Schritte aus den hier und hier gefundenen Informationen zusammengesetzt .


1
Zu "2) Eintrag hinzufügen ...". Eintrag hinzufügen in wo?
VikingGlen

Ich

Vielen Dank, dies ist eine großartige Möglichkeit, Produktionskennwörter außerhalb der Quellcodeverwaltung zu halten (sie stehen also nicht allen Entwicklern zur Verfügung)!
Schein

15

Der Dateipfad von Android Studio debug.keystore hängt von der Umgebungsvariablen ANDROID_SDK_HOME ab.

Wenn ANDROID_SDK_HOME definiert ist, wird die Datei im Unterordner des SDK mit dem Namen .android abgelegt .
Wenn nicht definiert, wird der Schlüsselspeicher im Home-Pfad des Benutzers im selben Unterordner abgelegt :
- % HOMEPATH% \. Android \ unter Windows
- $ HOME / .android / unter Linux


1
Könnten Sie bitte Ihre Antwort näher erläutern und etwas mehr Beschreibung der von Ihnen bereitgestellten Lösung hinzufügen?
Abarisone

Warum denken 87 Leute, dass es in ~ / .android / debug.keystore ist, sie haben alle keine Umgebungsvariable namens "ANDROID_SDK_HOME" ???
IloveIniesta

Das war sehr hilfreich. Vielen Dank
Rahul

4

Hier ist, wie ich endlich die Datei ~ / .android / debug.keystore erstellt habe.

Zuerst einige Hintergrundinformationen. Ich habe einen neuen Reiselaptop bekommen. Installiertes Android Studio. Mein Android-Projekt vom Git Hub geklont. Das Projekt würde nicht ausgeführt. Endlich herausgefunden, dass der debug.keystore nicht erstellt wurde ... und ich konnte nicht herausfinden, wie ich Android Studio dazu bringen kann, ihn zu erstellen.

Schließlich habe ich ein neues leeres Projekt erstellt ... und das hat den debug.keystore erstellt!

Hoffe das hilft anderen, die dieses Problem haben.


1

Auf dem Mac finden Sie es hier: /Users/$username/.android


1

Wenn Sie Windows verwenden, finden Sie Folgendes: Datei -> Projektstruktur -> Facetten

Wählen Sie Ihr Android-Projekt aus und klicken Sie im Fenster "Facette 'Android'" auf TAB "Verpackung". Sie finden, was Sie wollen


2
Es gibt kein Menü wie "Facetten"
IgorGanapolsky
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.