簡體   English   中英

Android Gradle detect是發布版本還是不在運行時?

[英]Android Gradle detect is a release build or not in runtime?

我需要通過Gradle創建自動增量版本機制。 為此,我使用手冊並創建兩個文件

版本屬性

#Fri May 20 11:04:03 EEST 2016
VERSION_BUILD=3

在應用程序級別的build.gradle:

buildTypes {

        debug{
            versionNameSuffix 'debug';
        }
        release {
            def versionPropsFile = file('version.properties')

            if (versionPropsFile.canRead()) {
                def Properties versionProps = new Properties()
                versionProps.load(new FileInputStream(versionPropsFile))
                def versionBuild = versionProps['VERSION_BUILD'].toInteger() + 1
                versionProps['VERSION_BUILD'] = versionBuild.toString()
                versionProps.store(versionPropsFile.newWriter(), null)

                versionNameSuffix = versionBuild;

            } else {
                throw new GradleException("Could not read version.properties!")
            }
            debuggable false
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
}

我的問題是:每次構建項目時, VERSION_BUILD都會增加。 不是Run ,而是構建。 而且不管我運行項目還是創建簽名的APK。

我的目標-僅在生成簽名的APK時增加版本。 我該怎么做?

最后,我找到了解決方案。

List<String> runTasks = gradle.startParameter.getTaskNames();

for (String item : runTasks) {
    if (item.contains("assemble") && item.contains("Release")) {
           // this is a release task
    }
}

從gradle文件中,每次運行rel build時都要對應用進行簽名。 因此,為什么不使用versionCode而不是VERSION_BUILD,那樣它只會在構建時發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM