6
2

More than 3 years have passed since last update.

【Android】Flavor毎にアプリ名とアプリアイコンを変更する

Posted at

Androidアプリ開発時に、開発環境・ステージング環境・本番環境 などの環境毎にFlavorを設定することがあるかと思います。
環境が違うアプリをひと目で見分けられるように、アプリ名とアプリアイコンを変更する方法をまとめておきます。

Flavorを設定する

アプリの build.gradle にFlavorの設定を行います。
今回は例として、 dev(開発)・stg(ステージング)・prod(本番) の3つの環境を用意するものとします。

build.gradle
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」を選択します。
スクリーンショット 2020-10-30 1.54.18.png

次に、 File namestrings にして、 Source setdev を選択します。
この dev は先程Flavorで設定したものです。
スクリーンショット 2020-10-30 1.55.45.png

これによって、 dev 環境用の strings.xml が作成されます。
スクリーンショット 2020-10-30 1.56.40.png

この strings.xmlapp_name に環境毎のアプリ名を設定することにより、アプリ名の変更が可能です。
スクリーンショット 2020-10-30 2.02.45.png

同様に stg 用の strings.xml も作成し、アプリ名を設定します。
Build VariantsstgDebug にしないと strings.xml(stg) は表示されません)
prod 環境はデフォルトの string.xml を使用したいため、別途 strings.xml は作成しません。

下記のように、環境毎にアプリ名が変更されていればOKです。
スクリーンショット 2020-10-30 2.11.49.png

Flavor毎にアプリアイコンを変更する

今回は、easylauncher-gradle-plugin というライブラリを使用しました。

まずは、プロジェクトの build.gradle に設定を追加します。

build.gradle
buildscript {

    // 省略

    dependencies {

        // 省略

        classpath 'com.akaita.android:easylauncher:1.3.1'  // <- ここを追加
    }
}

次に、アプリの build.gradle に設定を追加します。

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  // 本番ではラベルをつけない
        }
    }
}
// ここまで追加

// 省略

ここまで設定すると、アプリ毎にアイコンが変更されます。
今回、適当なアイコンも設定しています。
スクリーンショット 2020-10-30 3.01.49.png

とてもわかりやすくなりましたね!
ライブラリのその他の設定はドキュメントを参照してください。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2