it-swarm.com.de

Was ist das Äquivalent von Eclipse "Custom debug Keystore" im Android Studio?

Bei der Arbeit mit der Google Maps-API wurde ich verwendet, um mit einem benutzerdefinierten Debug-Schlüssel in Eclipse (das ist eigentlich mein Produktionsschlüssel) zu arbeiten.

Dank dieser Manipulation konnte ich in meinem Debug- und Release-Build denselben API-Schlüssel für Maps und die meisten Google Play-Dienste (in App-Abrechnung) verwenden.

Dies war sehr praktisch, da der Schlüssel im Manifest nicht geändert werden musste.

enter image description here

Leider fehlt mir bei der Migration zu Android Studio diese Funktion.

Irgendeine Idee, wo ich diese Option wiederfinden kann?

Vielen Dank.

38
Waza_Be

Sie definieren einen Schlüsselspeicher in Ihrer Datei build.gradle. Siehe den Abschnitt Signierkonfigurationen hier: https://developer.Android.com/studio/build/index.html

In Ihrem Fall möchten Sie den Keystore für die Debug-Variante neu definieren:

Android {
    signingConfigs {
        debug {
            storeFile file("your.keystore")
        }
    }
}

Sie sollten jedoch zwei verschiedene Keystores für Debug- und Release-Konfigurationen verwenden.

65
Siva Velusamy

Im aktuellen Android Studio 0.8.9 finden Sie dies an einem besseren Ort:

 File->Project Structure
  1. Fügen Sie auf der Registerkarte "Signieren" einen Keystore hinzu 
  2. Wählen Sie es für Ihr Debug/Release "Build Types" aus. 
  3. Stellen Sie sicher, dass der Aliasname mit Ihrem Schlüsselspeicher übereinstimmt (keytool -list -v zeigt Ihren Aliasnamen). 

Es erstellt das gradle Zeug, synchronisiert sich automatisch auf "Übernehmen" und wirkt sofort wie ein Zauber. 

25
John

Hallo Wenn Sie nicht all dieses Zeug hardcodieren wollen, gehen Sie einfach weiter

->Your project
  ->Your Module
  ->Right click on your module
   ->go to open module settings
      ->Go to Signing section
         ->Specify all the attribute here and browse your Custom debug key in Store File

Dann finden Sie unten Code, der automatisch von Android Studio in build.gradle erstellt wird

signingConfigs {
    debug {
        storeFile file('custom_debug_keystore')
        keyAlias 'androiddebugkey'
        keyPassword 'Android'
        storePassword 'Android'
    }
}

Hinweis: 

1) Bitte verwenden Sie .keystore nicht im Code, den Sie manuell für die manuelle Konfiguration verwenden 

2) Bitte geben Sie den korrekten Alias ​​und das Passwort an

17
Kirtikumar A.

Hier ist ein vollständiger Schritt für Schritt, den ich gemacht habe, um beide Schlüssel aus der Datei gradle.build in eine Datei zu verschieben, die nicht in Builds oder Repository-Commits enthalten ist.

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.properties-Datei verweist. (Beispiel für Windows)

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

3) Erstellen Sie eine yourprojectname.properties-Datei 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.build-Datei so, dass sie auf yourprojectname.properties-Datei verweist, 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 immer noch die Freuden der Automatisierung für jeden Build. 

Wenn Sie in der Datei gradle.build eine Fehlermeldung über die Variable "props" erhalten, liegt dies daran, dass Sie den Block "Android {}" nicht innerhalb der ersten if-Bedingung ausführen, in der die Variable props zugewiesen wird. Verschieben Sie also das gesamte Android {. ..} Abschnitt in die Bedingung, in der die Variable props zugewiesen wird, dann versuchen Sie es erneut.

Ich habe diese Schritte aus den Informationen zusammengestellt, die here und here gefunden wurden.

8
Max Worg

Sie können den debug.keystore fürIhr Projekt unabhängig voneinander angeben.
Zwei Schritte mit folgenden Bildern: (Android Studio v0.5.2 )
Schritt 1 : Klicken Sie auf die Schaltfläche von project structure.Step 1

Schritt 2 : Fügen Sie den debug.keystore wie folgt hinzu .enter image description here

5
Autobots

Der Keystore muss sich in build.gradle befinden. Beispiel:

Android{
    signingConfigs {
        release {
            storeFile file('/path/platform.keystore')
            storePassword 'Android'
            keyAlias 'androiddebugkey'
            keyPassword 'Android'
       }
    }
    ...
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }

Eclipse hat nicht wirklich nach einem Passwort oder Alias ​​gefragt, aber gradle. Ich glaube, Eclipse hat einfach angenommen, dass es ein Passwort war: Android und alias: androiddebugkey. Dies trifft möglicherweise nicht auf Ihren Keystore zu, aber ich würde es auf Gradle so versuchen.

Wenn Sie das Kennwort kennen, sich aber des Alias ​​nicht sicher sind , können Sie auch den folgenden Befehl ausführen, um den Alias ​​abzurufen: keytool -list -keystore /path/platform.keystoreLink

4
Ricardo Freitas

Wie bereits erwähnt, können Sie die Gradle-Datei verwenden, um sie anzugeben. Ich fand es auch sehr praktisch, den Home-Ordner als Teil des Pfads zu verwenden. Es macht es einfacher, in einem Team zu arbeiten. Hier ist mein Vorschlag:

Android {
    signingConfigs {
        debug {
            storeFile file(System.properties['user.home']+"/.Android/custom.debug.keystore")
        }
    }
}
0
Showpath