app-versione-senza firma.apk non è firmato

Ho scaricato il file zip di un app Android su github e sto cercando di eseguirlo, ma mi esce una finestra con questo messaggio

app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.

Sto usando Android Studio.
Cosa dovrei fare?

  • Se ho solo l’apk e non il codice sorgente (ad esempio, se I download di app-versione-senza firma.apk), quindi come faccio a risolvere questo problema ? Tutte le soluzioni esistenti punto per la modifica del codice sorgente di Android Studio.
InformationsquelleAutor andrew | 2014-07-28

 

15 Replies
  1. 379

    Se qualcuno vuole debug rilascio costruire l’utilizzo di Android Studio, attenersi alla seguente procedura:

    1. Set di costruire di variante in modalità release.

    app-versione-senza firma.apk non è firmato

    1. Fare clic destro su di app nel riquadro di navigazione di sinistra, fare clic su Aprire le Impostazioni del Modulo di.

    2. Vai alla Scheda Firma. Aggiungere una firma config e compilare le informazioni. Selezionare il portachiavi come bene.

    app-versione-senza firma.apk non è firmato

    1. Andare a Tipo di Build scheda. Selezionare la modalità di rilascio e di set:

    -Debuggable per vero.

    Firma di Config per il config. (Quella che avete appena creato).

    app-versione-senza firma.apk non è firmato

    Sincronizzare il tuo gradle. Godere di!

    • Dobbiamo impostare Debuggable false quando generando in realtà la versione APK per prod? o studio di farlo da sola?
    • È necessario impostare debuggable false pur facendo rilascio apk
    • Si potrebbe pensare che sarebbe di default per il primo creato da chiedersi perché non… forse sarebbe male per alcuni di firmare i pacchetti non hanno voluto firmare… ma grazie, l’uomo che ho dimenticato di impostare il tipo di generazione “Firma Config” e fino a quando la schermata, non mi ricordare
    • c’è NON c’è BISOGNO per impostare Debuggable true, (a meno che davvero inteso così).
    • Si dovrebbe notare, tuttavia, che, dopo aver impostato una configurazione per il tipo di generazione, di tutte le chiavi di informazioni (incluse le password) apparirà nel gradle file…
    • C’è un problema con la modifica firma configurazioni tramite l’Android Studio dell’interfaccia utente. O questo è quello che trovo. COME aggiorna il gradle.file di build, l’eliminazione di alcuni dipendenze (che sono stati aggiunti manualmente per gradle.costruire). Se, COME mostra un errore dopo l’aggiornamento la firma di configurazioni, basta confrontare la vostra build.gradle con il precedente nella storia locale.
    • ha lavorato bro, ct, +1
    • Grazie, così Tanto, QUESTO È IL PIÙ alla moda!
    • Per l’ultima immagine mi aiuta a dare SHA1 tasto per la modalità di rilascio. Più soluzione per un commento. grazie
    • “2 – fare clic Destro sull’app nel riquadro di navigazione di sinistra, fare clic su Apri Impostazioni del Modulo.” NON funziona, nel caso In cui uno di fronte lo stesso problema, potete selezionare “file” -> “struttura di Progetto” O premere “Ctrl + Alt + Shift + S”
    • non ha funzionato, ora mi da il seguente errore : Impossibile leggere la chiave keyAlias da negozio
    • Che versione stai usando ?
    • versione 3.1.2
    • Bravo! L’unica soluzione che ha funzionato per me. Voi ragazzi sono incredibili.
    • Questo Dovrebbe Essere Accettato Risposta

  2. 91

    Assicurarsi che il costruire variante è impostato per debug (e non rilascio) in Android Studio (controllare il costruire varianti pannello).

    Se impostato per eseguire il debug, esso dovrebbe automaticamente firmare l’app con la funzione di auto-generato debug keystore, senza dover modificare lo script di build.

    Tuttavia è necessario creare e configurare una specifica keystore per il rilascio.

    Documentazione ufficiale, che copre il debug e release modalità: https://developer.android.com/tools/publishing/app-signing.html

  3. 48

    Sempre segno di compilazione utilizzando la vostra build.gradle DSL script come questo:

        android {
        signingConfigs {
            debug {
                storeFile file("debug.keystore")
            }
    
            myConfig {
                storeFile file("other.keystore")
                storePassword "android"
                keyAlias "androidotherkey"
                keyPassword "android"
            }
        }
    
        buildTypes {
            bar {
                debuggable true
                jniDebugBuild true
                signingConfig signingConfigs.debug
            }
            foo {
                debuggable false
                jniDebugBuild false
                signingConfig signingConfigs.myConfig
            }
        }
    }

    Se volete capire un po ‘ più di Gradle sistema di generazione associato ad Android Studio basta pagare una visita a:

    Gradle Plugin Guida Per L’Utente

    • Ma perché ho a che fare? Sulla guida dicono “per impostazione predefinita, c’è una configurazione di debug che è il programma di installazione per utilizzare un debug keystore, con una password conosciuta e una chiave di default con una password conosciuta.”. Non ho problemi con altre applicazioni.
    • Se la tua password è ok e il debug.keystore è raggiungibile, non so. I soliti problemi che ho visto in passato e con questo sono permesso di un file o di una directory di autorizzazioni. Forse il progetto che hai scaricato è talmente semplice mantenere aggiornati Android Studio di file locali, che punti ad altri debug keystore che vostro. In ogni caso, il Gradle registro deve dimostrare l’errore di percorso, si prega di includere il log per ulteriori informazioni.
    • Hmmm, non funziona per me. Non gradle errori, ma ancora ottenere la firma di errore (e si è puntato sul mio keyfile).
    • Ciao Brian! Puoi provare a eliminare il debug.keystore? Quindi avviare un nuovo progetto fittizio e un nuovo keystore deve essere generato. Dopo di che, riaprire il progetto e provare. È l’unica cosa che posso consigliare, se niente altro che ha commentato prima di esito negativo.
    • Non è debug.keystore situato in .android cartella? Si potrebbe desiderare di dare il percorso completo a meno che non si è spostato nel progetto
  4. 33

    Mi era successo in grado di eseguire il debug APK firmato , Seguire questa procedura:-

    1. Scegliere “release” versione in “Costruire in Variante” della Barra degli strumenti
    2. In Build.gradle per il modulo di debuggable true per la build di rilascio tipo
    3. Andare su File->Struttura di Progetto->sotto la firma scheda riempire tutte le info->Sotto Sapori
      scheda->Scegli la firma Config che Hai appena creato
    4. Impostare i punti di interruzione
    5. Eseguire l’applicazione in modalità debug
    • Non funziona per me. Ho impostato debuggable vero per la messa in scena di variante, ma ancora, deve firmare l’apk prima di costruire.
    • ha funzionato per me, grazie.
  5. 13

    se si desidera eseguire l’applicazione in debug modalità

    1), Guardare in basso a Sinistra, sopra Preferiti c’è Costruire Varianti

    2) Cliccate su crea Varianti. Fare clic sul rilascio e scegliere debug

    funziona perfettamente !!!

  6. 6

    signingConfigs dovrebbe essere prima di buildTypes

    signingConfigs {
            debug {
                storeFile file("debug.keystore")
            }
    
            myConfig {
                storeFile file("other.keystore")
                storePassword "android"
                keyAlias "androidotherkey"
                keyPassword "android"
            }
        }
    
        buildTypes {
            bar {
                debuggable true
                jniDebugBuild true
                signingConfig signingConfigs.debug
            }
            foo {
                debuggable false
                jniDebugBuild false
                signingConfig signingConfigs.myConfig
            }
        }
  7. 5

    Per motivi di sicurezza, non è possibile installare un unsigned apk su Android. Quindi se hai solo il unsigned apk: si deve firmare. Ecco come fare : link

    Di notare che è possibile firmare l’apk con un certificato auto-firmato.

    Un’alternativa può essere :

    • per scaricare l’apk firmato, se disponibile.
    • scaricare i sorgenti, compilarli (con Android Studio o gradle o …). Produrrà i pacchetti apk e uno di loro sarà firmato con il debug-chiave (e quindi si sarà in grado di installarlo)
    • Non sono certo io a sto comprensione. Ho scaricato lo zip del codice dell’app e sto provando a compilare con Android Studio…
    • quindi, è necessario compilare una versione firmata. Di solito la versione firmata è costruire, al tempo stesso, e si trova nella stessa directory senza segno uno.
    • Se ho generato un apk firmato funziona, ma non posso farlo ogni volta che devo testare l’app. Mi manca qualcosa qui, voglio solo provare l’app, come faccio io con le mie applicazioni…
  8. 5

    Il progetto di app che hai scaricato potrebbe includere una firma info nel file di costruire.gradle. Se avete visto i codici di come questi:

    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            signingConfig signingConfigs.release
        }
    }

    si potrebbe eliminare e provare di nuovo.

  9. 2

    Strumento barra della finestra selezionare la generazione di Varianti
    Cambiamento di Costruire in Variante dalla Versione di Debug

  10. 2

    Il mio problema è stato risolto modificando il build variante come suggerito da Stéphane , se qualcuno era in difficoltà a trovare la “Costruire varianti” come ho fatto qui è una schermata dove si può trovare .

    app-versione-senza firma.apk non è firmato

    • Mi trovo di fronte a problemi dopo il cambio di costruire variante di Debug per il Rilascio
  11. 1

    Come ho risolto questo

    Questo errore si verifica perché è necessario impostare il vostro costruire varianti alle modalità di rilascio. set di costruire e la modalità di esecuzione del progetto di nuovo.

    Se si desidera eseguire in modalità di rilascio, è sufficiente generare un apk firmato il modo con cui lo facciamo normalmente, quando si rilascia l’app

  12. 0

    La mia soluzione è stata quella di cambiare il nome della mia firma config dal menu predefinito “config” di “debug”. Per verificare, ho cambiato qualche altro nome a caso e ottenuto di nuovo l’errore, e poi cambiato di nuovo “debug” e l’errore è sparito. Così, mentre sembra artificiale e tendo a non credere che questo è tutta la storia, dare questa soluzione una prova.

  13. 0

    mi appaiono anche questo problema,e il mio codice qui sotto

            storeFile file(properties.getProperty("filepath"))
            storePassword properties.getProperty("keypassword")
            keyAlias properties.getProperty("keyAlias")
            keyPassword properties.getProperty("keypassword")

    il motivo è di proprietà di errore di nome,dovrebbe essere keyPassword non keypassword

  14. 0

    Che finalmente ha funzionato per me, e non ho idea del perché, è:

    • Andato a LastPass (il servizio che uso per tenere tutte le mie password)
    • Selezionare la mia password mettendo il cursore sulla parte superiore della password, quindi fare doppio clic
    • Una volta che ho selezionato premere cmd + C per copiare
    • Andato a Android studio e di comando + V per incollare

    Notare che ho provato a copiare molte volte selezionando la password cliccando alla fine della password e selezionando la password muovendo il mouse.

    È strano, ma funzionava solo con un doppio clic sulla parte superiore della password per copiarlo.

    Anche io ho usato il Modulo Apri Impostazioni > Firma… metodo spiegato da @NightFury su questo post.

  15. 0

    Per gradle Kotlin dsl

    signingConfigs {
        create("releaseConfig") {
            storeFile = file("your keystore file path")
            storePassword = "storePassword"
            keyAlias = "keyAlias"
            keyPassword = "keyPassword"
        }
    }
    buildTypes {
        getByName("release") {
            signingConfig = signingConfigs.getByName("releaseConfig")
            isMinifyEnabled = true
            isShrinkResources = true
            proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
        }
    }

Lascia un commento