Nigdy nie ustawiłem żadnych haseł do mojego magazynu kluczy i aliasu, więc jak są one tworzone?

137

Gdy przeglądałem kilka postów w Internecie, aby dowiedzieć się więcej o podpisywaniu aplikacji na Androida , dostałem post, jak podpisać aplikację i coś o tym, co zrobić, jeśli zgubiłeś plik magazynu kluczy lub hasło.

Pytanie, które tutaj chcę zadać, brzmi: nigdy nie utworzyłem magazynu kluczy, jego aliasu ani hasła, więc jak na Boga mogę go zapomnieć?

Wiem, że dla Androida używamy hasła android , więc jeśli hasło jest domyślnie androidem, jak można je zapomnieć? (Jestem pewien, że musi istnieć inny sposób tworzenia nowych magazynów kluczy).

Wreszcie, jeśli android jest domyślnym hasłem, jaki jest domyślny alias?

Anas Azeem
źródło

Odpowiedzi:

409

Logowanie w trybie debugowania

Narzędzia do kompilacji systemu Android zapewniają tryb podpisywania debugowania, który ułatwia tworzenie i debugowanie aplikacji, a jednocześnie spełnia wymagania systemu Android dotyczące podpisywania pakietu APK. Podczas tworzenia aplikacji w trybie debugowania narzędzia SDK wywołują narzędzie Keytool, aby automatycznie utworzyć magazyn kluczy i klucz debugowania. Ten klucz debugowania jest następnie używany do automatycznego podpisywania pakietu APK, więc nie ma potrzeby podpisywania pakietu własnym kluczem.

Narzędzia SDK tworzą magazyn kluczy / klucz debugowania ze wstępnie określonymi nazwami / hasłami:

Keystore name: "debug.keystore"
Keystore password: "android"
Key alias: "androiddebugkey"
Key password: "android"
CN: "CN=Android Debug,O=Android,C=US"

W razie potrzeby można zmienić lokalizację / nazwę magazynu kluczy / klucza debugowania lub podać niestandardowy magazyn kluczy / klucz debugowania do użycia. Jednak każdy niestandardowy magazyn / klucz debugowania musi używać tych samych nazw i haseł magazynu kluczy / kluczy, co domyślny klucz debugowania (jak opisano powyżej). (Aby to zrobić w Eclipse / ADT, przejdź do Windows> Preferencje> Android> Build .)

Przestroga: nie można udostępnić swojej aplikacji publicznie, jeśli jest podpisana certyfikatem debugowania.

Źródło: Developer.Android

Społeczność
źródło
To było bardzo pouczające. Przyjmując to jako odpowiedź. Jeszcze jedno pytanie. Czy pojedynczy magazyn kluczy ma wiele kluczy, czy też magazyn kluczy i klucz to to samo?
Anas Azeem
Magazyn kluczy może mieć wiele kluczy i będziesz musiał utworzyć inny alias do kluczy. Myślę, że teraz jest jasna różnica między kluczem a magazynem kluczy. Magazyn kluczy to kontener kluczy
Użyłem go do podpisania niepodpisanego apk, którego nie mogłem zainstalować: jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~ ​​/ .android / debug.keystore my_unsigned.apk androiddebugkey Dziękuję
Ivan Morgillo
@ user2730944 Czy mógłbyś świętować, jak dowiedziałeś się, jakie hasło to „android”, skoro z podanego przez Ciebie źródła nie jest oczywiste?
spin_eight
22

jeśli chcesz je skonfigurować w gradle, powinno to wyglądać

signingConfigs {
        debug {
            storeFile file('PATH_TO_HOME/.android/debug.keystore')
            storePassword 'android'                   
            keyAlias 'AndroidDebugKey'
            keyPassword 'android'                     
        }
        ...
}
Nawet Cheng
źródło
3

kiedy uruchamiamy aplikację w eclipse apk generuje domyślnie znak Keystore, który jest dostarczany przez Androida.

Ale jeśli chcesz przesłać swoją aplikację do sklepu Play, musisz utworzyć własny magazyn kluczy. Eclipse zapewnia już interfejs GUI do tworzenia nowego magazynu kluczy. Możesz także utworzyć magazyn kluczy za pomocą wiersza poleceń.

domyślny alias to

androiddebugkey
Biraj Zalavadia
źródło
Dziękuję za odpowiedź, ale nie ma pojęcia, jakie jest hasło do klucza, ponieważ hasło do magazynu kluczy brzmiało „android” (jeśli się nie mylę)
Anas Azeem
@AnasAzeem zobacz moją odpowiedź
3
Keystore name: "debug.keystore"

Keystore password: "android"

Key alias: "androiddebugkey"

Key password: "android"

Korzystam z tych informacji i pomyślnie generuję podpisany pakiet APK.

Rubel Hasan
źródło
2

Lepiej niż wszystkie opcje, możesz ustawić signingConfigswoje debug.signingConfig. Aby to zrobić, wystarczy wykonać następujące czynności:

android {
  ...
  buildTypes {
    ...
    wantedBuildType {
      signingConfig debug.signingConfig
    }
  }
}

Dzięki temu nie będziesz musiał wiedzieć, gdzie debug.keystorejest, aplikacja będzie działać dla całego zespołu, nawet jeśli ktoś używa innego środowiska.

brunodles
źródło
Doskonały! Jest to zwięzły sposób na zainstalowanie kompilacji typu debugProguard.
Jerry101,
1

Wszystkie te odpowiedzi i NADAL brakuje tylko jednej. Tworząc swoje dane uwierzytelniające w sekcji Google API w konsoli programisty, upewnij się (zwłaszcza jeśli jest to Twoje pierwsze), że kliknąłeś opcję „ekran zgody”. Jeśli nie masz „tytułu” i wypełniono inne wymagane pola, połączenie zakończy się niepowodzeniem z tą opcją.

user1318747
źródło