无需键入密钥即可生成已签名的 apk
Generate signed apk without typing key
首先是我的登录配置:
signingConfigs {
development {
storeFile file("mykey.jks") //Path to the keystore file
keyAlias "mykey"
storePassword "mykeydev"
keyPassword "mykeydev"
}
production {
storeFile file("mykey.jks") //Path to the keystore file
keyAlias "mykey"
storePassword "mykeyprod"
keyPassword "mykeyprod"
}
}
现在我的口味:
productFlavors {
development{
applicationId "br.com.myapp.dev"
signingConfig signingConfigs.development
resValue "string", "app_name", "DEV"
}
production {
applicationId "br.com.myapp"
signingConfig signingConfigs.production
resValue "string", "app_name", "PROD"
}
}
我有 buildTypes
这个:
buildTypes {
release {
minifyEnabled false
productFlavors.production.signingConfig signingConfigs.production
productFlavors.development.signingConfig signingConfigs.development
}
}
我的问题是,如果所有密钥和内容都在我的 .gradle 中,为什么每次我想生成一个新的签名 apk 文件时都要求我输入 keyPassword 和 storePassword文件?
如果您在 gradle 中提供了密钥库路径和凭据。然后按照以下步骤生成签名的 apk。
- 转到构建变体
- Select 构建变体作为发布
- 单击 play/run 按钮
Apk 将在 Project/build/outputs/apk 文件夹中发布
当您从 "Build -> Generate Signed apk" 构建时,您需要偶尔输入 Android 的工作室密码,但它会为您保存加密的密码。这是最安全的方式。
但是由于您需要一种自动化方式,您可以使用 "Terminal" 视图,然后键入:./gradlew assembleRelease
。 (如果你在 windows 机器上,我认为它是 gradlew assembleRelease
)。
无论如何,不建议将密码写在 build.gradle 文件中:
android {
signingConfigs {
release {
storeFile file('/your/keystore/location/key')
keyAlias 'your_alias'
keyPasswordString ps = System.getenv("ps")
storePasswordif System.getenv("ps"ps == null) {
throw new GradleException('missing ps env variable')
}
keyPassword ps
storePassword ps
}
}
首先是我的登录配置:
signingConfigs {
development {
storeFile file("mykey.jks") //Path to the keystore file
keyAlias "mykey"
storePassword "mykeydev"
keyPassword "mykeydev"
}
production {
storeFile file("mykey.jks") //Path to the keystore file
keyAlias "mykey"
storePassword "mykeyprod"
keyPassword "mykeyprod"
}
}
现在我的口味:
productFlavors {
development{
applicationId "br.com.myapp.dev"
signingConfig signingConfigs.development
resValue "string", "app_name", "DEV"
}
production {
applicationId "br.com.myapp"
signingConfig signingConfigs.production
resValue "string", "app_name", "PROD"
}
}
我有 buildTypes
这个:
buildTypes {
release {
minifyEnabled false
productFlavors.production.signingConfig signingConfigs.production
productFlavors.development.signingConfig signingConfigs.development
}
}
我的问题是,如果所有密钥和内容都在我的 .gradle 中,为什么每次我想生成一个新的签名 apk 文件时都要求我输入 keyPassword 和 storePassword文件?
如果您在 gradle 中提供了密钥库路径和凭据。然后按照以下步骤生成签名的 apk。
- 转到构建变体
- Select 构建变体作为发布
- 单击 play/run 按钮
Apk 将在 Project/build/outputs/apk 文件夹中发布
当您从 "Build -> Generate Signed apk" 构建时,您需要偶尔输入 Android 的工作室密码,但它会为您保存加密的密码。这是最安全的方式。
但是由于您需要一种自动化方式,您可以使用 "Terminal" 视图,然后键入:./gradlew assembleRelease
。 (如果你在 windows 机器上,我认为它是 gradlew assembleRelease
)。
无论如何,不建议将密码写在 build.gradle 文件中:
android {
signingConfigs {
release {
storeFile file('/your/keystore/location/key')
keyAlias 'your_alias'
keyPasswordString ps = System.getenv("ps")
storePasswordif System.getenv("ps"ps == null) {
throw new GradleException('missing ps env variable')
}
keyPassword ps
storePassword ps
}
}