• 给工程添加多个target


    在iOS开发过程中,我们可能遇到这种情况:一些功能、一些SDK只有在调试的时候需要,如使用FBMoryProfiler进行内存检测,利用第三方的SDK搜集崩溃日志等等。若把这些功能和SDK集成到整个项目,就会造成项目臃肿,甚至不能通过AppStore的审核。这时候我们可以通过多个target,把用户不需要的功能部分仅仅放入做开发用的target中。

    一、创建多个target(两种方式)

      方式一:复制一个和当前target完全相同的target

      右击当前target -> Duplicate,这是会生成一个xxx copy的target,resource里也会生成一个xxx copy.plist的属性文件,这个新的target和原有target是完全一致的。

      方式二:创建一个全新的target

      1、 点击target列表下方的“+”号,首先会让你选择target的类型, 既然我一直所指的都是程序本身, 那么自然选择Application了(至于其他的嘛, 有兴趣的自己研究吧, 比如我们可以把程序中的部分提取成一个Static Library).

       2、 Next后, 会让你输入一个新的Target的名字, 而不像复制的方法中, 默认生成 xxxxx copy这样的target名.

       3、 但是这样生成出的Target几乎是空的. Copy Bundle Resources, Compile Sources, Link Binary With Libraries里面都没有任何内容. 编译设置也是完全原始的状态.

       4、可以通过拖拽内容到这些target的设置中, 以及调整编译选项来完成Target的配置.  

     

    二、自定义条件编译宏

      新的target创建完成后,我们往往希望在对不同的target进行不同的编译,这时就需要使用条件编辑。

      1、添加自定义条件编译宏

      选择新建的target -> build setting -> 在Apple LLVM7.1 - Preprocessing下找到Preprocessor Macros,双击后添加一个自定义的变量(如:DEVELOPER)

      

      这时候便可使用条件编译:

      

    #ifdef    DEVELOPER
        code
    #endif

    三、把需要在新的target中使用的SDK和源文件加入新的target中。

      在使用cocoaPods添加第三方框架时,可能会因为配置改变而出现编译时链接错误,这时只需要将下图中的配置选择none,重新pod install即可

  • 相关阅读:
    3.流程控制语句
    pandas数据处理(一)pymongo数据库量大插入时去重速度慢
    windows下载安装redis
    Scrapy(一)爬知乎所有用户信息
    Mongodb去除重复的数据,pymongo去重
    selenium爬虫报错:Message: stale element reference: element is not attached to the page document 促成1分钟爬完斗鱼主播信息。
    用pyspider爬斗鱼主播信息
    曼城新闻情报站(二)Django框架的爬虫
    曼城新闻情报站(一)爬取3大网站的曼城新闻
    Beautiful Soup多线程爬取斗鱼所有主播信息(改良版)
  • 原文地址:https://www.cnblogs.com/yueyuanyueyuan/p/5509790.html
Copyright © 2020-2023  润新知