Jakie są kroki, aby utworzyć magazyn kluczy dla Androida?
Muszę korzystać z map Google w mojej aplikacji i nie wiem, jakie kroki przegapiłem. Podaj mi szczegółowe kroki (nie zrozumiałem tego z przewodników).
Jakie są kroki, aby utworzyć magazyn kluczy dla Androida?
Muszę korzystać z map Google w mojej aplikacji i nie wiem, jakie kroki przegapiłem. Podaj mi szczegółowe kroki (nie zrozumiałem tego z przewodników).
Odpowiedzi:
Aby odpowiedzieć na pytanie w tytule, należy utworzyć magazyn kluczy za pomocą narzędzia Java Keytool, które jest dostarczane z dowolną standardową dystrybucją JDK i można je znaleźć pod adresem %JAVA_HOME%\bin
. W systemie Windows zwykle tak jest C:\Program Files\Java\jre7\bin
.
Tak więc w systemie Windows otwórz okno poleceń, przejdź do tego katalogu i wprowadź takie polecenie
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Keytool monituje o podanie haseł do magazynu kluczy, podanie pól Nazwa wyróżniająca, a następnie hasła do klucza. Następnie generuje magazyn kluczy jako plik o nazwie my-release-key.keystore w katalogu, w którym się znajdujesz. Magazyn kluczy i klucz są chronione wprowadzonymi hasłami. Magazyn kluczy zawiera jeden klucz, ważny przez 10000 dni. Alias to nazwa, której będziesz używać później, aby odwoływać się do tego magazynu kluczy podczas podpisywania aplikacji.
Więcej informacji na temat Keytool znajduje się w dokumentacji pod adresem : http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
i więcej informacji na temat podpisywania aplikacji na Androida znajdziesz tutaj: http://developer.android.com/tools/publishing/app-signing.html
keytool -genkey -v -keystore debug.keystore -storepass android -alias android -keypass android -keyalg RSA -keysize 2048 -validity 10000
. Następnie, aby wygenerować SHA-1, który musisz umieścić w Firebase, wykonaj:keytool -list -v -keystore debug.keystore -alias android -storepass android -keypass android
Aby podpisać aplikację w trybie wydania w Android Studio, wykonaj następujące kroki:
1- Na pasku menu kliknij Kompiluj> Generuj podpisany APK.
2-W oknie Kreatora generowania podpisanego pliku APK kliknij opcję Utwórz nowy, aby utworzyć nowy magazyn kluczy. Jeśli masz już magazyn kluczy, przejdź do kroku 4.
3- W oknie Nowy magazyn kluczy wprowadź wymagane informacje, jak pokazano na rysunku. Twój klucz powinien być ważny przez co najmniej 25 lat, abyś mógł podpisywać aktualizacje aplikacji tym samym kluczem przez cały okres użytkowania aplikacji.
4- W oknie Kreatora generowania podpisanego pliku APK wybierz magazyn kluczy, klucz prywatny i wprowadź hasła dla obu. Następnie kliknij przycisk Dalej.
5- W następnym oknie wybierz miejsce docelowe podpisanego pliku APK i kliknij przycisk Zakończ.
http://developer.android.com/tools/publishing/app-signing.html
Byłem szalony, szukając sposobu na wygenerowanie .keystore przy użyciu w powłoce polecenia jednowierszowego , aby móc uruchomić go z innej aplikacji. To jest sposób:
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 to unikalny identyfikator aplikacji w .keystore
alias Identyfikator aplikacji jako pojedynczego elementu w .keystore (może mieć wiele)
.ks
)Działa to dla mnie naprawdę dobrze, nie prosi o nic innego w konsoli, po prostu tworzy plik. Aby uzyskać więcej informacji, zobacz keytool - Narzędzie do zarządzania kluczami i certyfikatami .
/path/file.keystore
i wskazać to za pomocą parametru storepass.
jks
jest oficjalnym rozszerzeniem magazynu kluczy dla java w ogóle, ale keystore
zaleca się stosowanie go zamiast tego w aplikacjach na Androida .
Utwórz plik kluczy z wiersza poleceń:
Otwórz wiersz poleceń:
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> Poprosi cię o hasło> wpisz hasło (będzie niewidoczne)
Enter keystore password:
Re-enter new password:
Enter> Zapyta o Twoje dane.
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
Wprowadź> Wprowadź ponownie hasło.
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:
[Przechowywanie C: /index.keystore]
Wyeksportuj swój pakiet Androida do .apk z utworzonym plikiem magazynu kluczy
Kliknij prawym przyciskiem myszy pakiet, który chcesz wyeksportować, i wybierz eksport
Wybierz opcję Eksportuj aplikację na Androida> Dalej
Kolejny
Wybierz Użyj istniejącego magazynu kluczy> Przeglądaj plik .keystore> wprowadź hasło> Dalej
Utwórz magazyn kluczy [.keystore/.jks]
w studio ...
Kliknij Kompiluj (ALT + B) > Wygeneruj podpisany plik APK ...
Kliknij Utwórz nowy .. (ALT + C)
Przeglądaj ścieżkę do magazynu kluczy (SHIFT + ENTER)> Wybierz ścieżkę> Wpisz nazwę> OK
Podaj szczegóły dotyczące .jks/keystore
pliku
Kolejny
Plik
Wprowadź hasło główne Studio (możesz zresetować, jeśli nie wiesz) > OK
Wybierz * Folder docelowy *> Typ kompilacji
release : for publish on app store
debug : for debugging your application
Kliknij przycisk Zakończ
Gotowy !!!
Ten samouczek:
http://techdroid.kbeanie.com/2010/02/sign-your-android-applications-for.html
był dla mnie bardzo pomocny, kiedy pierwszy raz musiałem utworzyć magazyn kluczy. To proste, ale instrukcje na developer.android.com są trochę zbyt krótkie.
Nie byłem pewien, gdzie zapisać i jaką nazwę nadać plikowi kluczy .
Wydaje mi się, że nie ma znaczenia, gdzie to umieścisz, po prostu upewnij się, że jest bezpieczny i przechowujesz kilka kopii zapasowych. Po prostu umieściłem go w katalogu aplikacji
Nazwij plik „something.keystore”, w którym coś może być czymkolwiek chcesz. Użyłem app_name.keystore , gdzie app_name to nazwa mojej aplikacji.
Następną częścią było, jak nazwać alias. Znowu nie wydaje się to mieć znaczenia, więc ponownie użyłem nazwy aplikacji . Zachowaj hasła takie same jak wcześniej. Wypełnij pozostałe pola i gotowe.
Postępowałem zgodnie z tym przewodnikiem, aby utworzyć debugujący magazyn kluczy.
Polecenie to:
keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
Pierwszą rzeczą, o której należy wiedzieć, jest to, czy jesteś w trybie debugowania lub zwalniania. Ze strony dla programistów „Istnieją dwa tryby kompilacji: tryb debugowania i tryb wydania. Tryb debugowania jest używany podczas opracowywania i testowania aplikacji. Tryb wydania jest używany, gdy chcesz zbudować wersję wydania aplikacji, którą możesz dystrybuować bezpośrednio użytkownikom lub publikować w sklepie z aplikacjami, takim jak Google Play ”.
W trybie debugowania wykonaj następujące czynności:
A. Otwórz terminal i wpisz:
keytool -exportcert -alias androiddebugkey -keystore path_to_debug_or_production_keystore -list -v
Uwaga: W przypadku Eclipse magazyn kluczy debugowania zwykle znajduje się w ~ / .android / debug.keystore ...
B. gdy pojawi się monit o hasło, wpisz „android” ...
C. Jeśli jesteś w trybie zwolnienia, postępuj zgodnie z instrukcjami ...
http://developer.android.com/tools/publishing/app-signing.html <- ten link wyjaśnia wszystko, co musisz wiedzieć.
Możesz utworzyć swój magazyn kluczy, eksportując podpisany plik APK. Gdy spróbujesz wyeksportować / zbudować podpisany plik APK, poprosi on o magazyn kluczy.
Możesz wybrać istniejący magazyn kluczy lub łatwo utworzyć nowy, klikając przycisk Utwórz nowy magazyn kluczy
Tutaj link jest bardzo przydatny i dobrze wyjaśniony, jak utworzyć plik kluczy i wygenerować podpisany plik APK
Ten link wyjaśnił, jak to zrobić w Android Studio, ale jeśli pamiętam, w Eclipse jest dość podobny
UWAŻAJ
Po wygenerowaniu magazynu kluczy przechowuj go w bezpiecznym miejscu, ponieważ będzie on potrzebny do ponownego wygenerowania nowego podpisanego pliku APK.
Chciałbym zaproponować automatyczny sposób tylko z gradem
** Zdefiniuj także co najmniej jeden dodatkowy parametr dla magazynu kluczy w ostatnim poleceniu, np. Kraj '-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
}
Spowoduje to wygenerowanie magazynu kluczy podczas synchronizacji i kompilacji projektu
> Task :app:generateKeystore UP-TO-DATE
> Task :app:preBuild UP-TO-DATE
Jeśli nie chcesz lub nie możesz korzystać z Android Studio, możesz użyć narzędzia NPM create-android-keystore:
$ create-android-keystore quick
Co powoduje powstanie nowo wygenerowanego magazynu kluczy w bieżącym katalogu.
Więcej informacji: https://www.npmjs.com/package/create-android-keystore