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を向く