我正在尝试为我的应用生成已签名的APK。我使用Android Studio生成发布APK:build>生成签名APK。然后我为我的密钥库,别名和密码弹出一个弹出窗口。这个过程过去一直有效,但我怀疑,在最近升级了工具和其他支持后,它停止了工作。如何让Android Studio生成带有效签名的签名APK?
当我使用jarsigner检查APK时,从Java 1.8版本开始,我收到消息:
jar未签名。 (签名丢失或无法解析)
如果我使用jarsigner对应用进行签名,则会在大多数设备上安装,但不会在运行Android 4.1的设备上安装。我使用的命令是:
jarsigner -verbose -keystore "...path...\perinote-release.keystore" app-release.apk perinote
此外,如果我添加到jarsigner选项:
-digestalg SHA1 -sigalg MD5withRSA
它被Android 4.1设备接受。我在另一篇帖子no manifest. jar is unsigned. (signatures missing or not parsable)中找到了这些选项,表明在某些时候,从SHA1到SHA2的加密发生了变化。
这是" app"
的build.gradleapply plugin: 'com.android.application'
android {
signingConfigs {
release {
keyAlias 'perinote'
storeFile file('...path.../perinote-release.keystore')
}
}
compileSdkVersion 24
buildToolsVersion "25.0.0"
compileOptions.encoding = 'UTF-8'
defaultConfig {
applicationId "com.perinote.camera"
minSdkVersion 15
targetSdkVersion 24
renderscriptTargetApi 20
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
}
}
lintOptions {
checkReleaseBuilds false
}
}
dependencies {
compile 'com.android.support:support-v4:24.0.0'
testCompile 'junit:junit:4.12'
}
如何配置Android Studio以使用SHA1,以便我的应用程序可以继续在Android 4.1设备上运行?或者我还应该做些什么呢?
编辑:我意识到我应该切换到SHA256。但我仍然需要一种方法让我的应用程序在Android 4.1上运行。我是否需要生成两个版本并发布它们?
答案 0 :(得分:3)
要获得两个签名版本,只需选中第二个生成签名APK 对话框底部的V1和V2复选框。
我没有注意到在更新AS之后这个对话框发生了变化并且直接吹过它。