しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

iPhoneアプリ開発でデバッグ版とリリース版をきれいに同居させる

リリース済のアプリを開発する際、AppStoreから入れたアプリを上書きしてしまう問題の解決策です。
普段使いしているアプリの場合、開発用で上書きされるのは少しめんどくさいです。
今回はその回避策を書いてみます。

debugビルドとreleaseビルドでbundle idを変える

まずはAppStoreから入れたアプリを上書きしないようにします。
最初にBuildSettingsでユーザー定義変数を追加します。

f:id:llcc:20150726135341p:plain

User-Definedに行が追加されるのでそこのデバッグにだけ接尾辞を追加します。

f:id:llcc:20150726135459p:plain

最後にInfo.plistのBundleIDで今追加した値を参照するようにすれば完了です。
これで開発中はリリース済アプリを上書きしなくなります。

f:id:llcc:20150726135611p:plain

デバッグとリリースでアプリ名も変えてみる

これで2つを共存する事ができたのですが、そうするとどっちがデバッグ版かが分かりにくくなります。
分かりやすくする為に、アプリ名も変えてみます。
アプリ名も同じように値の定義とInfo.plistの修正をします。

f:id:llcc:20150726140715p:plain

これでこのように共存させる事ができました。 f:id:llcc:20150726140811p:plain

アイコンもデバッグとリリースで分けてみる

更に視認性が高まるようにアイコンも変えてみます。
アイコンは出し分けが難しく見えますが、実は環境毎に分ける事ができます。

f:id:llcc:20150726141317p:plain

上の設定を見ると一見分けれないようですが、実はBuild Settingsから設定すれば出し分けできます。

f:id:llcc:20150726141449p:plain

下のようにアプリを分ける事ができました。

f:id:llcc:20150726141510p:plain

課金テスト用の環境を作る

これで開発版とリリース版の環境を分けれました。
しかしデバッグ時に本番用BundleIDを使いたい時に手動で設定変更する必要があって少し不便です。(課金のテストとか)
そういった時は環境を一つ追加するとスムーズです。

まずは下のように環境を一つ増やします。

f:id:llcc:20150726142325p:plain

そして下のようにPaymentでは本番用BundleIDを使うようにします。
ついでに名前も変えると分かりやすいかと思います。

f:id:llcc:20150726142416p:plain

最後にPaymentで実行できるSchemeを作ります。
下画面からNew Schemeを選択します。

f:id:llcc:20150726142603p:plain

そしてそのSchemeデバッグビルド時にPaymentを見るようにすれば設定完了です。

f:id:llcc:20150726142600p:plain

これで課金用の実行環境を作る事ができました。

f:id:llcc:20150726142934p:plain