美文网首页iOS开发专题文章收藏
swift 工程 TARGETS与预定义宏

swift 工程 TARGETS与预定义宏

作者: Ucself | 来源:发表于2018-03-29 17:07 被阅读3次

    前言

    最近公司项目接入妙健康framework 的时候,framework不支持模拟器;如果接入进去整个工程都不支持模拟器了,这怎么得了,所以想了一个办法。
    想到的办法与实践是:给整个iOS添加TARGETS,模拟器使用的Targets工程 不接入妙健康framework,真机运行的Targets工程接入妙健康framework;其他项目文件两个Targets 工程一起使用;共同使用的文件再根据各自的Targets 工程预定义宏方式进行判断是否写秒健康代码,如图所示:

    image.png

    具体操作步骤:

    1、通过如图方式复制一份现有工程,然后更名为:DoctorHealthSimulator

    image.png

    结果:


    image.png

    2、把不需要接入的framework 或者文件的Target Membership 的DoctorHealthSimulator为未选中,如果在没有写任何接入代码的时候,就可以用模拟器编译DoctorHealthSimulator 就不会报错了

    image.png

    3、这时候真机运行的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工程,就达到了需要的效果,模拟器只是没有妙健康的功能(本来模拟器就不支持蓝牙等功能)

    相关文章

      网友评论

        本文标题:swift 工程 TARGETS与预定义宏

        本文链接:https://www.haomeiwen.com/subject/nizmcftx.html