【问题标题】:Google Play Developer API version_nameGoogle Play 开发者 API 版本名称
【发布时间】:2017-05-11 16:22:29
【问题描述】:

我正在尝试使用 Gradle Play Publisher 自动将应用发布到 Google Play 商店。到目前为止一切顺利,只是我无法以这种方式更新version_name,它只是忽略了它。

我试过./gradlew publishRelease -Dversion_name=3.0.0。看起来这是由于 Google Play API 限制所致。如果我运行./gradlew assembleRelease -Dversion_name=3.0.0 来生成apk,然后手动上传apk,它会正确上传版本3.0.0。只是想确保无法通过 Google Play Developer API 上传版本名称还是 Gradle Play Publisher 的问题?

build.gradle

def version_name = System.getProperty("version_name")

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 23
        versionCode version_code
        versionName "${version_name}"
        renderscriptTargetApi 23
        renderscriptSupportModeEnabled true
        multiDexEnabled true

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

编辑:

按照我尝试过的 R. Zagórski 建议:

1.

./gradlew assembleRelease -Dversion_name=3.0.0 publishRelease

2.

./gradlew assembleRelease -Pversion_name=3.0.0 publishRelease

build.gradle

def version_name = project.getProperty("version_name")
println "version name: "+version_name

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 23
        versionCode version_code
        versionName "${version_name}"
        renderscriptTargetApi 23
        renderscriptSupportModeEnabled true
        multiDexEnabled true

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    ...
}

但还是一无所获。只是要明确,问题不在于我在构建中没有得到version_name 或错误的version_name,事实上你看到的println 打印了正确的版本。只是我在 Google Play 商店中什么都没有(见下图)。

【问题讨论】:

    标签: android gradle google-play-developer-api


    【解决方案1】:

    这不是插件或 API 的问题。这就是gradle 的工作原理。其他表明问题的答案是herehere

    基本上问题在于gradle 可能会创建一个JVM fork 进程来完成任务。因此,在运行publishRelease,其中depends on assembleRelease 时,可能会创建单独的进程以在发布之前完成组装。而你传递系统属性来发布任务而不是组装任务。

    解决方案可能是同时运行两个任务,将参数传递给适当的一个:

    ./gradlew assembleRelease -Dversion_name=3.0.0 publishRelease
    

    或者按照here的描述设置项目属性而不是系统属性

    【讨论】:

    • 试过了,但没有。我编辑了我的问题,以便您可以查看我的尝试并告诉我我是否误解了某些内容。
    • Gradle 任务如果发生必须产生一些日志和错误。
    猜你喜欢
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多