Android 安卓apk版本名

Android 安卓apk版本名,android,android-gradle-plugin,version,Android,Android Gradle Plugin,Version,以下是我的build.gradle文件: ... defaultConfig { applicationId "app.com.foo.player" minSdkVersion 18 targetSdkVersion 23 versionCode 1 // increment with every release versionName "Foo-1.0" // change with every release setProperty("arc

以下是我的
build.gradle
文件:

...
defaultConfig {
    applicationId "app.com.foo.player"
    minSdkVersion 18
    targetSdkVersion 23
    versionCode 1 // increment with every release
    versionName "Foo-1.0" // change with every release
    setProperty("archivesBaseName", "$versionName")
    testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'

}
...
关于android apk的版本名,我有几个问题:

  • 构建项目时,生成的apk名称为Foo-1.0-debug.apk。“调试”从何而来,它意味着什么,我如何避免/改变它

  • 如何为dev和prod版本的应用程序生成不同的名称

  • 是否有一种方法可以自动增加每个版本的版本号和版本名


  • 提前谢谢

    要为开发人员和产品生成不同的名称,您可以使用productFlavors,请参阅下面的链接

    在格拉德尔

       productFlavors{
        releaseBuild{
            buildConfigField "String", "APP_NAME", '"SAMPLE_APP_PRODUCT"'
        }
    
        debugBuild{
            buildConfigField "String", "APP_NAME", '"SAMPLE_APP_DEBUG"'
    
        }
    }
    

    在gradle中设置后,更改BuiltVariant并运行程序

    为开发人员和产品生成不同的名称,您可以使用productFlavors,请参阅下面的链接

    在格拉德尔

       productFlavors{
        releaseBuild{
            buildConfigField "String", "APP_NAME", '"SAMPLE_APP_PRODUCT"'
        }
    
        debugBuild{
            buildConfigField "String", "APP_NAME", '"SAMPLE_APP_DEBUG"'
    
        }
    }
    

    在gradle中设置后,更改BuiltVariant并运行程序(问题1和问题2)。您可以转到“项目结构”“选择”选项卡“样式”和“生成类型”以设置“生成配置”


    对于问题3,您可以在项目的build.gradle中创建一个脚本,然后在模块中使用。这里我使用当前时间(以秒为单位)作为示例: 在项目中:

    ext{
        minSdk = 14
        targetSdk = 23
        verCode = getVersion();
        verName = "Foo-1.0"
    }
    def getVersion() {
        return new Date().getTime() / 1000;
    }
    
    模块内

        defaultConfig {
            minSdkVersion minSdk
            targetSdkVersion targetSdk
            versionCode verCode 
            versionName verName + verCode
        }
    

    对于问题1和问题2,您可以转到项目结构,选择tab Flavors和Build Type以设置用于构建的配置


    对于问题3,您可以在项目的build.gradle中创建一个脚本,然后在模块中使用。这里我使用当前时间(以秒为单位)作为示例: 在项目中:

    ext{
        minSdk = 14
        targetSdk = 23
        verCode = getVersion();
        verName = "Foo-1.0"
    }
    def getVersion() {
        return new Date().getTime() / 1000;
    }
    
    模块内

        defaultConfig {
            minSdkVersion minSdk
            targetSdkVersion targetSdk
            versionCode verCode 
            versionName verName + verCode
        }
    

    调试来自于您构建的风格。调试风格可以由调试器附加到,并且通常对代码进行较少的优化。发行版风格将由编译器完全优化,可能无法与调试器一起使用。如果您更改为另一种风格,它将显示release而不是debug。知道您使用的是哪种类型是个好主意,所以我建议不要删除它。但是你可以将apk重命名为你想要的任何东西,它只是一个文件。一个小的澄清-调试或发布只有在通过IDE运行时才重要,对吗?Rest所有情况下,应用程序在默认情况下不会以发布模式运行吗?不,一点也不。一个发布版本将去除符号,应用不同的proguard规则,并且经常有不同的编译器优化级别。它们可能是相同的,但我不相信。如何获得发布构建生成的apk?调试来自于您构建的风格。调试风格可以由调试器附加到,并且通常对代码进行较少的优化。发行版风格将由编译器完全优化,可能无法与调试器一起使用。如果您更改为另一种风格,它将显示release而不是debug。知道您使用的是哪种类型是个好主意,所以我建议不要删除它。但是你可以将apk重命名为你想要的任何东西,它只是一个文件。一个小的澄清-调试或发布只有在通过IDE运行时才重要,对吗?Rest所有情况下,应用程序在默认情况下不会以发布模式运行吗?不,一点也不。一个发布版本将去除符号,应用不同的proguard规则,并且经常有不同的编译器优化级别。它们可能是相同的,但我不相信。如何获得发布版本生成的apk?“在项目中的build.gradle中生成脚本,然后在模块中使用”-build.gradle中引用的脚本和模块是什么?您能详细说明一下吗?关于build.gradle文件中的脚本使用,您可以参考“在项目中的build.gradle中生成脚本,然后在模块中使用”-build.gradle中引用的脚本和模块是什么?你能详细说明一下吗?关于build.gradle文件中的脚本使用,你可以参考