生成签名的apk而无需键入密钥

时间:2017-07-04 19:28:17

标签: android gradle android-gradle build.gradle signed-apk

首先,这是我的signinConfigs:

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
    }
}

这就是我的问题,为什么每次我想要生成一个新签名的apk文件时,我都会被要求提供keyPassword和storePassword,如果所有的密钥和内容都在我的.gradle文件中?

2 个答案:

答案 0 :(得分:1)

如果您已在gradle中提供密钥库路径和凭据。然后,为了生成签名apks,请按照以下步骤操作。

  1. 转到Build Variants
  2. 选择构建变体作为发布
  3. 点击播放/运行按钮
  4. Apk将在Project / build / outputs / apk文件夹中发布

答案 1 :(得分:1)

当您使用"构建 - >构建时生成签名的apk"您需要偶尔输入Android的工作室密码,但它会保存为您加密的密码。这是最安全的方式。

但是既然你需要一种自动化方式,你可以使用"终端"查看,然后输入:./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
    }
}