我在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。 我该怎么办?
当前回答
确保构建变量在Android Studio中被设置为调试(而不是发布)(检查构建变量面板)。
如果设置为调试,它应该自动使用自动生成的调试密钥库对应用程序进行签名,而不需要编辑构建脚本。
但是,您将需要创建和配置一个特定的密钥存储库来发布。
官方文档,包括调试和发布模式:https://developer.android.com/tools/publishing/app-signing.html
其他回答
如果有人想使用Android Studio调试发布版本,请遵循以下步骤:
将构建变体设置为发布模式。
右键单击左侧导航窗格中的应用程序,单击打开模块设置。 进入签名标签。添加签名配置并填写信息。选择你的钥匙链。
转到构建类型选项卡。选择释放模式并设置:
-可调试为true。
-将Config签名到Config。(你刚创建的那个)。
同步你的gradle。享受吧!
如果任何人想使用Android Studio 3.5调试和发布单独的构建变体,请遵循以下步骤: 1. 将构建变体设置为发布模式。
进入“文件>>项目结构” 选择模块,然后签名配置 单击签名配置下的加号图标
选择发布部分,并提供您的发布应用程序信息,然后应用和确定。
回到你的应用级别构建。gradle和改变你的buildTypes >“发布”部分如下截图。
然后运行你的项目。快乐的编码。
最后对我有用的,我也不知道为什么,是:
去了LastPass(我用来保存所有密码的服务) 把光标放在密码上方,双击,选择我的密码 一旦选择,我按cmd C复制 切换到Android study,点击cmd V进行粘贴
请注意,我多次尝试通过在密码末尾单击并移动鼠标选择密码来复制密码。
这很奇怪,但它只能通过双击密码顶部来复制它。
我也使用了打开模块设置>签名…方法由@NightFury在这篇文章中解释。
始终使用您的构建对您的构建进行签名。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插件用户指南
用于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")
}
}