Я разделил приложение apk и получил несколько apk
какой из них я выберу для импорта в свой игровой магазин?
Зависит от того, на какое устройство вы хотите настроить таргетинг. Play Store сообщит вам, сколько устройств вы оставили после загрузки apk. Убедитесь, что у вас разные коды версий для каждого варианта, если вы хотите загрузить несколько версий. Например, у меня есть XXXn, где n - код архитектуры процессора.
Вы добавляете их все, Play Store выбирает подходящий для пользователя, в зависимости от его устройства. Просто убедитесь, что вы используете разные коды версий для каждого apk.
См. официальная документация для получения дополнительной информации.
@walidroid, вы можете позволить gradle автоматически изменять коды версий (см. мой ответ)
@walidroid да в документации написано как.
Да, это зависит от того, на какое устройство вы хотите настроить таргетинг. Для получения дополнительной информации ниже - 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.
Я не могу опубликовать несколько выпусков проблема в коде выпуска или версии
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'
}
}
то мне нужно изменить эти коды: versionCode 1 versionName "1.0" для каждого