1. 程式人生 > >適合工程多環境切換(swift環境),適合經常打很多不同環境包的人

適合工程多環境切換(swift環境),適合經常打很多不同環境包的人

OC環境設定方法:點選前往
這篇部落格只做為對oc版本的補充,所以就不一步步來操作了,不知道怎麼操作的可以點選上面的連結檢視oc版本的配置。

swift專案要想達到同名文章oc版本的效果,有兩種設定方法,一種是新增幾步操作,另一種是全新的配置方法,更簡單,下面,我來詳細說明這兩種方法的使用和差異:
1.照著連結中oc版本的配置進行配置,配置好後,swift專案無論怎麼切換都處於DEBUG模式下,這時候,需要多幾步操作來處理:
1)在buildsetting->other swift flags,在Debug後面新增加“-D DEBUG”,
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡每一項都要設定;
2)此外,在buildsetting->Active Compilation Conditions下的Debug後面刪除原來的Debug,和上面的一樣,每一個都要刪除。
做完以上兩部操作,在Xcode中:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        var url = NSString.init()
        #if DEBUG
            url = "http://bbbbbbbbbbbbbbb"
; #elseif DEV url = "http://cccccccccccccc"; #else url = "http://dddddddddddddd"; #endif print(url) return true }

以swift的模式來寫即可實現需求,這裡說明下為什麼要這麼寫,有一種說法是swift在Debug模式下不支援這種設定,如果你有更好的解釋,歡迎告訴博主,謝謝。

2.第二種方法較上面的設定相對容易很多了,你不需要以上設定“-D DEBUG”,刪除Debug之類的,只需要在buildsetting->Active Compilation Conditions下的Debug後面寫上你需要的DEBUG=1,DEV=1,TEST=1這樣的設定就可以了,對應不同的target哦,你會發現沒有在Preprocessor Macros下面進行配置,那是因為在Xcode8新增了Active Compilation Conditions這一項之後有這樣一種約定,oc下使用Preprocessor Macros來進行配置,swift下使用Active Compilation Conditions來進行配置。


以上就是swift專案多target配置方法,如果有其他問題,歡迎加群一起討論,也歡迎補充。