gpt4 book ai didi

android - gradle assembleRelease 使用错误的 key /证书

转载 作者:太空宇宙 更新时间:2023-11-03 11:13:07 28 4
gpt4 key购买 nike

我有一个基于 gradle 的 android 项目并试图生成一个发布 apk。但是,gradle 似乎以某种方式选择了错误的 key /证书。

这是我在 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
}
}

运行后

gradlew assembleRelease

并从 .apk 中取出 META-INF/CERT.RSA 我运行以下命令:

keytool -list -keystore mykey.jks

keytool -printcert -v -file CERT.RSA

但它们会生成具有不同证书指纹的输出。尝试使用来自另一个使用相同 key (但不是使用 gradle)签名的 apk 的证书会产生正确的证书指纹。

Gradle 似乎可以很好地获取 keystore (更改密码或位置或别名会使它停止工作)。

我很困惑,因为我不想向商店发布一些用未知 key 签名的东西,然后就无法更新它。我没有在 gradle 中明确定义的调试 key 。

更新:这与 keystore 有关。使用新的 keystore 和 key 尝试相同的 gradle 代码效果很好。这个有问题的 keystore 是从 pkcs#12 格式(.p12 文件)导入的。不过,使用 Intellij 或 jarsigner 可以很好地处理这个 keystore ,只是 gradle 代码有不同的输出——而且似乎只有从 key 生成的证书不同。

最佳答案

在我的例子中,我不知道我正在使用调试 keystore 文件进行发布。在项目/android/app/build.gradle

buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://facebook.github.io/react-native/docs/signed-apk-android.
signingConfig signingConfigs.debug // <-- need to be changed with
//the line below
//signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}

关于android - gradle assembleRelease 使用错误的 key /证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21493951/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com