rad*_*adu 5 android signing keytool gradle android-studio
我有一个基于 gradle 的 android 项目并试图生成一个发布 apk。但是,似乎 gradle 以某种方式获取了错误的密钥/证书。
这是我在 build.gradle 中的内容:
signingConfigs {
release {
storeFile file("mykey.jks")
storePassword "mypass"
keyAlias "mykey.key"
keyPassword "mypass"
}
}
buildTypes {
release {
debuggable false
jniDebugBuild false
runProguard true
proguardFile getDefaultProguardFile('proguard-android.txt')
signingConfig signingConfigs.release
}
}
Run Code Online (Sandbox Code Playgroud)
跑完之后
gradlew assembleRelease
Run Code Online (Sandbox Code Playgroud)
并从 .apk 中取出 META-INF/CERT.RSA 我运行以下命令:
keytool -list -keystore mykey.jks
Run Code Online (Sandbox Code Playgroud)
和
keytool -printcert -v -file CERT.RSA
Run Code Online (Sandbox Code Playgroud)
但它们产生具有不同证书指纹的输出。尝试使用来自另一个使用相同密钥(但不是使用 gradle)签名的 apk 的证书会产生正确的证书指纹。
Gradle 似乎可以很好地获取密钥库(更改密码或位置或别名使其停止工作)。
我很困惑,因为我不想向商店发布一些用未知密钥签名的东西,然后无法更新它。我没有在 gradle 中明确定义的调试键。
更新:这与密钥库有关。使用新的密钥库和密钥尝试相同的 gradle 代码可以正常工作。这个有问题的密钥库是从 pkcs#12 格式(.p12 文件)导入的。不过,使用 Intellij 或 jarsigner 可以很好地处理此密钥库,只是 gradle 代码具有不同的输出 - 似乎只有从密钥生成的证书不同。
| 归档时间: |
|
| 查看次数: |
2972 次 |
| 最近记录: |