Как запустить различные варианты продукта в 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. По умолчанию это закреплено слева.

Он покажет список модулей в вашем проекте с раскрывающимся списком для каждого, указывающим вариант сборки, который будет использоваться кнопкой "Выполнить".

Инструмент для Android Studio Варианты сборки

РЕШЕНИЕ

  1. Если вы хотите создать разные типы продуктов (например, разные 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"
            ]
        }

    }
}
  1. Если вы хотите создать приложение подписи для живого приложения, вы должны выполнить этот код в 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
            }
        }

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

Взгляните на мою статью о вариантах сборки. Подробное обсуждение вариантов сборки.

Как создавать версии Android-продуктов и создавать варианты

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