Androidアプリ開発時に、開発環境・ステージング環境・本番環境 などの環境毎にFlavorを設定することがあるかと思います。
環境が違うアプリをひと目で見分けられるように、アプリ名とアプリアイコンを変更する方法をまとめておきます。
Flavorを設定する
アプリの build.gradle
にFlavorの設定を行います。
今回は例として、 dev
(開発)・stg
(ステージング)・prod
(本番) の3つの環境を用意するものとします。
android {
// 省略
// ここから追加
flavorDimensions "environment"
productFlavors {
dev {
dimension "environment"
applicationIdSuffix ".dev"
versionNameSuffix ".dev"
}
stg {
dimension "environment"
applicationIdSuffix ".stg"
versionNameSuffix ".stg"
}
prod {
dimension "environment"
}
}
// ここまで追加
}
Flavor毎にアプリ名を変更する
Flavor毎に strings.xml
ファイルを作成します。
下記のように、「res/valuesを右クリック -> New -> Values Resource File」を選択します。
次に、 File name
を strings
にして、 Source set
に dev
を選択します。
この dev
は先程Flavorで設定したものです。
これによって、 dev
環境用の strings.xml
が作成されます。
この strings.xml
の app_name
に環境毎のアプリ名を設定することにより、アプリ名の変更が可能です。
同様に stg
用の strings.xml
も作成し、アプリ名を設定します。
(Build Variants
を stgDebug
にしないと strings.xml(stg)
は表示されません)
prod
環境はデフォルトの string.xml
を使用したいため、別途 strings.xml
は作成しません。
Flavor毎にアプリアイコンを変更する
今回は、easylauncher-gradle-plugin というライブラリを使用しました。
まずは、プロジェクトの build.gradle
に設定を追加します。
buildscript {
// 省略
dependencies {
// 省略
classpath 'com.akaita.android:easylauncher:1.3.1' // <- ここを追加
}
}
次に、アプリの build.gradle
に設定を追加します。
plugins {
// 省略
id 'com.akaita.android.easylauncher' // <- ここを追加
}
android {
// 省略
// 先程追加したFlavor設定
flavorDimensions "environment"
productFlavors {
dev {
dimension "environment"
applicationIdSuffix ".dev"
versionNameSuffix ".dev"
}
stg {
dimension "environment"
applicationIdSuffix ".stg"
versionNameSuffix ".stg"
}
prod {
dimension "environment"
}
}
}
// ここから追加
easylauncher {
iconNames "@mipmap/ic_launcher_foreground"
foregroundIconNames "@mipmap/ic_launcher_foreground"
defaultFlavorNaming = true
buildTypes {
debug {}
release {}
}
productFlavors {
dev {
filters = grayRibbonFilter()
}
stg {
filters = greenRibbonFilter()
}
prod {
enable false // 本番ではラベルをつけない
}
}
}
// ここまで追加
// 省略
ここまで設定すると、アプリ毎にアイコンが変更されます。
今回、適当なアイコンも設定しています。
とてもわかりやすくなりましたね!
ライブラリのその他の設定はドキュメントを参照してください。