LoginSignup
81
74

More than 5 years have passed since last update.

Xcode6,Swiftで APIのURLを分ける

Posted at

APIのURLが開発、テスト、本番と3つあるとする。
Xcode5,Objective-Cの時はPreprocessor Macrosを使ってしてたが、Swiftではこの記述ができない。

#ifdef


#endif

コンパイルのオプションを使う

XcodeのBuild Settingのカスタムフラグを使う。

定数の設定ファイルをつくり設定をかく

Const.swiftという定数のクラスを作りそこへ書く。

Const.swift
class Const : NSObject {

    /* API URLs */
    #if DEBUG
    let URL_API = "http://debug.hoge.com/api"
    #elseif STAGING
    let URL_API = "http://staging.hoge.com/api"
    #else
    let URL_API = "http://production.hoge.com/api"
    #endif

}

Xcodeの設定

TARGETS > Build Settings > Swift Compiler - Custom Flags > Other Swift Flags
Debugのところへ -D DEBUGを新たに追加する。(デフォルトは空)

ビルドし呼び出す

どこでもいいので、ログに出す。

ViewConstroller.swift
println(Const().URL_API)
/* 結果↓
http://debug.hoge.com/api
*/

Build Settings のFlagを -D STAGINGにして再度ビルド

ViewConstroller.swift
println(Const().URL_API)
/* 結果↓
http://staging.hoge.com/api
*/

リリースビルド

TARGETS > Build Settings > Swift Compiler - Custom Flags > Other Swift Flags
Releaseのところが空なので本番のURLを向く

81
74
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
81
74