Android Google Play-上载新APK失败-具有指纹的不同证书
我在生成一个新的apk时遇到问题,我想上传到Google Play store 最近,我选择使用gradle直接签署apk发行版。为此,我正在阅读一个属性文件,其中包含有关用于签署apk的密钥库的所有详细信息。 之前,我使用IntelliJ中的向导生成apk版本 似乎向导在apk上的签名与gradle不同,因此我无法将新的apk上传到Google Play PS:gradle生成的apk位于[根项目][根模块]\build\outputs\apk中\Android Google Play-上载新APK失败-具有指纹的不同证书,android,intellij-idea,gradle,apk,release,Android,Intellij Idea,Gradle,Apk,Release,我在生成一个新的apk时遇到问题,我想上传到Google Play store 最近,我选择使用gradle直接签署apk发行版。为此,我正在阅读一个属性文件,其中包含有关用于签署apk的密钥库的所有详细信息。 之前,我使用IntelliJ中的向导生成apk版本 似乎向导在apk上的签名与gradle不同,因此我无法将新的apk上传到Google Play PS:gradle生成的apk位于[根项目][根模块]\build\outputs\apk中\ 是否有人知道我做错了什么,或者gradle是
是否有人知道我做错了什么,或者gradle是否使用其他方法对apk进行签名,从而使其与通过向导签名的apk不同。我的问题似乎是如何实现build.gradle。我修复了它,当您想要为每种口味拥有不同的密钥库时,它应该是这样的:
signingConfigs {
println 'Sign apk config'
falvor1 {
/** Details for signing the application */
def props = new Properties()
props.load(new FileInputStream(rootProject.file("release.properties.flavor1")))
storeFile file(rootProject.file(props.keyStore))
storePassword props.keyStorePassword
keyAlias props.keyAlias
keyPassword props.keyAliasPassword
}
flavor2 {
/** Details for signing the application */
def props = new Properties()
props.load(new FileInputStream(rootProject.file("release.properties.flavor2")))
storeFile file(rootProject.file(props.keyStore))
storePassword props.keyStorePassword
keyAlias props.keyAlias
keyPassword props.keyAliasPassword
}
}
/** Add product flavours for all variants of application */
productFlavors {
flavor1 {
// Update the application ID/ Package name
applicationId "com.my.application.flavor1"
/* Update the version code & version name */
versionCode 100
versionName "1.0.0.1"
}
flavor2 {
// Update the application ID/ Package name
applicationId "com.my.application.flavor2"
/* Update the version code & version name */
versionCode 200
versionName "2.0.0.2"
}
}
buildTypes {
debug {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
zipAlign true
}
release {
//Only use the release key on a release buildType
productFlavors.flavor1.signingConfig signingConfigs.flavor1
productFlavors.flavor2.signingConfig signingConfigs.flavor2
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
zipAlign true
}
}
release.properties.flavor结构
// Name of the keystore file
keyStore=flavor1.keystore
// keystore password
keyStorePassword=flavor1pass
// Key alias
keyAlias=flavor1_alias
// Key password
keyAliasPassword=flavor1pass
在确定签名者、验证证书等现有问题上,您可能会发现一些有用的东西。运行“jarsigner-verify-verbose-certs my.apk”命令时,我发现来自gradle的apk登录过程出错了。它总是只获取最新的密钥库文件。我将发布更新后的build.gradle文件,该文件针对每种口味使用不同的密钥库。