Zgubiłem plik .keystore?


91

Ok ludzie… w skrócie, tworzyłem na komputerze, do którego już nie mam dostępu. Udało mi się pobrać kod źródłowy, ale nie plik .keystore używany do podpisywania i publikowania mojej aplikacji na rynku (z kilkoma aktualizacjami). Czy ja i moi biedni użytkownicy nie mamy szczęścia, jeśli kiedykolwiek chcę zaktualizować?

Znam hasło użyte do podpisania klucza (przynajmniej może to być jedno z trzech), więc czy mogę utworzyć inne? Musi być sposób na obejście tego… a co z awarią dysku twardego?


14
Jeśli nie było sposób wokół niego, to pokonać cały względów bezpieczeństwa to ma służyć!
Święty Mikołaj

2
Sprawdź tę odpowiedź Teraz jest to możliwe.
Deweloper Vicky

Odpowiedzi:


78

W obliczu tego samego problemu. Próbowałem go przywrócić za pomocą narzędzi do przywracania usuniętych plików, ale nie udało się. Nie ma więc innego wyjścia: należy złożyć kolejny wniosek.

Generalnie jedyna rada, która istnieje w magazynach kluczy: „Zawsze twórz kopie zapasowe!”


1
Zmierzyłem się z tym i musiałem ponownie wydać nową wersję mojej aplikacji. Od tego czasu wszystkie moje klucze są w Dropbox.
Varun

Po aktualizacji do Android Studio 3.3 mój stary magazyn kluczy nie jest już akceptowany podczas podpisywania aplikacji. Wyświetlany jest komunikat o błędzie „Nie można odzyskać klucza”.
Yar

Dzieje się tak przy każdej aktualizacji Android Studio. Dwa razy mam ten sam problem z aktualizacjami z 4.0 do 4.1.
Toni Garabedyan

60

Teraz możesz się nie martwić, oto pełne i ostatnie kroki, aby zresetować plik .JKS.

Z powodzeniem odpoczywam mój KLUCZ

Krok 1

Pobierz PRZEŚLIJ CERTYFIKAT (nazwa pliku - upload_cert.der ) z konsoli Google Play Store

aby pobrać plik upload_cert.der

Krok 2

Przejdź do tego LINK https://support.google.com/googleplay/android-developer/contact/otherbugs I wypełnij formularz zgłoszeniowy swoim ważnym identyfikatorem e-mail i prześlij plik (upload_cert.der).

Wypełnij formularz zgłoszeniowy

Krok 3

Teraz otrzymasz wiadomość e-mail od zespołu pomocy technicznej, a oni nie potrzebują Twojego pliku .JKS, ale plik .PEM jest tutaj próbką wiadomości e-mail.

wprowadź opis obrazu tutaj

Krok 4

aby przekonwertować plik .JKS do .PEM, wystarczy pobrać KeyStore Explorer JKS na PEM

Po udzieleniu odpowiedzi na wiadomość poczekaj od 48 do 72 godzin, aby zapełnienie magazynu kluczy zostało zresetowane.


7
Co się stanie, jeśli logowanie do aplikacji Google Play nie jest włączone dla aplikacji?
Vipul Behl

Nic nie znaleziono poza tym. Firma Google oficjalnie ogłosiła nową technikę podpisywania aplikacji na Androida w maju 2017 r.
Deweloper Vicky

1
w kroku 3. czy muszę utworzyć nowy plik jks i przekonwertować go na plik pem i wysłać go do nich jako wiadomość repaly. czy ten krok jest poprawny ???
GiveJob

1
tak, musisz utworzyć nowy plik JSK i przekonwertować go na PEM @HemanthSP
Deweloper Vicky

Tak, zrobiłem, a teraz mój nowy magazyn kluczy kwalifikuje się do przesłania, potwierdzam pocztę Google
GiveJob

35

Do dziś utrata klucza uniemożliwiała aktualizację aplikacji do nowej wersji. W takich przypadkach jedynym rozwiązaniem było opublikowanie nowej aplikacji z nową nazwą pakietu i kluczem oraz poproszenie wszystkich użytkowników o jej zainstalowanie.

