如何使用环境变量对 APK 进行签名

How can I use environment variables to sign APK

我想在 travis 上签署一个 Android APK。
为了保护密钥库凭据,我想使用环境变量。

不幸的是,当我尝试这个时出现以下错误

signingConfigs {
     release{
        storeFile file("path/to/release.keystore")
        storePassword $System.env.STOREPASS
        keyAlias "appAlias"
        keyPassword $System.env.KEYPASS
    }
}

Error:(67, 0) Could not get unknown property '$System' for SigningConfig_Decorated{.....} of type com.android.build.gradle.internal.dsl.SigningConfig.

或者还有其他方法吗?

我正在使用以下内容:

ext {
    travisBuild = System.getenv("TRAVIS") == "true"
}

在我的根 build.gradle 中,然后我使用来自主模块 build.gradle 的 属性 by:

dexOptions {
    preDexLibraries = !travisBuild
}

它工作正常。

您可以用同样的方式获取任何其他 Travis 环境变量。

此致!

这可以解决您的问题。

signingConfigs {
     release{
        storeFile file("path/to/release.keystore")
        storePassword System.getenv("STOREPASS")
        keyAlias "appAlias"
        keyPassword System.getenv("KEYPASS")
    }
}