iPhoneアプリで開発 / 本番で設定ファイルを分ける

最近ついに重い腰をあげてiPhoneアプリ開発を始めました。XcodeまわりがWeb系と大きく違うのでしょっちゅうはまりながらも頑張ってます。

しょっぱな気になったのが開発と本番での設定の分離方法です。APIのURLとKEYとかFacebookアプリのIDとかね。Railsだとdevelopment.ymlとprodcution.ymlとかで分けて書くことができますがiOSだとどうやるんだべって話です。

iOS開発のenvironment(development, production)設定 - Qiita

ここを参考にさせてもらったのですがちょっと端折られてて初学者だとそもそもXcodeのボタン配置とかでけっこう戸惑ったのでまとめておきます。

Build Configuration作成

既存の設定をコピーする形で新しい設定を作ります。最初から「Debug」「Rlease」があります。+ボタンを押して以下の通り作成します。

  • 「Duplicate Debug Configuration」→「Dev-Debug」
  • 「Duplicate Release Configuration」→「AdHoc」

Dev-Debugがシミュレーター用、AdHocが実機配布用だと思います。たぶん。

f:id:eiei19:20160412092555p:plain

info.plist作成

既存のInfo.plistをコピーしてDev-Info.plistみたいなのを作っておきます。これが開発用の設定ファイルになります。で、これをさっき作った「Dev-Debug」「AdHoc」の2つの設定が見に行くようにします。

f:id:eiei19:20160412093455p:plain

スキーム作成

画像の赤線を引いたとこ -> Manage Schmes で設定画面を開きます。

f:id:eiei19:20160412093812p:plain

Build Configuration 以下の用に変更します。

  • 「Run」⇒「Dev-Debug」
  • 「Test」⇒「Dev-Debug」
  • 「Profile」⇒「AdHoc」
  • 「Analyze」⇒「Dev-Debug」
  • 「Archive」⇒「AdHoc」

f:id:eiei19:20160412094223p:plain

終了

以上で終了です。AdhocにはProvisioning Profileとかいうのを設定しないといけないっぽいけどよくわからないので必要な時がきたらまた調べようと思います。とりあえずシミュレーターでやるならこれでOKでした。