前言
最近公司項目接入妙健康framework 的時候,framework不支持模擬器埋市;如果接入進去整個工程都不支持模擬器了姥宝,這怎么得了,所以想了一個辦法恐疲。
想到的辦法與實踐是:給整個iOS添加TARGETS腊满,模擬器使用的Targets工程 不接入妙健康framework,真機運行的Targets工程接入妙健康framework培己;其他項目文件兩個Targets 工程一起使用碳蛋;共同使用的文件再根據(jù)各自的Targets 工程預定義宏方式進行判斷是否寫秒健康代碼,如圖所示:
具體操作步驟:
1省咨、通過如圖方式復制一份現(xiàn)有工程肃弟,然后更名為:DoctorHealthSimulator
結果:
2、把不需要接入的framework 或者文件的Target Membership 的DoctorHealthSimulator為未選中零蓉,如果在沒有寫任何接入代碼的時候笤受,就可以用模擬器編譯DoctorHealthSimulator 就不會報錯了
3、這時候真機運行的DoctorHealth要寫接入代碼敌蜂,而模擬器運行DoctorHealthSimulator不需要寫接入代碼箩兽,但是他們都引用了同一個文件,像下面這樣干章喉,
a汗贫、如果是swift工程項目,選中DoctorHealth ->build Settings -> other swift flags 加入如圖所示配置(最后一個)
DoctorHealthSimulator就不用配置任何東西
公用文件就像如圖寫:
b秸脱、如果是OC項目工程落包,選中DoctorHealth ->build Settings -> preprocessor macros 加入如圖所示配置(最后一個)
代碼和swift工程方式寫,配置完成
c摊唇、如果是混合編寫的工程咐蝇,OC與swift代碼都需要用到,則兩個地方都要配置預編譯宏
這樣就完成了所需的配置巷查。只是模擬器運行DoctorHealthSimulator工程有序,真機運行DoctorHealth工程抹腿,就達到了需要的效果,模擬器只是沒有妙健康的功能(本來模擬器就不支持藍牙等功能)