Od dzisiaj klucz podpisywania aplikacji w Konsoli Play jest teraz bezpiecznie zarządzany przez Google Play, co oznacza, że ​​odpowiadasz tylko za zarządzanie swoim kluczem przesyłania. Jeśli Twój klucz przesyłania zostanie naruszony lub zgubiony, zespół operacyjny Google dla programistów może pomóc, weryfikując Twoją tożsamość i resetując klucz przesyłania. Google nadal będzie podpisywać ponownie przy użyciu tego samego klucza podpisywania aplikacji, umożliwiając aplikacji aktualizację w zwykły sposób.

W przypadku istniejących aplikacji wymaga przeniesienia klucza podpisywania aplikacji do Google Play. W przypadku nowych aplikacji Google może wygenerować klucz podpisywania aplikacji. Po zarejestrowaniu się w podpisywaniu aplikacji podpisujesz swój plik APK kluczem przesyłania, którego Google używa do uwierzytelnienia Twojej tożsamości. Następnie usuwają ten podpis i ponownie podpisują aplikację za pomocą klucza podpisywania aplikacji.

Zobacz: Pomoc do Konsoli Play> Zarządzaj kluczami podpisywania aplikacji


13

Jest to możliwe przez długi czas.

  1. Postępuj zgodnie z instrukcjami w Centrum pomocy Android Studio, aby wygenerować nowy klucz. Musi różnić się od wszystkich poprzednich kluczy. Alternatywnie możesz użyć następującego wiersza poleceń, aby wygenerować nowy klucz:

keytool -genkeypair -alias newalias -keyalg RSA -keysize 2048 -validity 9125 -keystore nameofkeystore.jks

Ten klucz musi być 2048-bitowym kluczem RSA i mieć 25-letni okres ważności.

  1. Wyeksportuj certyfikat dla tego klucza do formatu PEM:

keytool -export -rfc -alias newalias -file upload_certificate.pem -keystore nameofkeystore.jks

Następnie prześlij ten plik pem, wypełnij formularz i prześlij go do tej witryny . Następnie otrzymasz wiadomość e-mail po zarejestrowaniu nowego klucza przesyłania. Akceptuje tylko prośby o zresetowanie klucza od właściciela konta w Konsoli Play .

Wszystko dobrze i dobrze. Możesz opublikować apk nowej wersji z nowym plikiem jks.


2
Działa to tylko wtedy, gdy masz włączone podpisywanie aplikacji Google Play .
Sumit

nie. nie ma potrzeby podpisywania aplikacji Google Play. przynajmniej ja go nie włączam.
ksgngrkn

Czy jest to gdzieś udokumentowane?
Sumit,

Działa to tylko w przypadku aplikacji do podpisywania aplikacji. Właśnie potwierdziłem.
Euridice 01

11

Jeśli znasz hasło do magazynu kluczy, nadal nie masz powiązanego klucza prywatnego do podpisania aplikacji. Nie masz również szansy na wygenerowanie tego samego klucza prywatnego, który odpowiada Twojemu kluczowi publicznemu.

Dlatego: Zawsze wykonuj kopię zapasową pliku kluczy. Jest tak samo ważny jak kod źródłowy.


2
Więc jeśli otrzymałem to poprawnie, ten klucz prywatny jest generowany losowo dla każdego magazynu kluczy, prawda? A jedyne, co wiemy, to klucz publiczny, prawda?
iCantSeeSharp

Jeśli masz autoryzowany dostęp do magazynu kluczy, możesz również wyeksportować klucz prywatny i zaimportować go do innych magazynów kluczy lub usług.
Saxos

Czy idealnie jest przechowywać plik kluczy i klucze wraz z repozytorium?
Neon Warge

5

Jeśli włączyłeś podpisywanie aplikacji Google Play dla swojej aplikacji, nie musisz się martwić.

Aby sprawdzić, czy masz włączone podpisywanie aplikacji Google Play, przejdź do Zarządzania wersjami -> Podpisywanie aplikacji w Konsoli Google Play.

Jeśli jest włączona, możesz skontaktować się z pomocą techniczną Google Play, wypełniając formularz pomocy. Możesz też wybrać czat na żywo z personelem pomocy tutaj: https://support.google.com/googleplay/android-developer/answer/7218994? hl = en

