Xcode
Swift

【iOS】テスト環境と本番環境

iOS開発での「テスト環境版」と「本番環境版」を作る

PROJECTとTARGETS

プロジェクトを作成するとPROJECTとTARGETSというプロジェクトに関わる設定ファイルが作られている。
大まかな内容として、
「PROJECT」プロジェクトの全体設定
「TARGETS」成果物に対する個別設定
*Targetとはビルドした結果得られる成果物のこと
*PROJECTもTARGETSも「project.pbxproj」ファイルを参照している

image.png

環境を分けるためにTargetは増やさないべき

Targetを増やすことによって各ターゲットの設定が完全に同じにできていなく、それぞれエラーが出たり出なかったりする可能性があるため、環境の管理をTargetにするべきではない。

Targetを増やすべきケース

「有料版」「無料版」などで成果物を分ける場合

Targetを増やさないべきケース

「開発環境版」「結合環境版」「本番環境版」などリクエスト先が異なる場合

「開発環境版」「本番環境版」などを管理するには

Build SchemeConfigurationで管理する

手順1. Configurationを追加する

(1-1) PROJECT => Info => Configurations(下図)
(1-2) 「+」をタップ
(1-3) Duplicateする(ここではDebugをDuplicateし「Staging」と設定)

image.png

手順2. Schemeを追加する

(2-1) Schemeをタップ(下図)

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f35393031352f62306537343139612d363963642d383136322d653933352d6532616131313463316335632e706e67.png

(2-2)New Scheme...を選択(下図)

newScheme.png

(2-3)Scheme名を決める

image.png

手順3. Schemeの設定を変更する

(3-1)Schemeをタップし、Edit Scheme...をタップ

editScheme.png

(3-2)Run項目のBuild Configurationを手順1で追加したConfigurationに変更する

editSchemeRun.png

手順4. Active Compilation Conditionsに追加する(ここでは「Staging」)

activeCompilationCondition.png

手順5. Preprocessor Macrosに追加する(ここでは「STAGING=1」)

preprocesorMacros.png

手順6. サンプルコード

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        #if DEBUG
            guard let url = URL(string: "https://www.yahoo.co.jp/") else { return }
            webView.loadRequest(URLRequest(url: url))
        #elseif STAGING
            guard let url = URL(string: "https://www.apple.com/jp/") else { return }
            webView.loadRequest(URLRequest(url: url))
        #endif

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

}

実行

元からあるSchemeでビルドした場合

image.png
image.png

追加したSchemeでビルドした場合

image.png

image.png