前言
最近公司项目接入妙健康framework 的时候,framework不支持模拟器;如果接入进去整个工程都不支持模拟器了,这怎么得了,所以想了一个办法。
想到的办法与实践是:给整个iOS添加TARGETS,模拟器使用的Targets工程 不接入妙健康framework,真机运行的Targets工程接入妙健康framework;其他项目文件两个Targets 工程一起使用;共同使用的文件再根据各自的Targets 工程预定义宏方式进行判断是否写秒健康代码,如图所示:
具体操作步骤:
1、通过如图方式复制一份现有工程,然后更名为:DoctorHealthSimulator
image.png结果:
image.png
2、把不需要接入的framework 或者文件的Target Membership 的DoctorHealthSimulator为未选中,如果在没有写任何接入代码的时候,就可以用模拟器编译DoctorHealthSimulator 就不会报错了
image.png3、这时候真机运行的DoctorHealth要写接入代码,而模拟器运行DoctorHealthSimulator不需要写接入代码,但是他们都引用了同一个文件,像下面这样干,
a、如果是swift工程项目,选中DoctorHealth ->build Settings -> other swift flags 加入如图所示配置(最后一个)
image.png
DoctorHealthSimulator就不用配置任何东西
公用文件就像如图写:
image.png
b、如果是OC项目工程,选中DoctorHealth ->build Settings -> preprocessor macros 加入如图所示配置(最后一个)
image.png
代码和swift工程方式写,配置完成
c、如果是混合编写的工程,OC与swift代码都需要用到,则两个地方都要配置预编译宏
这样就完成了所需的配置。只是模拟器运行DoctorHealthSimulator工程,真机运行DoctorHealth工程,就达到了需要的效果,模拟器只是没有妙健康的功能(本来模拟器就不支持蓝牙等功能)
网友评论