Memo

メモ > 技術 > IDE: AndroidStudio > 製品用、開発用などの切り分け

■製品用、開発用などの切り分け
パッケージ名が同じアプリは上書きインストールされる つまり、GooglePlayからインストールした本番アプリがあると、その端末には開発版をインストールできない が、フレーバーを使用することによりこの問題を解消できる flavorDimensionsによるflavorの指定方法 - Qiita https://qiita.com/boohbah/items/389b159a1693247b15de Android StudioでFlavor・BuildTypeを分岐させてアプリビルドする詳細手順 | PisukeCode - Web開発まとめ https://pisuke-code.com/android-studio-build-variants/ 開発環境・検収環境・本番環境での処理の分岐も、この仕組みで対応できそう ■前提 productFlavors production ... 製品用 develop ... 開発用 buildTypes release ... 製品用 debug ... 開発用 と設定するものとする ■プロジェクトの作成 新規 Android Studio プロジェクトの開始 ↓ 新規プロジェクトの作成 アプリケーション名: Build Test1 会社ドメイン: refirio.net プロジェクトの場所: C:\Users\refirio\AndroidStudioProjects\BuildTest1 (アプリケーション名をもとに自動入力される) パッケージ名: net.refirio.buildtest1 (アプリケーション名と会社ドメインをもとに自動入力される) Kitlinサポートを含める: チェックする 「次へ」 ↓ ターゲットAndroidデバイス 「API 19: Android 4.4 (KitKat)」にして「次へ」 ↓ Mobile にアクティビティを追加する 「空のアクティビティ」が選択されているので、そのまま「次へ」 ↓ アクティビティの設定 特に変更せず「完了」 エミュレータと実機で、アプリを起動できるかテストする ■Flavorの設定 app の build.gradle の
buildTypes {
の上(下ではない)に以下のコードを追加
flavorDimensions "mode" productFlavors { production { } develop { applicationIdSuffix ".dev" } }
さらに
buildTypes {
の中に以下のコードを追加 (デバッグ版書き出し時に「.debug」を付けたくないなら、省略しても良さそう。要検証)
debug { applicationIdSuffix ".debug" }
さらに manifestPlaceholders を追加 (デバッグ版とリリース版で別のアプリ名を表示する準備)
android { compileSdkVersion XX defaultConfig { 〜 略 〜 manifestPlaceholders = [appName:"@string/app_name"] } 〜 略 〜 productFlavors { 〜 略 〜 develop { 〜 略 〜 manifestPlaceholders = [appName:"@string/app_name_dev"] } } }
app\src\main\AndroidManifest.xml のアプリ名を調整 (デバッグ版とリリース版で別のアプリ名を表示する準備)
android:label="@string/app_name" ↓ android:label="${appName}"
app\src\main\res\values\strings.xml で開発版のアプリ名を追加 (デバッグ版とリリース版で別のアプリ名を定義)
<string name="app_name">Build Test1</string> <string name="app_name_dev">Build Test1 Dev</string> … 追加
■ビルドの切り替え 画面左端の「ビルド・バリアント」をクリックすると、その中の「ビルド・バリアント」部分でビルドを切り替えられる 「developDebug」と「productionDebug」を切り替えると、名前の違うアプリをそれぞれインストールできる 「developRelease」と「productionRelease」は何故かエラーになって実行できない プロジェクト作成直後も「debug」と「release」から選択できるが、この「release」も実行できない リリース版は署名の登録が必要…などがあるみたい 要勉強 Android Studio : debugビルドとReleaseビルドの切替、releaseビルドの追加方法、署名付きapk作成方法 - 生活を良くします-怠惰なプログラミング https://www.what-a-day.net/entry/2016/12/11/001948 ■ビルド設定によるプログラムの分岐 設定が完了した上で実行すると、以下にプログラムが自動作成される app\build\generated\source\buildConfig\production\debug\net\refirio\buildtest1\BuildConfig.java この内容を利用して、以下のように分岐する
if (BuildConfig.DEBUG) { Log.d("TEST", "DEBUG") } else { Log.d("TEST", "RELEASE") } if ("develop".equals(BuildConfig.FLAVOR)) { Log.d("TEST", "develop") } else { Log.d("TEST", "production") }
■その他参考になりそうなページ アプリケーション ID の設定 | Android Developers https://developer.android.com/studio/build/application-id?hl=ja https://developer.android.com/studio/build/application-id?hl=ja#%E3%83%93%E3%83%AB%E3%83%89_%E3%83%9...

Advertisement