Android アプリ名を環境ごとに変更する

はじめに

今回はAndroidアプリで環境ごとにアプリ名を変更する方法をご紹介します。

どういったときに必要なのか

ここでいう環境というのは主にFlavorのことをさしています。
app/build.gradleで設定するあれです(説明雑)。

本番環境・開発環境・検証用などで分ける場合に、実機にアプリ名を見ただけて環境がわかると間違えて開発用でテストしてしまったり、なんてことも防げます。
実際に環境を選択してビルドしている開発者はほぼ間違えることがないかもしれませんが、それ以外の人がアプリ名を見ただけで判断できるとより安全です。

方法

今回は以下のようなアプリ名を設定してみます。

環境 アプリ名
本番環境 HogeApp
開発環境 HogeApp_dev
検証環境 HogeApp_stg

app/build.gradleのproductFlavorsの環境ごとに、resValueを使ってアプリ名を設定しましょう。
resValueで指定したものは string.xml に出力されます。(もともと string.xml に記載されている app_name は削除しておきましょう)

productFlavors {
    // 本番環境
    production {
        resValue "string", "app_name", "HogeApp"
    }
    // 検証環境
    staging {
        resValue "string", "app_name", "HogeApp_stg"
    }
    // 開発環境
    development {
        resValue "string", "app_name", "HogeApp_dev"
    }
}

以上!これだけでOKです!

最後に

Floverごとにフォルダを用意して string.xml を差し替える方法もありますが、非効率なのでこちらの方法をお勧めします!!
あと、FacebookSDKのように環境変数をBuildConfig ではなく string.xml で用意する必要がある場合はこれでやったほうが楽です。