我在github上下载了一个Android应用程序的zip文件,我试图运行它,但我得到了一个带有此消息的对话框
app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.
我使用Android Studio。 我该怎么办?
我在github上下载了一个Android应用程序的zip文件,我试图运行它,但我得到了一个带有此消息的对话框
app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.
我使用Android Studio。 我该怎么办?
当前回答
用于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")
}
}
其他回答
出于安全原因,您不能在Android上安装unsigned apk。所以如果你只有未签名的apk:你必须签署它。下面是如何做到这一点:链接
注意,您可以使用自签名证书对apk进行签名。
备选方案可以是:
下载已签名的apk(如有)。 下载源代码,编译它们(用Android-Studio或gradle或…)它将生成多个apk,其中一个将与您的调试密钥(因此您将能够安装它)进行签名。
始终使用您的构建对您的构建进行签名。gradle DSL脚本是这样的:
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
}
}
}
如果你想了解更多与Android Studio相关的Gradle构建系统,请访问:
Gradle插件用户指南
我的解决方案是将签名配置的名称从默认的“config”更改为“debug”。为了验证,我将其更改为其他一些随机名称并再次得到错误,然后将其更改为“调试”,错误就消失了。所以,虽然这看起来是人为的,我倾向于不相信这是全部的故事,尝试一下这个解决方案。
确保构建变量在Android Studio中被设置为调试(而不是发布)(检查构建变量面板)。
如果设置为调试,它应该自动使用自动生成的调试密钥库对应用程序进行签名,而不需要编辑构建脚本。
但是,您将需要创建和配置一个特定的密钥存储库来发布。
官方文档,包括调试和发布模式:https://developer.android.com/tools/publishing/app-signing.html