web-dev-qa-db-fra.com

app-release-unsigned.apk n'est pas signé

J'ai téléchargé le fichier Zip d'une application Android sur github et j'essaie de l'exécuter, mais je reçois une boîte de dialogue avec ce message.

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

J'utilise Android Studio ... que dois-je faire?

138
andrew

Si quelqu'un veut déboguer la compilation release à l'aide d'Android Studio, procédez comme suit:

  1. Définissez la variante de construction en mode de libération.

 enter image description here

  1. Cliquez avec le bouton droit sur app dans le volet de navigation de gauche, cliquez sur Ouvrir les paramètres du module

  2. Allez à l'onglet de signature. Ajoutez une configuration de signature et remplissez les informations. Sélectionnez également votre trousseau.

 enter image description here

  1. Accédez à l'onglet Type de construction. Sélectionnez le mode de validation et définissez:

-Debugable à true.

-Signing Config à la config. (Celui que vous venez de créer).

 enter image description here

Synchronisez votre diplôme. Prendre plaisir!

348
NightFury

Assurez-vous que build variante est défini sur debug (et non release) dans Android Studio (consultez le panneau build variants).

S'il est défini sur debug, il doit automatiquement signer l'application avec le magasin de clés de débogage généré automatiquement, sans modifier les scripts de construction.

Cependant, vous devrez créer et configurer un fichier de clés spécifique pour la publication.

Documentation officielle, couvrant les modes de débogage et de publication: https://developer.Android.com/tools/publishing/app-signing.html

87
Stéphane

Toujours signer votre construction en utilisant votre script DSL build.gradle comme ceci:

    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
        }
    }
}

Si vous souhaitez comprendre un peu plus le système de génération Gradle associé à Android Studio, il vous suffit de vous rendre sur:

Guide de l'utilisateur Gradle Plugin

43
Martin Revert

J'ai réussi à déboguer l'APK signé, suivez cette procédure: -

  1. Choisissez la version "release" dans la barre d'outils "Build Variant" 
  2. Dans le Build.gradle pour le module, définissez debuggable true pour le type de build de version 
  3. Allez dans Fichier-> Structure du projet-> sous l'onglet de signature, remplissez toutes les informations-> Sous Saveurs Onglet-> Choisissez la signature. Config Vous venez de créer
  4. Définir les points d'arrêt
  5. Exécuter l'application en mode débogage
30
Mohammad Khan

si vous voulez exécuter l'application dans debug mode

1) Regardez en bas à gauche, au-dessus des favoris il y a Variantes de construction  

2) Cliquez sur Variantes de construction. Cliquez sur release et choisissez debug

ça marche parfait !!!

13
Samir Mangroliya

signatureConfigs devrait être avant 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
        }
    }
5
NickUnuchek

Pour des raisons de sécurité, vous ne pouvez pas installer un apk non signé sur Android. Donc, si vous n’avez que l’apk non signé: vous devez le signer. Voici comment faire cela: link

Notez que vous pouvez signer l'apk avec un certificat auto-signé.

Une alternative peut être soit:

  • télécharger l'apk signé si disponible.
  • pour télécharger les sources, compilez-les (avec Android-Studio ou graduel ou ...). Il produira plusieurs apks et l'un d'entre eux sera signé avec votre clé de débogage (vous pourrez donc l'installer)
5
ben75

Le projet d'application que vous avez téléchargé peut inclure une information signée dans le fichier build.gradle. Si vous avez vu des codes comme ceux-ci:

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

vous pouvez les supprimer et réessayer. 

3
Alex Tam

Dans la barre d’outils de la fenêtre d’outil, sélectionnez Variantes de construction.

2
Bhaskar Vaddadi

Mon problème a été résolu en changeant la variante de construction suggérée par Stéphane, si quelqu'un avait du mal à trouver les "variantes de construction" comme je l'ai fait ici, c'est une capture d'écran où vous pouvez la trouver.

 enter image description here

2
yehyatt

Pour le grade 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")
    }
}
1
Evgenii Vorobei

j'apparais aussi ce problème et mon code ci-dessous

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

la raison est erreur de nom de propriété, il devrait s'agir de keyPassword pas keypassword

0
xmliu

Comment j'ai résolu ce problème

Cette erreur se produit car vous avez défini vos variantes de construction sur le mode de publication. définissez-le en mode de construction et exécutez à nouveau le projet.

Si vous souhaitez exécuter le mode de publication, générez un apk signé comme nous le faisons normalement lors de la publication de l'application.

0
Benja

Ma solution a été de changer le nom de ma config de signature de "config" par défaut à "debug". Pour vérifier, je l'ai changé en un autre nom aléatoire et j'ai encore l'erreur, puis je l'ai remis à "debug" et l'erreur a disparu. Donc, même si cela semble artificiel et que je n'ai pas tendance à croire que c'est toute l'histoire, essayez cette solution.

0
elliptic1

Ce qui a finalement fonctionné pour moi, et je ne sais pas pourquoi, c'est:

  • Je suis allé à LastPass (le service que j'utilise pour conserver tous mes mots de passe)
  • Sélectionnez mon mot de passe en plaçant le curseur en haut du mot de passe et en double-cliquant
  • Une fois sélectionné, appuyez sur cmd C pour copier
  • Je suis allé à Android étudier et cmd V à coller

Remarquez que j'ai essayé de copier plusieurs fois en sélectionnant le mot de passe en cliquant à la fin du mot de passe et en sélectionnant le mot de passe en déplaçant la souris.

C'est étrange mais cela n'a fonctionné qu'en double-cliquant sur le mot de passe pour le copier.

De plus, j'ai utilisé la méthode Ouvrir les paramètres du module> Signature ... expliquée par @NightFury dans cet article.

0
Rudy Espadas