需求:最近項目接入了一個三方SDK,但是它不支持模擬器運行。這對缺乏多機型開發的團隊是不可接受的。爲了方便適配,所以研究了讓模擬器跑起來的方法。
方案:在三方公司不能支持SDK模擬器運行的時候,我們只好自己動手豐衣足食了。我採用的方案是多target來解決。
原理:在發佈的target版本中引入需要的SDK,所以這個target只支持真機運行;在平常開發測試的target版本做其他需求開發。這樣就可以適配其他業務模塊。
步驟一:添加測試環境的target
右鍵TestProject -> Duplicate
自動生成一個target,我們可以自己修改下名字
步驟二:添加Flag(用來區分哪個target)
1、Swift工程:Build Setting->Other Swift Flags->Add
使用方式:
#if thirdSDK
print(“使用三方SDK”)
#endif
2、OC工程:build setting中搜索 macro,在preprocessor Macros展開狀態下,對新複製出的target的debug和release下都加上宏定義。
使用方式:
#if thirdSDK
print(“使用三方SDK”)
#endif
注意事項:多個target環境,我們在添加文件和資源的時候需要注意,哪些target需要,就需要勾選對應的target。如下圖:
總結:通過多target可以解決諸多不同環境導致的問題。對於自動化打包配置更是不可或缺。後面需要其他需求再做補充。