Computer finestre Internet

Come firmare correttamente un gioco o un'applicazione APK su Android. come firmare apk con gradle come firmare file apk per google play

Quindi lavori da molti giorni (o forse notti) e ora la tua prima applicazione mobile ibrida è pronta. È abbastanza stabile, la maggior parte dei bug critici sono chiusi. Ne sono rimaste di piccole dimensioni, ma ricordando che il perfezionismo è il male, prendi una decisione volitiva di pubblicare l'applicazione.

Un prerequisito per questo è la presenza di un file APK firmato. Come firmare un file apk, imparerai da questo articolo.

piccola digressione

Quando il mio progetto per animali domestici si è avvicinato al rilascio, ho iniziato a cercare informazioni su come pubblicare un'applicazione in modo rapido e indolore. Molte delle istruzioni trovate sembravano semplici. Ho scelto le istruzioni degli autori del framework Ionic, su cui è stata sviluppata l'applicazione. Non tutto ha funzionato la prima volta, ci sono diverse funzionalità. Il processo di firma è descritto in questo articolo, vengono evidenziati i punti importanti.

Dati iniziali

Presumo che tu abbia tutto ciò di cui hai bisogno per sviluppare app mobili ibride con Apache Cordova. Deve essere installato:
  • Apache Cordova
  • Kit di sviluppo Java
  • Strumenti SDK Android
lcf viene utilizzato come nome del progetto e dell'applicazione. Sostituisci con il nome del tuo progetto ove necessario.

andare

Per prima cosa devi creare una build di rilascio della tua applicazione. Ma prima, assicuriamoci che tutti i plugin non necessari vengano rimossi. Ad esempio, non abbiamo bisogno di un plug-in che stampi le informazioni di debug sulla console. Rimuoviamolo:

$ cordova plug-in rm cordova-plugin-console
Per generare una build di rilascio per Android, utilizzare il comando costruire con bandiera --pubblicazione:

$ cordova build --release Android
Questo comando creerà non firmato File APK nella directory:

piattaforme/android/build/outputs/apk
Ad esempio piattaforme/android/build/outputs/apk/ android-release-unsigned.apk. Quindi dobbiamo firmare questo file ed eseguire l'utilità zipalign per ottimizzare e preparare il file per Google Play.

Per firmare un file è necessario un certificato. Creiamolo usando l'utilità strumento chiave che è incluso nel JDK:

$ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 -validity 10000
Importante

Il valore del parametro -alias deve essere ricordato, ma è meglio annotarlo. Nell'esempio sopra, è uguale a lcf (dalle prime lettere del nome dell'applicazione Loyal Client Free). Non fornirò dettagli qui, se sei interessato scrivi nei commenti, ti dirò di più.

L'alias viene utilizzato ogni volta durante la firma * applicazioni. Per renderlo più facile da ricordare, usa il nome del file keystore come alias, ad esempio:


-keystore hello-world.keystore -alias hello-world -keystore weather-app.keystore -alias weather-app -keystore todo.keystore -alias todo
* È necessario firmare l'applicazione con ogni versione di aggiornamenti

Utilità strumento chiave fa una serie di domande. Saranno in totale 8. Per avere un'idea delle domande e delle risposte approssimative in anticipo, le riportiamo tutte sotto, sotto lo spoiler.

domande chiave e esempi di risposte

1.Inserire la password del keystore:
Qui è necessario inserire una password per il file (almeno 6 caratteri). La password inserita deve essere annotata in un luogo sicuro, è necessaria ogni volta che si firma la domanda.

2. Reinserire la nuova password:
Reinserire la password.

3. Qual è il tuo nome e cognome?
: Ivan Petrov
Il tuo nome e cognome. Il valore tra parentesi quadre è il valore predefinito.

4. Qual è il nome della tua unità organizzativa?
: ESSO
Il nome della divisione della tua azienda. Puoi lasciarlo vuoto, lo specifico IT.

5. Qual è il nome della tua organizzazione?
: 2sviluppatori
Il nome della tua organizzazione. Specificare se presente.

6. Qual è il nome della tua Città o Località?
: Mosca
Nome della città

7. Qual è il nome del tuo Stato o Provincia?
: MO
Nome della regione

8. Qual è il codice paese di due lettere per questa unità?
: IT
Codice del paese. Indico RU.

