• 给工程添加多个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即可

  • 相关阅读:
    Installutil.exe的位置和路径
    .net服务安装(转载)
    移动程序云测试中心
    如何通过web地址直接调用webservices
    VC++引用类型与指针类型
    Android模拟 HTTP multipart/formdata 请求协议信息实现图片上传
    firefox看网页的插件
    DOS下输入汉字
    电脑APK
    HDOJ 1071(球泡无线和直线区域内的面积)
  • 原文地址:https://www.cnblogs.com/yueyuanyueyuan/p/5509790.html
Copyright © 2020-2023  润新知