Как запустить различные варианты продукта в Android Studio
Я пишу свое первое приложение для Android, и я только начинаю с вкусов продуктов. У меня есть приложение с поддержкой рекламы в бета-версии, и я пишу платную версию без рекламы. Думаю, я могу собрать оба варианта. Когда я открываю окно Gradle, я вижу такие цели, как "compile AdsDebugSources" и "compile PremiumDebugSources".
Теперь, если я дважды нажму на одну из них, сборка будет завершена без ошибок, но я не могу понять, как запустить результаты. Если я нажму на зеленую стрелку "Выполнить" в верхней части экрана, я никогда не смогу запустить приложение премиум-класса.
Есть только одна запись, "app", которая приводит к установке и запуску apk на подключенном устройстве, и это версия AdsDebug. Я думаю, что мне нужно добавить новую конфигурацию, но я не могу найти документацию, которая даже упоминает слово "вкус".
Я попытался добавить конфигурацию, но я не понимаю, что означают вопросы. Я посмотрел на настройки для приложения по умолчанию, но они, кажется, ничего не значат. Как мне сказать, что я хочу премиум-версию своего приложения?
Или моя проблема не имеет ничего общего с конфигурациями? Я заметил, что когда я смотрю на Build/Edit Flavors
перечислены два варианта, но ни одно из полей данных не заполнено. Я бы подумал, что они будут скопированы из манифеста. Я что-то пренебрег?
Все, что я сделал, чтобы настроить варианты, это добавить этот код в файл build.gradle уровня приложения:
flavorDimensions "dummy"
productFlavors {
ads {
dimension "dummy"
applicationId 'com.example.myApp.ads'
}
premium {
dimension "dummy"
applicationId 'com.example.myApp.premium'
}
}
Что еще мне нужно сделать?
3 ответа
Откройте инструмент "Сборка вариантов" в Android Studio. По умолчанию это закреплено слева.
Он покажет список модулей в вашем проекте с раскрывающимся списком для каждого, указывающим вариант сборки, который будет использоваться кнопкой "Выполнить".
РЕШЕНИЕ
- Если вы хотите создать разные типы продуктов (например, разные URL-адреса: URL-адрес разработки, URL-адрес качества и URL-адрес производства нашего приложения)
поэтому вы хотите, чтобы этот код работал правильно.
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.premsinghdaksha"
minSdkVersion 17
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
flavorDimensions "client"
productFlavors {
// use for production debug and release build
production {
dimension "client"
buildConfigField("String", "BASE_URL", "YourURL")
//if you want to use string anywhere of app show you define
// buildConfigField and get value where you want to use.
buildConfigField("String", "Shop_", "\"Shop1\"")
// production app name
//if you want change application name and app icon so you define
// resValue, manifestPlaceholders and get these value in Manifests file.
resValue "string", "app_name", "Your production name"
//production app icon
manifestPlaceholders = [
appIcon : "@mipmap/app_icon",
appIconRound: "@mipmap/app_icon_round"
]
signingConfig signingConfigs.release
}
// use for quality debug and release build
quality {
dimension "client"
buildConfigField("String", "BASE_URL", "YourQualityurl")
buildConfigField("String", "Shop_", "\"Shop2\"")
//use for quality app name
resValue "string", "app_name", "quality App name"
// use for quality app icon
manifestPlaceholders = [
appIcon : "@mipmap/quality_app_icon",
appIconRound: "@mipmap/quality_app_icon_round",
]
}
// use for development debug and release build
development {
dimension "client"
buildConfigField("String", "BASE_URL", "development url")
buildConfigField("String", "Shop_", "\"Shop3\"")
//use for dev app name
resValue "string", "app_name", "developer app name"
//use for dev app icon
manifestPlaceholders = [
appIcon : "@mipmap/developer_icon",
appIconRound: "@mipmap/developer_icon_round"
]
}
}
}
- Если вы хотите создать приложение подписи для живого приложения, вы должны выполнить этот код в build.gradle (:app) в android {}.
signingConfigs {
// use for signed apk
release {
storeFile file("../premsingh.jks")
storePassword "app@app"
keyAlias "key0"
keyPassword "app@app"
v1SigningEnabled true
v2SigningEnabled true
}
}
Результат будет отображаться в вариантах сборки и нажмите кнопку раскрывающегося списка, используйте щелчок вариантов.
Взгляните на мою статью о вариантах сборки. Подробное обсуждение вариантов сборки.