Wyjaśnij im swój problem, a poinformują Cię o kolejnych krokach, które obejmują utworzenie nowego magazynu kluczy RSA 2048-bitowego z 25-letnim okresem ważności oraz wyeksportowanie klucza do formatu PEM i wysłanie go pocztą e-mail.

Aby wyeksportować klucz do formatu PEM:

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

3

Od dłuższego czasu szukam również rozwiązania tego problemu, ale do tej pory bez powodzenia. Jeśli masz ostatnią wersję apk aplikacji, możesz pobrać z niej certyfikaty za pomocą polecenia jarsigner cmd. Ale do aktualizacji potrzebujesz klucza prywatnego. Google Play nie zapewnił w tym celu żadnego odprężenia.


3
czy masz więcej informacji, jak to zrobić?
Zabs

1

Wygenerowałem podpisany apk przy użyciu Android Studio, więc w „ ścieżce do sklepu z kluczami ” po prostu wpisałem nazwę bez rozszerzenia, wypełniłem to okienko i podpisałem aplikację. wprowadź opis obrazu tutaj

następnym razem, gdy publikuję aplikację, nie pamiętam ścieżki i nazwy, w której została utworzona.

w jakiś sposób znajduję domyślną lokalizację, czyli „C: \ Program Files \ Java \ jdk1.8.0_45 \ jre \ bin”: \ jre \ bin

i w tym folderze według daty, próbowałem z najnowszym plikiem i zadziałało.

Uwaga: należy zapamiętać hasło magazynu kluczy i hasło klucza.


1

Jest to możliwe teraz, po maju 2017 r. Możesz zaktualizować swoją aplikację, jeśli zgubisz plik kluczy lub hasło do magazynu kluczy. Nie możesz odzyskać utraconego magazynu kluczy, ale możesz go zastąpić w sklepie playstore. Kliknij tutaj

Proces podpisywania aplikacji:

Możesz przesyłać pliki APK podpisane oryginalnym kluczem podpisywania aplikacji przed lub po wyrażeniu zgody na podpisywanie aplikacji przez Google Play.

Jeśli zaczynasz korzystać z pakietów aplikacji na Androida, możesz je przetestować na ścieżkach testowych, korzystając z istniejącego pliku APK w środowisku produkcyjnym. Oto jak działa ten proces:

  1. Podpisz pakiet aplikacji lub plik APK i prześlij go do Konsoli Play.
  2. W zależności od tego, co przesyłasz, różni się proces podpisywania:

    • Pakiet aplikacji: Google generuje zoptymalizowane pliki APK z pakietu aplikacji i podpisuje je za pomocą klucza podpisywania aplikacji.
    • Plik APK podpisany kluczem przesyłania: Google weryfikuje i usuwa Twój podpis z pliku APK, a następnie rezygnuje z pliku APK za pomocą klucza podpisywania aplikacji.
    • Plik APK podpisany kluczem podpisywania aplikacji: Google weryfikuje podpis. Google dostarcza podpisane pliki APK użytkownikom.

0

Musi być sposób na obejście tego… a co z awarią dysku twardego?

Chciałbym dodać, że zawsze przechowuj kopię zapasową magazynu kluczy w chmurze, takiej jak Dysk Google, Dropbox lub wyślij ją e-mailem do siebie.


Oczywiście są sposoby na obejście tego, po prostu Google tego nie zrobi. Sklep Windows (nawet jeśli nikt go nie używa) pozwala Ci podpisywać aplikacje z Visual Studio (wystarczy zalogować się na swoje konto w sklepie), a następnie można je łatwo przesłać do sklepu. Google--; Microsoft ++;
Juan Carlos

0

Tak, możesz wydać aktualizację istniejącej aplikacji za pomocą nowego klucza!

Google umożliwia teraz przesłanie nowego klucza do istniejącej aplikacji, prosząc o zresetowanie go przez e-mail / czat na żywo w Pomocy Google.

Ten proces trwa 1-2 dni robocze.

Wykonałem ten proces i przesłałem aktualizację do tej samej aplikacji z nowym kluczem. Zespół techniczny Sklepu Google Play pomógł mi zresetować poprzedni klucz.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.