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?
Si quelqu'un veut déboguer la compilation release à l'aide d'Android Studio, procédez comme suit:
Cliquez avec le bouton droit sur app dans le volet de navigation de gauche, cliquez sur Ouvrir les paramètres du module.
Allez à l'onglet de signature. Ajoutez une configuration de signature et remplissez les informations. Sélectionnez également votre trousseau.
-Debugable à true.
-Signing Config à la config. (Celui que vous venez de créer).
Synchronisez votre diplôme. Prendre plaisir!
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
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:
J'ai réussi à déboguer l'APK signé, suivez cette procédure: -
Build.gradle
pour le module, définissez debuggable true
pour le type de build de version 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 !!!
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
}
}
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:
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.
Dans la barre d’outils de la fenêtre d’outil, sélectionnez Variantes de construction.
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")
}
}
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
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.
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.
Ce qui a finalement fonctionné pour moi, et je ne sais pas pourquoi, c'est:
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.