Необходимо использовать другой код версии APK, но на самом деле не был использован - PullRequest
0 голосов
/ 26 апреля 2019

Я публикую свое приложение около 1 года назад с кодом версии 10005. И теперь я загружаю снова с кодом версии 10505, и я получил это сообщение:

это скриншот: https://i.imgur.com/kdOsF7j.jpg (извините, я не набрал 10 репутаций, чтобы иметь возможность прикрепить изображение здесь.

Я искал код версии 10005 в моем коде. И даже этот скриншот показывает, что 10505 уже используется, а на самом деле не имеет

Как я могу решить это?

это моя конфигурация по умолчанию:

defaultConfig {
    /* another */
    versionCode codeVersion
    versionName "${versionMajor}.${versionMinor}.${versionPatch}-${releaseType}"
    /* another */
}

А вот что такое codeVersion, версия Major Minor Patch и releaseType origin:

subprojects {
    ext {
        def npmVersion = getNpmVersionArray()
        versionMajor = npmVersion[0]
        versionMinor = npmVersion[1]
        versionPatch = npmVersion[2]
        codeVersion = npmVersion[3]
        releaseType = System.env.RELEASE_TYPE != null ? System.env.RELEASE_TYPE : ''
    }

    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 26
                buildToolsVersion '26.0.3'
            }
        }
    }

    if (project.name.contains('react-native-image-picker')) {
        buildscript {
            repositories {
                jcenter()
                maven { url "https://dl.bintray.com/android/android-tools/"  }
            }
        }
    }

    if (project.name.contains('react-native-vector-icons')) {
        buildscript {
            repositories {
                jcenter()
                maven { url "https://dl.bintray.com/android/android-tools/"  }
            }
        }
    }
}

def getNpmVersion() {
    def inputFile = new File(System.getProperty("user.dir") + "/android/" + "version.json")
    def packageJson = new JsonSlurper().parseText(inputFile.text)

    return packageJson
}

def getNpmVersionArray() { // major [0], minor [1], patch [2]
    def jsonData = getNpmVersion()
    def (major, minor, patch) = jsonData["version"].tokenize('.')
    def code = jsonData["code"]

    def releaseType = System.env.RELEASE_TYPE != null ? System.env.RELEASE_TYPE : ''

    println "Building version: ${major}.${minor}.${patch}-${releaseType}; Version code: ${code}"

    return [Integer.parseInt(major), Integer.parseInt(minor), Integer.parseInt(patch), Integer.parseInt(code)] as int[]
}

Так что на самом деле поток выбирает эту версию. Json:

{
  "version": "1.5.5",
  "code": "10505"
}

А затем использовать его для определения versionCode и versionName в build.gradle

...