如何使用单个密钥库对多种风格APK进行签名



我有一个应用程序的11种口味和一个应用程序的密钥库。我希望使用一个密钥库来签名多种产品口味,如下所示。

signingConfigs {
release {
storeFile file("Users/avalon/retailr.jks")
storePassword storePassword
keyAlias "alias"
keyPassword keyPassword
}
}
...
...
productFlavors{
flavorone {
...
signingConfig signingConfigs.release
}
flavortwo {
...
signingConfig signingConfigs.release
}

}

然而,我一直得到一个错误在运行的配置,The apk for your currently selected variant cannot be signed. Please specify a signing configuration for this variant (flavorone-release)。这是否意味着我必须为应用程序做11个不同的密钥库配置,或者有一种方法可以使用一个?

你试过这样做吗?

signingConfigs {
configFlavor1 {
keyAlias 'abcdef'
keyPassword 'password'
storeFile file('keystore.jks')
storePassword 'password'
}
configFlavor2 {
keyAlias 'abcdef'
keyPassword 'password'
storeFile file('keystore.jks')
storePassword 'password'
}
}

buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
productFlavors.flavor1.signingConfig signingConfigs.configFlavor1

productFlavors.flavor2.signingConfig signingConfigs.configFlavor2
}

您不必为每个变体添加多个配置。在app/build中。你可以在Gradle中提到如下的构建类型

buildTypes {
release {
signingConfig signingConfigs.release
}
}

在你的signinconfig部分,你可以像这样写

signingConfigs {
release {
keyAlias 'keyAlias'
keyPassword 'keyPassword'
storePassword 'storePassword'
storeFile file("${rootDir}/keystores/app.keystore")
}
}

最新更新