: y

Conferma se tutto è corretto o premi Invio per accedere di nuovo.


Al termine, apparirà un messaggio sulla corretta generazione della chiave. Ti verrà chiesto di impostare una password per la chiave privata (se vuoi lasciare la stessa del certificato, premi Invio):

Generazione di 2 coppie di chiavi RSA a 048 bit e certificato autofirmato (SHA256withRSA) con una validità di 10.000 giorni per: CN=Ivan Petrov, OU=IT, O=2developers, L=Mosca, ST=MO, C=RU Enter key password per (RETURN se uguale alla password del keystore):
Il file verrà creato nella directory corrente lcf.keystore.

Importante

Il file creato deve essere salvato in un luogo sicuro. Se si utilizza un repository privato, è possibile eseguire il commit del file insieme ai codici sorgente dell'applicazione. In generale, i certificati sono meglio archiviati separatamente. Se perdi il certificato, non potrai rilasciare gli aggiornamenti dell'app.

Sono rimasti due passaggi e avrai un file APK pronto per la distribuzione. Procediamo direttamente alla firma.

Per firmare il tuo file apk, usa l'utilità jarsigner, anch'esso incluso nel JDK.

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore lcf.keystore android-release-unsigned.apk lcf
Il nome del certificato viene specificato dopo il parametro - keystore, alias - dopo il nome del file.

Infine, per ottimizzare il file apk, utilizzeremo l'utility zipalign:

$ zipalign -v 4 android-release-unsigned.apk LoyalClientFree.apk
L'ultimo parametro è il nome del file che caricherai su Google Play.

Importante.

Utilità zipalign fa parte di Android SDK Tools e può essere trovato qui:

/percorso/di/Android/sdk/build-tools/VERSION/zipalign

Conclusione

Ora hai un file apk pronto per la distribuzione che può essere caricato su Google Play. Compila la descrizione, determina la valutazione della tua applicazione e sentiti libero di fare clic su "Pubblica".

Dato che ho cercato su Google la domanda da solo come firmare un file apk?", So che non è così facile trovare un'istruzione davvero funzionante e comprensibile in tutto. Ecco perché ho deciso di scrivere io stesso il materiale su come firmare correttamente il tuo programma o gioco su Android.

Come ormai sai, senza una firma digitale la tua creazione non può essere immessa sul mercato, e questo è già grave Molti giovani sviluppatori Android hanno notato, per così dire, i principianti dimenticano completamente di firmare la loro applicazione e provano a fare qualcosa con esso in seguito e questo è il motivo per cui non sono in grado di eseguire determinate azioni con il loro file APK.

Quindi, non trasciniamolo fuori e iniziamo subito con come puoi firmare il tuo file apk e come usarlo effettivamente per ottenere il risultato desiderato.

Questo metodo è il più corretto di tutti elencati, quindi lo descriveremo in questo materiale. Creeremo le nostre chiavi con i nostri dati e certificati e le useremo per firmare l'applicazione che hai creato.

Per lavoro abbiamo bisogno di: OpenSSL e SignApk.

Per prima cosa, creiamo un certificato e una chiave di firma. Installa OpenSSL. Durante l'installazione, il programma di installazione ti chiederà di copiare i componenti nella cartella Windows, selezionare la cartella Bin, che sarà il luogo in cui installerai l'intero OpenSSL.

Ora apri per conto dell'amministratore di sistema (questo è molto importante!) la riga di comando. Quindi, dalla riga di comando, vai alla cartella bin, che si trova nella cartella in cui hai installato OpenSSL (ad esempio, C:\OpenSSL\bin\ o C:\Programmi\OpenSSL\bin\). Se non lo sai, lo spostamento in un'altra cartella viene eseguito con il comando CD. Cioè, per andare alla cartella desiderata, dovresti eseguire il seguente comando:

cd C:\OpenSSL\bin\

Una volta che sei nella cartella Bin, puoi procedere direttamente alla creazione di un certificato e di una chiave.

Passo 1(Eseguiamo la generazione di chiavi con una lunghezza di 1024 bit)

Esegui il comando:

openssl genrsa -out key.pem 1024

Passo 2(In base alla chiave, creiamo una richiesta di certificato)

Esegui il comando:

openssl req -new -key key.pem -out request.pem

