Android 如何使用不同的签名凭据在终端中构建apk
我有build.gradle,它可以有Android 如何使用不同的签名凭据在终端中构建apk,android,android-gradle-plugin,build.gradle,apk,Android,Android Gradle Plugin,Build.gradle,Apk,我有build.gradle,它可以有签名配置,但我想忽略此设置并使用其他凭据。我不想编辑或替换build.gradle中的值 gradle是否具有与gradle assemble-storeFile='PATH'-storePassword='password'-keyalis='alias'-keyPassword='password'相同的命令 如果无法使用其他签名配置创建已签名的apk,是否可以创建未签名的apk?没有采用签名配置的gradle build命令。 根据您在问题中提到的要求
签名配置
,但我想忽略此设置并使用其他凭据。我不想编辑或替换build.gradle中的值
gradle是否具有与gradle assemble-storeFile='PATH'-storePassword='password'-keyalis='alias'-keyPassword='password'
相同的命令
如果无法使用其他
签名配置创建已签名的apk,是否可以创建未签名的apk?没有采用签名配置的gradle build命令。
根据您在问题中提到的要求,您有两种选择
1.编辑build.gradle
以创建多个构建风格,并为每个构建风格提供不同的签名详细信息
android {
signingConfigs {
abc {
keyAlias 'abc'
keyPassword 'yyy'
storeFile file('keystore/astro.keystore')
storePassword 'zzz'
}
xyz {
keyAlias 'xxx'
keyPassword 'xxx'
storeFile file('keystore/sample.keystore')
storePassword 'xxx'
}
//add another block for new customer
}}
使用不同的签名配置创建keystore属性文件的多个副本,如果要使用keystore.properties文件的一个特定副本,请将其重命名为“keystore.properties”
def keystorePropertiesFile=rootProject.file(“keystore.properties”)
我建议您使用。它是清洁剂和标准溶液
但是,如果要使用命令行命令,则可以在gradle脚本的项目
变量中访问通过-p
参数在命令行中传递给gradle的所有属性。
你可以这样做:
gradle assembleRelease -PmyKeyPassword='xxx' -PmyStorePassword='xxx' -PmyKeyAlias='xxx' -PmyStoreFile='...xxx.keystore'
signingConfigs {
release {
storeFile project.hasProperty('myStoreFile') ? project.myStoreFile : 'default'
//..
}
}
然后在build.gradle
中定义
signingConfigs {
release {
storeFile project.mystoreFile
storePassword project.myStorePassword
keyAlias project.myKeyAlias
keyPassword project.myKeyPassword
}
}
请注意,因为如果不在gradle命令中指定键(在我看来不是很好),它可能会导致错误。
您可以通过检查参数(使用project.hasProperty(xxx)
方法)并在build.gradle
中定义默认值来缓解问题
signingConfigs {
release {
storeFile project.mystoreFile
storePassword project.myStorePassword
keyAlias project.myKeyAlias
keyPassword project.myKeyPassword
}
}
诸如此类:
gradle assembleRelease -PmyKeyPassword='xxx' -PmyStorePassword='xxx' -PmyKeyAlias='xxx' -PmyStoreFile='...xxx.keystore'
signingConfigs {
release {
storeFile project.hasProperty('myStoreFile') ? project.myStoreFile : 'default'
//..
}
}
@Gabriele,多亏了你,现在我知道了使用“gradlew”的命令行参数选项格拉德卢,救命。