2014-02-24 81 views
3

在Android Studio中我有build.gradle有關應用程序的版本默認的信息:增量版本建立

android {  
    defaultConfig { 
     versionCode 24 
     versionName "0.1 beta" 
    } 
} 

我怎麼能遞增versionCode automatilcally每個項目彙編?

回答

7

my book引用:

由於android:versionCode是單調遞增的整數,用於自動化它是簡單地增加它在每個構建 一種方法。 雖然這可能看起來很浪費,但是20億次構建是lot的構建, ,所以獨立開發者不太可能用完。在一個團隊中同步這樣的值將會變得更加複雜一些,但對於個人(開發人員,構建服務器等)個人來說,使用Groovy顯然是可行的。

Gradle/HelloVersioning 示例項目使用version.properties文件作爲後備存儲的 版本信息:

def versionPropsFile = file('version.properties') 

if (versionPropsFile.canRead()) { 
    def Properties versionProps = new Properties() 

    versionProps.load(new FileInputStream(versionPropsFile)) 

    def code = versionProps['VERSION_CODE'].toInteger() + 1 

    versionProps['VERSION_CODE']=code.toString() 
    versionProps.store(versionPropsFile.newWriter(), null) 

    defaultConfig { 
     versionCode code 
     versionName "1.1" 
     minSdkVersion 14 
     targetSdkVersion 18 
    } 
} 
else { 
    throw new GradleException("Could not read version.properties!") 
} 

首先,我們嘗試打開一個version.properties文件和失敗,如果它不 存在,需要開發人員手動創建起始文件:

VERSION_CODE=1 

當然,更強大該腳本的實施將處理這種情況,並且 爲開發者提供初始值。

腳本然後使用讀取的定製的屬性的邏輯說明 上一節中[注:這本書的,不包括在這裏]讀取現有 值...但它增加了老值加1以獲取新代碼以供使用。 然後,在defaultConfig塊中應用 之前,將修改後的代碼寫回屬性文件。

在這種情況下,腳本拋出一個GradleException停止,如果 的version.properties文件無法找到或以其他方式不能 讀的構建。