In questa fase dovrai inserire i tuoi dati, che ti identificheranno nel certificato.

Fare un passo 3 (Genera una chiave privata da un certificato)

Esegui il comando:

openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem

Passaggio 4(Esegui la generazione della chiave pubblica)

Esegui il comando:

openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

A questo punto, la creazione dei file necessari per firmare i tuoi giochi e le tue applicazioni è terminata. utilizzando la chiave e il certificato generati, puoi firmare tutti i giochi e le applicazioni su Android che desideri.

E ora in realtà, iniziamo a firmare l'applicazione. Decomprimi l'archivio da SingApk scaricato dal link sopra. Spostati dalla cartella Bin in cui abbiamo creato il certificato e i file chiave 2: certificato.pem e chiave.pk8 nella cartella in cui hai decompresso SingApk. Windows dovrebbe visualizzare una finestra di dialogo per la sostituzione del file - sostituisci.

Ora, per firmare il file apk con una firma digitale univoca che hai creato tu stesso, trascina semplicemente il tuo file apk su sign_APK.bat. Per non trascinare il file da una finestra all'altra (questo non è conveniente), sposta il tuo file apk nella cartella con SingApk. Dopo l'esecuzione, un file apparirà nella cartella con SingApk apk_signed.apk, che sarà l'applicazione o il gioco firmato.

Visualizzazioni post: 5 618

studio android offre ampie opportunità sia per lo sviluppo di applicazioni che per aumentare l'automazione e il comfort durante la programmazione.

Se stai usando il sistema di compilazione grado per creare le tue applicazioni, puoi anche impostare alcune opzioni per la creazione di firme per le tue applicazioni.

Probabilmente non vuoi pubblicare le tue chiavi di firma, password e nomi utente in un repository pubblico (o anche privato). Pertanto, è possibile definire la chiave, la password e il nome utente come proprietà in un file separato.

Prima di iniziare a firmare l'applicazione, è necessario creare una nuova proprietà nel file gradle.properties. Chiamiamolo chiavi.repo e, come valore, specificare il percorso della cartella in cui si troveranno successivamente l'archivio chiavi e il file con le proprietà (ad esempio, C:/Utenti/NomeUtente/.firma).

Keys.repo=C:/Utenti/NomeUtente/.signing

Quindi devi creare questa cartella o, se ne hai specificata una esistente, aprirla. Ha bisogno di creare un file YourProjectName.properties, all'interno del quale il percorso dell'archivio chiavi, l'alias chiave e la password verranno scritti come proprietà nel modulo seguente.

RELEASE_STORE_FILE=/NomeProgetto/NomeStoreChiavi.jks RELEASE_STORE_PASS=****** RELEASE_ALIAS=AliasChiave RELEASE_KEY_PASS=******

Come creare un keystore?

Se non disponi di un keystore, puoi crearne uno facilmente utilizzando Android Studio. Per fare ciò, seleziona la voce di menu Costruire -> Genera APK firmato.

Nella finestra che appare, fai clic su Creare nuovo... Di conseguenza, si aprirà una finestra in cui puoi specificare dove si troverà il keystore (per questa lezione è meglio selezionare immediatamente il percorso che hai specificato in YourProjectName.properties nella proprietà RELEASE_STORE_FILE), nonché i dati sulla chiave.

Quindi devi creare una cartella Il tuo nome progetto e trasferisci lì il file keystore desiderato.

