Какой выбрать после разделения APK?

Я разделил приложение apk и получил несколько apk

какой из них я выберу для импорта в свой игровой магазин?

4
0
2 124
5

Ответы 5

Зависит от того, на какое устройство вы хотите настроить таргетинг. Play Store сообщит вам, сколько устройств вы оставили после загрузки apk. Убедитесь, что у вас разные коды версий для каждого варианта, если вы хотите загрузить несколько версий. Например, у меня есть XXXn, где n - код архитектуры процессора.

Вы добавляете их все, Play Store выбирает подходящий для пользователя, в зависимости от его устройства. Просто убедитесь, что вы используете разные коды версий для каждого apk.

См. официальная документация для получения дополнительной информации.

то мне нужно изменить эти коды: versionCode 1 versionName "1.0" для каждого

walidroid 23.04.2018 10:03

@walidroid, вы можете позволить gradle автоматически изменять коды версий (см. мой ответ)

Angel Koh 23.04.2018 10:27

@walidroid да в документации написано как.

Stephan 23.04.2018 10:40

Да, это зависит от того, на какое устройство вы хотите настроить таргетинг. Для получения дополнительной информации ниже - stackoverflow и официальные ссылки разработчика также будут вам полезны:

вы можете позволить Gradle автоматически настраивать код вашей версии, а затем загружать ВСЕ приложения в игровой магазин.

Пример Google ниже автоматически добавит 001, 002 или 003 в зависимости от варианта ('armeabi-v7a': 1, x86: 2, x86_64: 3).

Обратите внимание, что вам нужно будет загрузить игровой магазин от наименьшего числа до наибольшего числа.

см. https://developer.android.com/studio/build/configure-apk-splits.html#configure-APK-versions

android {
  ...
  defaultConfig {
    ...
    versionCode 4
  }
  splits {
    ...
  }
}

// Map for the version code that gives each ABI a value.
ext.abiCodes = ['armeabi-v7a':1, x86:2, x86_64:3]

// For per-density APKs, create a similar map like this:
// ext.densityCodes = ['mdpi': 1, 'hdpi': 2, 'xhdpi': 3]

import com.android.build.OutputFile

// For each APK output variant, override versionCode with a combination of
// ext.abiCodes * 1000 + variant.versionCode. In this example, variant.versionCode
// is equal to defaultConfig.versionCode. If you configure product flavors that
// define their own versionCode, variant.versionCode uses that value instead.
android.applicationVariants.all { variant ->

  // Assigns a different version code for each output APK
  // other than the universal APK.
  variant.outputs.each { output ->

    // Stores the value of ext.abiCodes that is associated with the ABI for this variant.
    def baseAbiVersionCode =
            // Determines the ABI for this variant and returns the mapped value.
            project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))

    // Because abiCodes.get() returns null for ABIs that are not mapped by ext.abiCodes,
    // the following code does not override the version code for universal APKs.
    // However, because we want universal APKs to have the lowest version code,
    // this outcome is desirable.
    if (baseAbiVersionCode != null) {

      // Assigns the new version code to versionCodeOverride, which changes the version code
      // for only the output APK, not for the variant itself. Skipping this step simply
      // causes Gradle to use the value of variant.versionCode for the APK.
      output.versionCodeOverride =
              baseAbiVersionCode * 1000 + variant.versionCode
    }
  }
}

Дополнительные примеры схем кода альтернативной версии см. В разделе Присвоение кодов версии (https://developer.android.com/google/play/publishing/multiple-apks.html#VersionCodes).

Я получил эту ошибку: Не удалось получить неизвестное свойство «output» для объекта типа com.android.build.gradle.internal.api.ApplicationVariantImpl‌.

walidroid 23.04.2018 17:40

Я не могу опубликовать несколько выпусков проблема в коде выпуска или версии

ext.abiCodes = ['x86_64':1,'x86':2,'armeabi':3,'armeabi-v7a':4,'arm64-v8a':5,'mips':6]

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.book.walid.resumephilosophie"
        minSdkVersion 15
        resConfigs "ar"
        targetSdkVersion 27
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    splits {
        abi{
            enable true
            reset()
            include 'x86_64','x86','armeabi','armeabi-v7a','arm64-v8a','mips'
            universalApk false
        }

    }
    android.applicationVariants.all { variant ->
        def baseAbiVersionCode =
                project.ext.abiCodes.get(com.android.build.OutputFile.ABI)
        if (baseAbiVersionCode != null) {

            output.versionCodeOverride =
                    baseAbiVersionCode * 1000 + variant.versionCode
        }
    }

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }

Другие вопросы по теме