0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Xcode】開発環境を分ける方法

Posted at

はじめに

毎回本番・ステージング・開発などと環境を分ける際にやり方を忘れてしまうので備忘録を残します。

基本設定

まず最初にステージング環境から作成していきましょう。

Configurationsのプラスボタンを押下して Duplicate "Debug" Configuration を選択

SettingConfiguration1.png

そうすると、Debug環境が複製されるので Staging と入力

SettingConfiguration2.png

続いてBuild Settingsを設定します。

Active Compilation Conditionsと検索

SettingActiveCompilationConditions1.png

Stagingの箇所を、STAGING に書き換え
SettingActiveCompilationConditions2.png

これで、ソースコード上で環境ごとの条件分岐ができるようになります。

# if RELEASE
  print("本番環境")
# elseif STAGING
  print("検証環境")
# else
  print("開発環境")
#endif

続いてSchemeの設定をしていきます。

Manage schemesを選択して設定画面を表示します。
manageScheme.png

デバック用スキームを選択すると、設定画面で以下の画像のようにDuplicateが選択できるようになるので選択
preDuplicateStage2.png

Scheme名を設定したら、Build ConfigurationStagingに変更
duplicate_staging_run.png

もしApp Store Connectなどに配信する場合は、Archiveも同様にStagingに変更
duplicate_staging_archive.png

同様の手順でReleaseの環境も作成します。

すると以下のようにデバッグ・リリース・検証で切り替えが可能となります。
createReleaseEnvAfter.png

上で書いたこのコードがそれぞれの環境で動くようになります。

# if RELEASE
  print("本番環境")
# elseif STAGING
  print("検証環境")
# else
  print("開発環境")
#endif

最後にBundle Identifierの設定をします。

以下の画像のようにTARGETSのBuild SettingsProduct Bundle Identifierと検索すると該当するものが表示されるため、それぞれの環境にBundle Identifierを登録すると設定は完了になります。
スクリーンショット 2024-10-01 13.48.51.png

また以下のようにUser-DefinedでBundle Identifierのユニークな部分を設定
bundleUserDefind設定.png

TARGETSのBuild SettingsでProduct Bundle Identifierと検索して一番上を以下のように変更
スクリーンショット 2024-10-01 13.41.11.png

すると先ほど同じ内容となります。
スクリーンショット 2024-10-01 13.48.51.png

それぞれの環境をビルドしてアプリが環境ごとに作成されれば成功となります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?