我有一个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。
答案 0 :(得分:7)
尝试将代码更改为:
def appVersionCode = Integer.valueOf(System.env.BUILD_NUMBER ?: 0)
defaultConfig {
...
versionCode appVersionCode
...
}