2017-05-17 41 views
1

我有一個Android,我通過CI服務器部署到Google Play Alpha軌道。對於Android versionCode,我使用通過環境變量注入到Gradle腳本中的CI構建號。Android Gradle'versionCode'不能從環境變量中讀取

這用於正常工作;但目前Google Play不接受任何版本。在生成APK尋找(使用aapt dump badging apk-path)時

APK has an invalid version code. 

所以,我看到一個空值的:當我手動觸發阿爾法載生成(使用gradle-play-publisher插件)的搖籃我終於結束了,下面的錯誤版本代碼(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

試圖改變你的代碼如下:

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