Was sind die Schritte zum Erstellen eines Keystores für Android (in einer Eclipse-Umgebung)? Ich muss Google Maps in meiner App verwenden und weiß nicht, welche Schritte ich verpasst habe. Bitte teilen Sie mir die genauen Schritte mit (ich habe sie in den Handbüchern nicht verstanden).
Um die Frage im Titel zu beantworten, erstellen Sie einen Keystore mit dem Keytool-Dienstprogramm Java, das mit jeder Standard-JDK-Distribution geliefert wird und sich unter %Java_HOME%\bin
befindet. Unter Windows ist dies normalerweise C:\Program Files\Java\jre7\bin
.
Öffnen Sie unter Windows ein Befehlsfenster, wechseln Sie in dieses Verzeichnis und geben Sie einen Befehl wie diesen ein
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Sie werden von Keytool aufgefordert, Kennwörter für den Keystore, die Felder Distinguished Name und dann das Kennwort für Ihren Schlüssel einzugeben. Anschließend wird der Schlüsselspeicher als Datei mit dem Namen my-release-key.keystore in dem Verzeichnis erstellt, in dem Sie sich befinden. Der Schlüsselspeicher und der Schlüssel sind durch die von Ihnen eingegebenen Kennwörter geschützt. Der Schlüsselspeicher enthält einen einzelnen Schlüssel, der 10000 Tage gültig ist. Der Alias ist ein Name, den Sie später verwenden, um beim Signieren Ihrer Anwendung auf diesen Schlüsselspeicher zuzugreifen.
Weitere Informationen zu Keytool finden Sie in der Dokumentation unter: http://docs.Oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
weitere Informationen zum Signieren von Android Apps finden Sie hier: http://developer.Android.com/tools/publishing/app-signing.html
Gehen Sie folgendermaßen vor, um Ihre App im Freigabemodus in Android Studio zu signieren:
1- Klicken Sie in der Menüleiste auf Erstellen> Signierte APK generieren.
2-Klicken Sie im Fenster Signiertes APK generieren Wizard auf Neu erstellen, um einen neuen Schlüsselspeicher zu erstellen. Wenn Sie bereits einen Keystore haben, fahren Sie mit Schritt 4 fort.
3- Geben Sie im Fenster New Key Store (Neuer Schlüsselspeicher) die erforderlichen Informationen ein (siehe Abbildung). Ihr Schlüssel sollte mindestens 25 Jahre gültig sein, damit Sie während der gesamten Lebensdauer Ihrer App App-Updates mit demselben Schlüssel signieren können.
4- Wählen Sie im Fenster Signierte APK generieren Wizard einen Schlüsselspeicher und einen privaten Schlüssel aus und geben Sie die Kennwörter für beide ein. Klicken Sie dann auf Weiter.
5- Wählen Sie im nächsten Fenster ein Ziel für das signierte APK aus und klicken Sie auf Fertig stellen.
http://developer.Android.com/tools/publishing/app-signing.html
Ich war verrückt danach, wie man einen .keystore mit einem einzeiligen Befehl in der Shell erzeugt, damit ich ihn von einer anderen Anwendung ausführen kann. Das ist der Weg:
echo y | keytool -genkeypair -dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" -alias business -keypass kpi135 -keystore /working/Android.keystore -storepass ab987c -validity 20000
dname ist eine eindeutige Kennung für die Anwendung im .keystore
Alias Kennung der App als einzelne Entität im .keystore (es kann viele geben)
.ks
)Es hat sehr gut funktioniert, es verlangt nichts anderes in der Konsole, erstellt nur die Datei. Weitere Informationen finden Sie unter keytool - Schlüssel- und Zertifikatverwaltungstool .
Erstellen Sie eine Keystore-Datei über die Befehlszeile:
Öffnen Sie die Befehlszeile:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved
// (if you want to store keystore file at C:/ open command line with RUN AS ADMINISTRATOR)
C:\Windows\system32> keytool -genkey -v -keystore [your keystore file path]{C:/index.keystore} -alias [your_alias_name]{index} -keyalg RSA -keysize 2048 -validity 10000[in days]
Enter> Fordert zur Eingabe eines Passworts auf> Passwort eingeben (es wird unsichtbar)
Enter keystore password:
Re-enter new password:
Enter> Es wird nach Ihrem Detail gefragt.
What is your first and last name?
[Unknown]: {AB} // [Your Name / Name of Signer]
What is the name of your organizational unit?
[Unknown]: {Self} // [Your Unit Name]
What is the name of your organization?
[Unknown]: {Self} // [Your Organization Name]
What is the name of your City or Locality?
[Unknown]: {INDORE} // [Your City Name]
What is the name of your State or Province?
[Unknown]: {MP} //[Your State]
What is the two-letter country code for this unit?
[Unknown]: 91
Enter> Enter Y
Is CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91 correct?
[no]: Y
Enter> Passwort erneut eingeben.
Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days
for: CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91
Enter key password for <index> (RETURN if same as keystore password):
Re-enter new password:
[Speichern von C: /index.keystore]
Exportieren Sie Ihr Android -Paket mit Ihrer erstellten Keystore-Datei nach .apk
Klicken Sie mit der rechten Maustaste auf das Paket, das Sie exportieren möchten, und wählen Sie Exportieren
Wählen Sie Exportieren Android Anwendung> Weiter
Nächster
Wählen Sie Vorhandenen Keystore verwenden> .keystore-Datei durchsuchen> Kennwort eingeben> Weiter
Keystore [.keystore/.jks]
im Studio erstellen ...
Klicken Sie auf Erstellen (ALT + B) > Signierte APK generieren ...
Klicken Sie auf Neu erstellen .. (ALT + C)
Schlüsselspeicherpfad durchsuchen (UMSCHALT + EINGABETASTE)> Pfad auswählen> Name eingeben> OK
Füllen Sie die Details zu Ihrer .jks/keystore
-Datei aus
Nächster
Deine Datei
Geben Sie das Studio-Master-Passwort ein (Sie können es ZURÜCKSETZEN, wenn Sie es nicht wissen.) > OK
Wählen Sie * Zielordner *> Build-Typ
release : for publish on app store
debug : for debugging your application
Klicken Sie auf Fertig stellen
Getan !!!
Dieses Tutorial:
http://techdroid.kbeanie.com/2010/02/sign-your-Android-applications-for.html
war sehr hilfreich für mich, als ich zum ersten Mal einen Keystore erstellen musste. Es ist einfach, aber die Anweisungen auf developer.Android.com sind etwas zu kurz.
Ich war mir nicht sicher, wo und unter welchem Namen ich die Keystore -Datei speichern sollte.
Ich denke, es spielt keine Rolle, wo Sie es ablegen. Achten Sie nur darauf, es sicher aufzubewahren und eine Reihe von Backups aufzubewahren. Ich habe es einfach in mein App-Verzeichnis gelegt
Nennen Sie die Datei "something.keystore", in der etwas beliebig sein kann. Ich habe app_name.keystore verwendet, wobei app_name der Name meiner App war .
Der nächste Teil war der Name des Alias. Wieder scheint es keine Rolle zu spielen, also habe ich einfach wieder den app_name verwendet. Behalten Sie die zuvor verwendeten Passwörter bei. Füllen Sie die restlichen Felder aus und Sie sind fertig.
Ich folgte dieser Anleitung , um den Debug-Keystore zu erstellen.
Der Befehl lautet:
keytool -genkeypair -alias androiddebugkey -keypass Android -keystore debug.keystore -storepass Android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
Verwenden Sie diesen Befehl, um debug.keystore zu erstellen
keytool -genkey -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Android Debug,O=Android,C=US"
Als erstes sollten Sie wissen, ob Sie sich im Debug- oder Release-Modus befinden. Von der Entwickler-Site "Es gibt zwei Erstellungsmodi: Debug-Modus und Release-Modus. Sie verwenden den Debug-Modus, wenn Sie Ihre Anwendung entwickeln und testen. Sie verwenden den Release-Modus, wenn Sie eine Release-Version Ihrer Anwendung erstellen möchten, die Sie direkt verteilen können für Nutzer oder zum Veröffentlichen auf einem Anwendungsmarktplatz wie Google Play. "
Wenn Sie sich im Debug-Modus befinden, gehen Sie wie folgt vor ...
EIN. Öffnen Sie das Terminal und geben Sie Folgendes ein:
keytool -exportcert -alias androiddebugkey -keystore path_to_debug_or_production_keystore -list -v
Hinweis: Bei Eclipse befindet sich der Debug-Keystore normalerweise unter ~/.Android/debug.keystore ...
B. Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie einfach "Android" ein ...
C. Wenn Sie sich im Freigabemodus befinden, befolgen Sie die Anweisungen auf ...
http://developer.Android.com/tools/publishing/app-signing.html <- Dieser Link erklärt so ziemlich alles, was Sie wissen müssen.
Sie können Ihren Keystore erstellen, indem Sie eine signierte APK exportieren. Wenn Sie versuchen, ein signiertes APK zu exportieren/zu erstellen, werden Sie nach einem Schlüsselspeicher gefragt.
Sie können Ihren vorhandenen Schlüsselspeicher auswählen oder einfach einen neuen erstellen, indem Sie auf Neuen Schlüsselspeicher erstellen klicken
Hier ein Link, der sehr nützlich und ausführlich erklärt, wie Sie Ihren Keystore erstellen und eine signierte APK generieren
Dieser Link erklärt, wie es mit Android Studio gemacht wird, aber wenn ich mich recht erinnere, ist es bei Eclipse ziemlich ähnlich
ACHTUNG
Bewahren Sie den Schlüsselspeicher nach dem Generieren an einem sicheren Ort auf, da Sie ihn zum Wiederherstellen eines neuen signierten APK benötigen.
Ich würde gerne einen automatischen Weg mit nur gradle vorschlagen
** Definieren Sie auch mindestens einen zusätzlichen Parameter für den Keystore im letzten Befehl, z. country '-dname', 'c=RU'
**
apply plugin: 'com.Android.application'
// define here sign properties
def sPassword = 'storePassword_here'
def kAlias = 'keyAlias_here'
def kPassword = 'keyPassword_here'
Android {
...
signingConfigs {
release {
storeFile file("keystore/release.jks")
storePassword sPassword
keyAlias kAlias
keyPassword kPassword
}
}
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
shrinkResources true
minifyEnabled true
useProguard true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'proguard-rules.pro'
}
}
...
}
...
task generateKeystore() {
exec {
workingDir projectDir
commandLine 'mkdir', '-p', 'keystore'
}
exec {
workingDir projectDir
commandLine 'rm', '-f', 'keystore/release.jks'
}
exec {
workingDir projectDir
commandLine 'keytool', '-genkey', '-noprompt', '-keystore', 'keystore/release.jks',
'-alias', kAlias, '-storepass', sPassword, '-keypass', kPassword, '-dname', 'c=RU',
'-keyalg', 'RSA', '-keysize', '2048', '-validity', '10000'
}
}
project.afterEvaluate {
preBuild.dependsOn generateKeystore
}
Dadurch wird beim Synchronisieren und Erstellen des Projekts ein Keystore erstellt
> Task :app:generateKeystore UP-TO-DATE
> Task :app:preBuild UP-TO-DATE