Ora puoi procedere direttamente al processo di firma. Per fare ciò, nel tuo progetto devi aprire il file build.gradle(situato nella cartella dell'app). Dentro di esso nel blocco androideè necessario aggiungere il seguente codice.

SigningConfigs ( debug ( /* nessuna modifica qui */ ) release ( if (project.hasProperty("Keys.repo")) ( def projectPropsFile = file(project.property("Keys.repo") + "/YourProjectName.properties " ) if (projectPropsFile.exists()) ( Properties props = new Properties() props.load(new FileInputStream(projectPropsFile)) storeFile file(file(project.property("Keys.repo") + props["RELEASE_STORE_FILE"] ) ) storePassword props["RELEASE_STORE_PASS"] keyAlias ​​props["RELEASE_ALIAS"] keyPassword props["RELEASE_KEY_PASS"] ) ) else ( println "==================== = ===================================================================" println " - Configurare l'ambiente di compilazione della versione, ad esempio in ~/. directory di firma" println "============================================ == ========" ) ) )

Quali sono gli schemi di firma?

Esistono due schemi per ottenere una firma APK: v1 giara e APK completo v2.

Nel primo caso, firma BARATTOLO-file, che è il modo tradizionale di firmare. La firma v1 non protegge alcune parti dell'APK, come i metadati ZIP. Il verificatore APK deve gestire molte strutture di dati non attendibili (non ancora verificate) e quindi scartare i dati che non sono firmati, lasciando molto spazio agli attacchi. Inoltre, il verificatore APK deve decomprimere tutti i record compressi, il che fa sprecare molto tempo e memoria. Per risolvere questi problemi, è stato sviluppato un secondo APK completo dello schema v2.

Lo schema v2 è stato introdotto in Android 7.0 Torrone (API 25) e funziona dalla versione Android Studio 2.2 e Plugin Android Gradle 2.2. Questo schema fornisce un'installazione più rapida dell'applicazione e una buona protezione contro modifiche non autorizzate all'APK. Il contenuto dell'APK viene sottoposto a hash e firmato, quindi ricevuto Blocco firma APK inserito nell'APK.

Durante la convalida, lo schema v2 tratta l'APK come un BLOB ed esegue la verifica della firma sull'intero file. Qualsiasi modifica all'APK, comprese le modifiche ai metadati ZIP, invalida la firma. Questa forma di verifica è molto più veloce e consente di rilevare più modifiche non autorizzate.

Il nuovo formato è compatibile con le versioni precedenti, quindi gli APK firmati con il nuovo schema possono essere installati su dispositivi meno recenti (che ignoreranno semplicemente la nuova firma) purché anche quegli APK siano firmati con lo schema v1.

La firma utilizza entrambi gli schemi per impostazione predefinita in modo che le applicazioni possano essere installate su qualsiasi dispositivo. Tuttavia, se necessario, puoi disabilitare la firma v1 o v2. Per fare ciò, nel codice sopra nel blocco pubblicazione basta aggiungere le seguenti righe.

V1SigningEnabled false

V2SigningEnabled false

È anche importante notare che devi firmare con lo schema v1 prima di firmare con lo schema v2, perché l'APK non passerà v2 se è firmato con certificati aggiuntivi dopo che è stato firmato con lo schema v2.

Dopo aver aggiunto il codice, indicare questo codice nel blocco buildTypes dentro pubblicazione. Per esempio:

BuildTypes ( release ( minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signatureConfig signatureConfigs.release ) )

Ora puoi tranquillamente nella voce di menu Costruire scegliere Crea APK, avendo precedentemente modificato il tipo di assieme da eseguire il debug sul pubblicazione. Come puoi vedere, questo metodo è conveniente in quanto è automatico, deve essere configurato solo una volta e i tuoi keystore possono essere al sicuro.

Ci sono schermate nell'articolo quando l'app store si chiamava "Android Market". È già cresciuta una generazione di gatti che non ha mai sentito parlare di questo nome. Ma il principio generale non è cambiato. Lasciato per la storia. Non riesco a registrarmi nuovamente per acquisire nuovi screenshot.

Dal momento che siamo preoccupati, ci eserciteremo sui gatti. Prendiamo ad esempio un esempio dall'articolo e proviamo a metterlo su Google Play. Se tutto funziona, sarà più facile.

Prima di procedere oltre, assicurati di avere le tue icone dell'applicazione e il nome del programma pronti. Sarà molto strano vedere un programma con un'icona standard e il nome "HelloWorld" nell'app store. E controlla anche tutte le voci nel file manifest.

Primo passo. Lui è il più difficile

Qualsiasi applicazione pubblicata nel negozio deve avere un certificato firmato. Il certificato consente di identificarsi come l'autore del programma. E se qualcuno tenta di pubblicare un programma con lo stesso nome del tuo, gli verrà negato a causa di un conflitto di nomi. Il nome dell'applicazione è il nome completo del pacchetto.

Quando esegui le tue applicazioni su un emulatore o sul tuo telefono, l'ambiente di sviluppo firma automaticamente il programma con un certificato di debug. Un certificato di debug non è adatto per la distribuzione tramite l'archivio ed è necessario firmare l'applicazione con il proprio certificato univoco. È gratuito, senza registrazione e senza SMS.

Creiamo un file APK firmato, che è qualcosa come un file eseguibile blocco note.exe Su Windows. Se hai l'ambiente di sviluppo Android Studio aperto, seleziona dal menu costruire | Genera APK firmato....

Verrà visualizzata una finestra di dialogo della procedura guidata, che è necessario compilare con i dati.

Nel primo campo, specifica il percorso del keystore. Se hai già dovuto creare programmi in precedenza, incluso in Eclipse, puoi specificare un repository esistente utilizzando il pulsante Scegli esistente.... Se stai creando un repository per la prima volta, seleziona il pulsante Creare nuovo.... Apparirà una nuova finestra di dialogo.

Nel primo campo, è necessario selezionare una cartella utilizzando il pulsante ... e inserisci un nome per il file di archiviazione, a cui verrà assegnata l'estensione jks.

Ora crei una chiave per l'applicazione. In campo Alias(Nickname) inserisci il nome della chiave che tu e i gatti potete capire. Non è necessario creare un alias per ogni applicazione, puoi utilizzare un alias per le tue applicazioni e alias separati per le applicazioni personalizzate.

È inoltre necessario creare una password per la chiave e confermarla.

La chiave è progettata per 25 anni. Campo Validità (anni) lascialo invariato (a meno che tu non abbia buone ragioni contrarie).

Infine, inserisci le informazioni su di te.

Dopo aver compilato i campi, tornerai alla prima finestra della procedura guidata.

Fare clic sul pulsante Prossimo e nella finestra successiva inserire un'altra password per accedere al database delle password.

Potresti non avere questo passaggio. Potrebbe apparire se hai selezionato l'opzione "Ricorda password". Non ricordo i dettagli, te ne accorgerai tu stesso.

L'ultimo passaggio è premere il pulsante Fine.

Questo era l'ultimo passo. Ora ci sono nuove caselle di controllo V1 (firma del vaso) e V2 (firma APK completa). Controlla almeno la prima opzione V1- questo corrisponde al vecchio modo. Il secondo metodo è considerato più sicuro in termini di hacking e può essere utilizzato per le API successive, a tua discrezione (vedi sotto).

Come risultato di complesse manipolazioni con finestre di dialogo, avrai l'APK tanto atteso: il tuo fascino, che aprirà le porte al mondo della ricchezza e della felicità.

Premendo un pulsante Mostra in Explorer, avvierai Esplora file sul tuo computer con la cartella contenente il file firmato.

Fai attenzione con la chiave generata. È lui che garantisce che la nuova versione del programma sia stata scritta da te. Pertanto, se perdi la chiave creata, dovrai caricare il programma con un nome diverso con una nuova chiave.

Lo studio fornisce una modalità per la creazione automatica di un'applicazione firmata. Fare clic con il tasto destro sulla cartella app e nel menu contestuale selezionare Apri Impostazioni modulo. Scegli una sezione app nella sezione Moduli. Seleziona scheda Firma. Clicca sul pulsante più e compila i campi.

Vai alla scheda Tipi di costruzione e scegli il montaggio pubblicazione. Nell'elenco a discesa Configurazione di firma selezionare la configurazione appena creata. Di default ha il nome config.

Clic OK per salvare i risultati.

Puoi anche firmare le domande tramite la riga di comando senza la partecipazione dello studio, se sei un pervertito. È possibile leggere la documentazione su questo argomento.

APK completo v2

Nel 2017, Google ha leggermente modificato il processo di firma. Ora sono disponibili due schemi per ottenere una firma APK: v1 JAR e v2 Full APK.

La firma v1 (che esiste dall'inizio) non protegge alcune parti dell'APK, come i metadati ZIP. Il verificatore APK deve gestire molte strutture di dati non attendibili e quindi scartare i dati non firmati, il che lascia molto spazio agli attacchi. Inoltre, il verificatore APK deve decomprimere tutti i record compressi, il che fa sprecare molto tempo e memoria. Per risolvere i problemi, è stato sviluppato un nuovo APK completo v2, che incontrerai durante la firma della tua applicazione.

Lo schema v2 funziona in Android 7.0 Nougat (API 25). Lo schema fornisce un'installazione più rapida dell'applicazione e una buona protezione contro modifiche non autorizzate all'APK. Il contenuto dell'APK viene sottoposto a hash e firmato, quindi il blocco di firma dell'APK risultante viene inserito nell'APK.

Il nuovo formato è compatibile con le versioni precedenti, quindi gli APK firmati con il nuovo schema possono essere installati su dispositivi meno recenti (che ignoreranno semplicemente la nuova firma) purché anche quegli APK siano firmati con lo schema v1.

Nelle applicazioni precedenti, lascio la casella di controllo accanto alla prima versione. Forse in seguito ti costringeranno a passare alla seconda versione con la forza. È importante notare che è necessario firmare con lo schema v1 prima di firmare con lo schema v2, poiché l'APK non supererà lo schema v2 se viene firmato con certificati aggiuntivi dopo che è stato firmato con lo schema v2.

A rigor di termini, puoi pubblicare un file apk sul tuo sito e tutti i tuoi visitatori possono scaricarlo e installarlo sui loro telefoni. Ma questo è in qualche modo poco dignitoso nella nostra era della nanotecnologia. Passiamo quindi al passaggio successivo.

Passo due. Devi Fedya, devi

Il passo successivo è molto spiacevole. Devi dare 25 sempreverdi a uno sconosciuto. Per non essere così offeso, questa operazione è stata chiamata quota di iscrizione. Avrai bisogno di una carta di credito con l'importo specificato. Tieni presente che Visa Electron, e ancor di più la carta sconto della catena di negozi Perekrestok, non fa per te. Se hai già la carta richiesta, salta questo paragrafo. Posso consigliare al resto di ottenere un portafoglio QIWI e ottenere una carta virtuale lì. Questo è esattamente quello che ho fatto, dal momento che ero riluttante ad andare in banca e scrivere ogni tipo di estratto conto.

Aggiornamento automatico

Se hai creato una nuova versione del programma correggendo vari bug e aggiungendo nuove foto di un gatto, devi aumentare di uno il numero di versione nel manifest (attributo versionCode) e sostituirlo versionName per te (verrà mostrato nella pagina di Google Play). Nelle ultime versioni di Studio, queste proprietà ora non sono nel manifest, ma nel file build.gradle modulo della tua applicazione. Carica la nuova versione su Google Play e gli utenti riceveranno l'aggiornamento automaticamente.

Segui le recensioni

Installa l'app Google Play Developer Console sul tuo dispositivo per non perdere una nuova recensione della tua app. Puoi anche visualizzare le statistiche.

Modifica delle password del vault e dell'alias chiave

Non ho dovuto usarlo per alcuni anni, quindi non so se queste informazioni siano aggiornate.

Supponiamo che tu abbia venduto il tuo programma con i codici sorgente a un'altra società. Affinché possa pubblicare gli aggiornamenti del programma, l'azienda deve firmare l'applicazione con la stessa chiave che hai firmato. In caso contrario, il programma sarà considerato diverso e il nome del pacchetto dovrà essere modificato. Ma i vecchi utenti non saranno in grado di ricevere aggiornamenti.

Ma se firmi tutti i tuoi programmi con la stessa chiave e password, ad esempio gatto gatto, quindi l'azienda può firmare le altre tue applicazioni con la stessa chiave inserendo i loro programmi con lo stesso nome del pacchetto e non dimostrerai nulla a nessuno.

Pertanto, è necessario occuparsi di cambiare la chiave per il trasferimento al nuovo proprietario.

Supponiamo che il nostro repository abbia la struttura:

Nome archivio chiavi: old.keystore Password archivio chiavi: cat1 Alias: my_alias Password alias: cat2

Crea una copia del tuo vault e salvalo altrove. Questo avrebbe dovuto essere fatto durante la prima creazione, perché se perdi spazio di archiviazione, non sarai in grado di ripristinare l'accesso ai tuoi programmi durante l'aggiornamento.

Crea di nuovo una copia del tuo repository e rinominalo, ad esempio, nuovo.keystore. Lavoreremo con lui.

Esegui l'utilità strumento chiave con comando:

Keytool -storepasswd -keystore new.keystore

Ti verrà chiesto di inserire la tua password attuale, quindi inserire una nuova password e ripeterla. Approssimativamente così:

Immettere la password dell'archivio chiavi: Nuova password dell'archivio chiavi: Reinserire la nuova password dell'archivio chiavi:

La prima parte dell'attività è stata completata, la password del vault è stata modificata.

Se si desidera modificare anche la password per l'alias, eseguire nuovamente l'utilità con il comando:

Keytool -keypasswd -keystore new.keystore -alias my_name

Ti verrà chiesto di inserire la tua password del vault corrente (la tua nuova password), quindi la password alias. Puoi inserire una nuova password e sostituirà la vecchia password.

Immettere la password dell'archivio chiavi: immettere la password della chiave per

Password alias modificata.

Se cambiare la password non ti basta e vuoi cambiare il nome dell'alias (magari hai usato il nome del tuo gatto preferito, perché gli altri dovrebbero saperlo), allora continuiamo a lavorare.

Eseguiamo il comando:

Keytool -changealias -keystore new.keystore -alias my_alias -destalias my_new_alias

Ti verrà chiesto di inserire la password del vault, quindi la password per il nuovo alias (la password corrente), quindi la nuova password e di ripeterla. Il nome dell'alias verrà modificato.

Quindi, ci sono voluti tre passaggi per creare un nuovo repository e un alias da trasferire a un estraneo. Il nuovo proprietario dovrebbe fare lo stesso per assicurarsi che tu non tragga vantaggio dai file modificati. Tuttavia, questo è il suo problema.

Firmiamo la domanda finita

Un caso del genere può presentarsi quando hai perso il codice sorgente e hai solo APK. Questo è molto probabilmente vero per i pirati che firmano nuovamente altre applicazioni (non farlo con i programmi di altre persone).

Innanzitutto, cambia l'estensione da apk a zip. Elimina la cartella nell'archivio META-INF. Ripristina l'estensione. Hai cancellato la vecchia firma.

Ora devi firmare l'applicazione con una nuova chiave. Inserisci un comando.

jarsigner -keystore keystore-file.jks -storepass keystore_password -keypass alias_password --signedjar firmato-apk-file.apk apk-file.apk alias_name

In caso di esito positivo, riceverai un messaggio che informa che la domanda è stata firmata. Successivamente, eseguiamo un altro comando.

ANDROID_SDK_PATH/build-tools/LAST_BUILD_TOOLS_VERSION/zipalign -v 4 firmato-apk-file.apkaligned-apk-file.apk

Il risultato dovrebbe essere un file APK firmato con la nuova chiave. Non l'ho mai usato da solo.

Archiviazione chiavi di Google

Nel 2017, Google ha aggiunto una nuova opzione per archiviare le chiavi nel cloud. La differenza principale è che firmi l'app con una chiave di caricamento speciale, che Google verifica e rimuove, sostituendola con la chiave di firma dell'app originale che hai fornito.

Ti consente di gestire le chiavi di firma delle app sia per le app nuove che pubblicate, che verranno archiviate da Google nel proprio archivio chiavi. Per partecipare a questo programma, devi iscriverti nella tua Google Play Console. Vale la pena notare che non sarà più possibile cancellarsi da esso.

Questo metodo è molto utile: se l'archivio chiavi viene perso, la firma dell'app di Google Play ti consentirà di reimpostare la chiave per installarne una nuova. Non è necessario ripubblicare l'app con un nuovo nome e chiave del pacchetto.

Lettura aggiuntiva

Android-keystore-password-recover di MaxCamillo - se hai perso la password, prova a utilizzare questo strumento. Non l'ho usato da solo, quindi non lo dirò.

Ultimo aggiornamento: 30/10/2015

Dopo aver creato l'applicazione, testata e debuggata, possiamo iniziare a pubblicarla. L'essenza della pubblicazione è creare un file con l'estensione .apk, che rappresenterà l'applicazione, e il suo successivo posizionamento nel Google Play Market o in altri siti esterni. Per impostazione predefinita, durante il processo di debug e creazione di un'applicazione, il file apk è già creato e possiamo trovarlo nella cartella del progetto lungo il percorso Nome_progetto\app\build\outputs\apk. Per impostazione predefinita, il file è denominato app-debug.apk e rappresenta la versione di debug.

Ma per una pubblicazione completa di questo file potrebbe non essere sufficiente. E dobbiamo ancora fare un po' di preparazione del progetto per il rilascio. Per fare ciò, specifica nel file manifest per l'elemento Gli attributi android:versionCode e android:versionName sono impostati. Anche nel file manifest l'elemento non deve contenere l'attributo android:debuggable

Inoltre, in questa fase, puoi impostare un'icona per l'applicazione che verrà visualizzata nella schermata iniziale del gadget, il nome dell'applicazione (l'attributo android:label sull'elemento) e puoi anche impostare il contratto di licenza.

Il file manifest deve anche definire il nome del pacchetto (l'attributo del pacchetto dell'elemento ), che verrà utilizzato per l'applicazione in seguito. Per impostazione predefinita, quando si sviluppa in Android Studio, i pacchetti di app iniziano con com.esempio. Non dovresti lasciare questo nome, poiché il nome del pacchetto servirà come identificatore univoco per la tua applicazione. Ad esempio, di seguito nel mio caso il nome del pacchetto è "com.maverics.eugene.telephonelist":

Inoltre, se nei file di codice java, il nome del pacchetto all'inizio del file deve corrispondere anche al pacchetto dell'applicazione.

Requisiti di impostazione

Puoi anche impostare i requisiti API durante la fase di pre-release. Ad esempio, la nostra applicazione ha una certa versione minima del sistema operativo Android, quindi possiamo impostare gli attributi corrispondenti sull'elemento nel file manifest

    android:minSdkVersion - versione minima di Android

    android:targetSdkVersion - la versione API ottimale

    android: maxSdkVersion - versione massima del sistema

Ad esempio, supponiamo che la versione minima di Jelly Beans sia 4.1.2 e la versione ottimale sia KitKat 4.4.4:

//.............................

Firma dell'applicazione

Quando tutto è pronto, l'applicazione Android deve essere firmata con un certificato, grazie al quale è possibile identificare l'autore dell'applicazione. Quando testiamo un'applicazione installandola tramite Android Studio su un dispositivo, questa viene firmata automaticamente. Ma per creare una versione di rilascio, dobbiamo eseguire una serie aggiuntiva di azioni.

Quando crei un certificato, tieni presente che quando aggiorni l'applicazione, il sistema confronterà i certificati della vecchia e della nuova versione. E l'aggiornamento avverrà se i certificati di entrambe le versioni corrispondono. Ma se la nuova versione viene firmata con un nuovo certificato, l'applicazione verrà trattata come completamente nuova, non correlata alla vecchia versione e rappresentando un'applicazione completamente diversa. In questo caso, per installarla, la nuova versione dovrà avere un nome di pacchetto diverso da quello precedente.

Innanzitutto, in Android Studio, seleziona Crea -> Genera APK firmato dal menu. Si aprirà la finestra della procedura guidata:

Fare clic sul pulsante Crea nuovo.... Successivamente, si aprirà una finestra per la creazione di una chiave:

Immettere il percorso del file del certificato di rete da creare nel campo Percorso archivio chiavi. Se la cartella specificata non esiste, crearla o definire una cartella esistente.

Specificare la password nel campo Password/Conferma.

Specificare un alias nel campo Alias. Puoi inserire un nome arbitrario.

Nel campo Nome e Cognome, inserisci il nome e il cognome. E poi scriviamo l'unità, l'organizzazione, la città, il paese e il codice del paese.

Alla fine, fai clic su OK.

Successivamente, la prima finestra verrà automaticamente aggiornata:

La finestra finale ci mostrerà il percorso della directory in cui si troverà l'applicazione apk firmata nella versione di rilascio. Fare clic su Fine.

Ora, nel percorso specificato, puoi trovare un apk firmato, che avrà il nome app-release.apk:

Possiamo rinominare il file, mantenendo la sua estensione e caricarlo sul Play Market o su qualsiasi sito, oppure scaricarlo direttamente sul tuo dispositivo mobile. Dopo aver scaricato sul tuo telefono / tablet, fai clic su di esso e, utilizzando il programma di installazione del pacchetto standard, l'applicazione verrà installata. È vero, qui dobbiamo anche tenere conto del fatto che se installiamo l'applicazione non dal Play Market, nelle impostazioni dobbiamo consentire l'installazione da altre fonti - Sicurezza-> Fonti sconosciute (Consenti l'installazione di applicazioni da altre fonti)