Android Gradle' versionCode'不读取环境变量

时间:2017-05-17 17:02:58

标签: android gradle automation

我有一个Android,我通过CI服务器部署到Google Play alpha轨道。对于Android versionCode,我使用通过环境变量注入Gradle脚本的CI内部版本号。

这曾经很好用;但目前Google Play不接受任何版本。当我为Gradle手动触发alpha上传版本(使用gradle-play-publisher插件)时,我最终会遇到以下错误:

APK has an invalid version code.

因此,当在生成的APK中查找(使用aapt dump badging apk-path)时,我会看到版本代码的空值(versionCode='')。

构建脚本中的相关代码:

def appVersionCode = System.getenv("BUILD_NUMBER") as Integer ?: 0
defaultConfig {
  ...
  versionCode appVersionCode
  ...
}

似乎变量未正确读取;但它正确地读取System.getenv("KEY_PASS")以用于签名。

该变量也设置为:

❯ echo $BUILD_NUMBER
1234

有没有人知道为什么这个特定变量似乎不再被阅读?

Gradle版本:3.5使用Android Gradle插件2.3.1。

1 个答案:

答案 0 :(得分:7)

尝试将代码更改为:

def appVersionCode = Integer.valueOf(System.env.BUILD_NUMBER ?: 0)
defaultConfig {
  ...
  versionCode appVersionCode
  ...
}