サーバと接続するアプリでは、開発時はテストサーバ、リリース時は本番サーバへと接続先を分ける必要が出てくることがあります。
URLをいちいち手で書き換える形だとめんどい&事故るので、サクッと分ける方法をご紹介。

Android

Build Variantsで切り替えることで、処理の切り分けが可能です。

設定

まずはProjectのbuild.gradleでbuildTypesを追加します。
「release」と「debug」のbuildTypesは最初から存在するので、debugの時だけ処理を切り分ける形でOKですが、buildTypesは追加することも可能です。
今回は「development」のbuildTypesを追加してみます。

apply plugin: 'com.android.application'
…略…

android {
    ...略...
    buildTypes {
        ...略…
        development {
            initWith debug
        }
    }
}

initWith debugとすることでdebugがベースになります。
debugはキーストアを自動生成してくれるので、開発用のbuildTypesはinitWith debugしちゃうのがオススメです。

次にBuild Variantsをdevelopmentに変更します。
Android Studioの左下からウインドウを開き、プルダウンで選択。

使い方

プログラム内ではこんな感じで使えます。

if (BuildConfig.BUILD_TYPE == "development") {
    // developmentの時に実行したい処理
} else {
    // それ以外の時の処理
}

iOS

Environment Variablesを使うことで、処理の切り分けが可能です。

設定

Environment Variablesは、XCodeの Edit Scheme->Run->Environment Variables から設定可能です。
今回はkeyを「env」、valueを「development」としてみました。

使い方

プログラム内ではこんな感じで使えます。

    NSString *env = [[[NSProcessInfo processInfo]environment] objectForKey:@"env"];
    if (nil != env && [env isEqualToString:@"development"]) {
        // developmentの時に実行したい処理
    } else {
        // それ以外の時の処理
    }

これでAndroid/iOSどちらもバッチリですな。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Name *
Email *
Website

*