Ho perso il mio file .keystore?


91

Ok gente .. per farla breve, stavo sviluppando su un computer a cui non ho più accesso. Sono stato in grado di recuperare il codice sorgente, ma non il file .keystore utilizzato per firmare e pubblicare la mia applicazione sul mercato (con diversi aggiornamenti). Io, e i miei poveri utenti, sono sfortunato se voglio aggiornare?

Conosco la password usata per firmare la chiave (almeno è una delle tre che potrebbe essere), quindi posso crearne un'altra? Ci deve essere un modo per aggirare questo .. che dire di un guasto del disco rigido?


14
Se ci fosse un modo per aggirarlo, vanificherebbe l'intero scopo di sicurezza che dovrebbe servire!
Babbo Natale

Risposte:


78

Ha affrontato lo stesso problema. Stavo cercando di ripristinarlo tramite strumenti di ripristino dei file eliminati, ma non è riuscito. Quindi, non c'è altro modo: dovresti emettere un'altra applicazione.

In generale, l'unico consiglio che esiste sui keystore: "eseguine sempre il backup!"


1
Ho affrontato questo problema e ho dovuto ristampare una nuova versione della mia app. Da allora tutte le mie chiavi sono su Dropbox.
Varun

Dopo l'aggiornamento ad Android Studio 3.3, il mio vecchio keystore non viene più accettato durante la firma dell'app. Viene visualizzato il messaggio di errore "Impossibile recuperare la chiave".
Yar

Succede con ogni aggiornamento di Android Studio. Ho riscontrato lo stesso problema due volte con gli aggiornamenti da 4.0 a 4.1.
Toni Garabedyan

60

Ora è possibile non preoccuparti, ecco i passaggi completi e finali per ripristinare il file .JKS.

Riposo con successo la mia CHIAVE

Passo 1

Scarica il CERTIFICATO DI CARICAMENTO (nome file - upload_cert.der ) dalla console del Google Play Store

per scaricare il file upload_cert.der

Passo 2

Vai a questo LINK https://support.google.com/googleplay/android-developer/contact/otherbugs e compila il modulo di domanda con il tuo ID email valido e carica il file (upload_cert.der).

Compila il modulo di richiesta

Passaggio 3

Ora riceverai l'e-mail dal team di supporto e non è necessario il tuo file .JKS ma il file .PEM qui è l'e-mail di esempio.

inserisci qui la descrizione dell'immagine

Passaggio 4

per convertire un file .JKS in un file .PEM devi solo scaricare KeyStore Explorer JKS a PEM

Dopo aver risposto alla posta, attendi da 48 a 72 ore che il riempimento del keystore verrà ripristinato.


7
Cosa succede se l'accesso all'app Google Play non è abilitato per un'app?
Vipul Behl,

Niente trovato tranne esso. Google ha annunciato ufficialmente la nuova tecnica di firma delle app Android nel mese di maggio 2017.
Sviluppatore Vicky,

1
nel passaggio 3. devo creare un nuovo file jks e convertirlo in file pem e inviarlo come posta di repaly. questo passaggio è corretto ???
giveJob

1
sì, devi creare un nuovo file JSK e convertirlo in PEM @HemanthSP
Sviluppatore Vicky

sì, l'ho fatto, e ora il mio nuovo keystore è idoneo per il caricamento, ho ricevuto la conferma di google mail
giveJob

35

Fino ad oggi, la perdita della chiave renderebbe impossibile aggiornare la tua app con una nuova versione. In questi casi, l'unica soluzione era pubblicare una nuova app, con un nuovo nome di pacchetto e una nuova chiave, e chiedere a tutti i tuoi utenti di installarla.

A partire da oggi, la chiave di firma dell'app nella Play Console è ora gestita in modo sicuro da Google Play, il che significa che sei responsabile solo della gestione della chiave di caricamento. Se la tua chiave di caricamento viene compromessa o persa, il team operativo per gli sviluppatori di Google può aiutarti verificando la tua identità e reimpostando la chiave di caricamento. Google continuerà a firmare nuovamente con la stessa chiave di firma dell'app, consentendo all'applicazione di aggiornarsi come al solito.

Per le app esistenti , richiede il trasferimento della chiave di firma dell'app su Google Play. Per le nuove app , Google può generare la tua chiave di firma dell'app. Una volta iscritto alla firma dell'app, firmi il tuo APK con una chiave di caricamento, che Google utilizza per autenticare la tua identità. Quindi rimuoveranno quella firma e firmeranno nuovamente la tua app con la chiave di firma dell'app.

Riferimento: Guida di Play Console> Gestisci le chiavi di firma dell'app


13

È possibile per molto tempo.

  1. Segui le istruzioni nel Centro assistenza di Android Studio per generare una nuova chiave. Deve essere diverso dalle chiavi precedenti. In alternativa, puoi utilizzare la seguente riga di comando per generare una nuova chiave:

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

Questa chiave deve essere una chiave RSA a 2048 bit e avere una validità di 25 anni.

  1. Esporta il certificato per quella chiave in formato PEM:

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

Quindi carica questo file pem, compila il modulo e invialo a questo sito . E poi riceverai un'e-mail una volta che avremo registrato la nuova chiave di caricamento. Accetta solo richieste di reimpostazione della chiave dal proprietario dell'account della Play Console .

