似たようなAndroidアプリを同一端末にインストール出来るようにする


追記

Android Studio 3からの設定方法を反映させました。

🔰 はじめに

機能はほぼ同じで、向き先のURLが違ったりするapkを作りたいと思います。
Android(Studio)の対応が分からなかったので今回調べてみました🤔

🖥 環境

  • Android Studio 2.1.3
  • Kotlin 1.0.1-2
  • Gradle 2.14.1

🛠 設定

対応方法としては、Flavorの機能を利用してpackageNameを変更するという方針をとっていきます。

productFlavorsの設定

app/build.gradle
android{
    productFlavors {
        www {

        }
        dev {
            applicationIdSuffix = '.dev'
        }
        stg {
            applicationIdSuffix = '.stg'
        }
    }
}

追記ここから

Android Studio 3から

app/build.gradle
android{

    flavorDimensions "Production", "staging", "develop"

    productFlavors {
        www {
             dimension "Production"
        }
        dev {
            applicationIdSuffix = '.dev'
            dimension "staging"
        }
        stg {
            applicationIdSuffix = '.stg'
            dimension "develop"
        }
    }
}

バージョン3からは、すべてのフレーバが名前付きフレーバディメンションに属している必要があります。
そうしないと、ビルドエラーが発生します。

追記ここまで


例えばこんな感じに設定します。

あとはFlavor毎にアプリの表示名を明示的に変更してあげればいいと思います。

serc/dev/res/string.xml
<resources>
    <string name="app_name">[dev]application</string>
</resources>

ビルドをするときは build Valiants で切り替えてあげればOKです。
build Valiants はIDEの左下にあって目立たないですね😰

🔗 Refs