Tutto bene e bene. Puoi pubblicare una nuova versione apk con il tuo nuovo file jks.


2
Funziona solo se hai attivato Firma dell'app per Google Play .
Sumit

no . non è necessario firmare l'app di Google Play. almeno non lo abilito.
ksgngrkn

È documentato da qualche parte?
Sumit

Funziona solo per le app di firma delle app. Ho appena confermato.
Euridice01

11

Se conosci la tua password del keystore, non hai ancora la chiave privata associata per firmare la tua app. Inoltre, non hai la possibilità di generare la stessa chiave privata che corrisponde alla tua chiave pubblica.

Pertanto: eseguire sempre il backup del file del keystore. È importante quanto il tuo codice sorgente.


2
Quindi, se ho capito correttamente, questa chiave privata viene generata casualmente per keystore, giusto? E l'unica cosa che sappiamo è la chiave pubblica, giusto?
iCantSeeSharp

Se si dispone di un accesso autorizzato al keystore, è anche possibile esportare la chiave privata e importarla in altri keystore o servizi.
saxos

È ideale per archiviare il file e le chiavi del keystore insieme al repository?
Neon Warge

5

Se hai abilitato la firma dell'app Google Play per la tua applicazione, non devi preoccuparti.

Per verificare se la firma dell'app Google Play è abilitata, vai a Gestione delle versioni -> Firma dell'app, nella tua Google Play Console.

Se è abilitato puoi contattare l'assistenza di Google Play compilando il modulo di supporto oppure puoi anche optare per la chat dal vivo con un personale di supporto qui: https://support.google.com/googleplay/android-developer/answer/7218994? hl = en

Spiega loro il tuo problema e ti diranno i passaggi successivi che includono la creazione di un nuovo keystore RSA a 2048 bit con 25 anni di validità e l'esportazione della chiave in formato PEM e l'invio loro tramite e-mail.

Per esportare la chiave in formato PEM:

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

3

Da lunghi giorni, cerco anche una soluzione per questo, ma non con successo fino ad ora. Se hai l'ultima versione dell'apk della tua app, puoi recuperare i certificati da quella utilizzando il comando jarsigner cmd. Ma hai bisogno di una chiave privata per l'aggiornamento. Google Play non ha fornito alcun relax per questo.


3
hai maggiori informazioni su come farlo?
Zabs

1

Ho generato l'apk firmato utilizzando Android Studio, quindi nella " key Store Path " ho appena digitato un nome senza estensione, compilato questo popup e firmato l'applicazione. inserisci qui la descrizione dell'immagine

la prossima volta per la pubblicazione dell'applicazione non ricordo il percorso e il nome in cui è stata creata.

in qualche modo trovo la posizione predefinita che è "C: \ Program Files \ Java \ jdk1.8.0_45 \ jre \ bin": \ jre \ bin

e in quella cartella breve per data, poi ho provato con il file recente e ha funzionato per me.

Nota: è necessario ricordare la password dell'archivio chiavi e la password della chiave.


1

È possibile ora, dopo maggio 2017 puoi aggiornare la tua app se hai perso il keystore o la password del keystore. Non puoi recuperare il keystore smarrito ma puoi sostituire il keystore sul playstore. Clicca qui

Processo di firma dell'app:

Puoi caricare APK firmati con la chiave di firma dell'app originale prima o dopo aver attivato la firma dell'app da Google Play.

Se stai iniziando a utilizzare gli Android App Bundle, puoi testarli in tracce di test mentre utilizzi l'APK esistente in produzione. Ecco come funziona il processo:

  1. Firma il tuo app bundle o l'APK e caricalo sulla tua Play Console.
  2. A seconda di ciò che carichi, ecco come differisce il processo di firma:

    • App bundle: Google genera APK ottimizzati dal tuo app bundle e li firma con la chiave di firma dell'app.
    • APK firmato con chiave di caricamento: Google verifica e rimuove la tua firma dall'APK, quindi rinvia l'APK con la chiave di firma dell'app.
    • APK firmato con chiave di firma dell'app: Google verifica la firma. Google fornisce APK firmati agli utenti.

0

Ci deve essere un modo per aggirare questo .. che dire di un guasto del disco rigido?

Vorrei aggiungere che tieni sempre un backup del keystore nell'archivio cloud come Google Drive, Dropbox o invialo via email a te stesso.


Ovviamente ci sono modi per aggirare questo problema, è solo che Google non lo farà. Windows Store (anche se nessuno lo usa) ti consente di firmare le tue app da Visual Studio (devi solo accedere con il tuo account del negozio) e quindi possono essere facilmente caricate nello store. Google--; Microsoft ++;
Juan Carlos

0

Sì, puoi rilasciare un aggiornamento all'app esistente con una nuova chiave!

Google ora ti consente di caricare la nuova chiave sull'app esistente richiedendo loro di reimpostarla tramite e-mail / chat dal vivo nell'Assistenza Google.

Questo processo richiede 1-2 giorni lavorativi.

Ho seguito questo processo e ho caricato un aggiornamento sulla stessa app con una nuova chiave. Il team tecnico di Google Play Store mi ha aiutato a ripristinare la chiave precedente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.