• SDK中.a包过大,单独作为一个项目,功能项目引入SDK项目文档 及Search Paths相关参数说明


    SDK包过大,单独作为一个项目

    项目中使用第三方的SDK包(例如所有的.a文件1G多),导致项目整体过大,这个时候就可以把第三方的.a文件单独作为一个项目。

    每次自动化打包都要从git拉去项目,不用每次都拉去第三方的项目。

    首先在TEST文件夹中创建一个Demo,在demo 中使用到了几个xxx.a文件,如下图所示:

    在Demo同级的文件夹中创建文件夹Demo-sdk文件夹,里面放入demo 中使用到了几个xxx.a文件,如下图所示:

    第一种方法:

    打开Demo 在General中Linked Frameworks and Libraries中添加.a文件,点击+号,选择add other选中Demo-sdk文件夹中的.a文件,如下图所示

    这时候Linked Frameworks and Libraries中会成功添加.a文件,在查看Build Settings中Search Path - Library Search Paths中会指向.a所在文件夹,如下图所示:

    这个时候.a文件已经可以正常引用。

    第二种方法:

    打开项目,找到Build Settings中Search Path - Library Search Paths,在Library Search Paths后面双击,再打开Demo及Demo-sdk所在的文件夹,把Demo-sdk文件夹直接拖拽到Library Search Paths添加路径界面,如下图所示:

    拖拽成功后,会出现指向路径,如下图:

    这个时候.a文件已经可以正常引用。

    Search Paths相关参数说明

      • 导入库的时候自动生成的的路径:$(PROJECT_DIR)/xxx/xxx/xxx,手动拖拽的路径"$(SRCROOT)/../xxx/xxx/xxx", 手动拖得有双引号,双引号的作用是如果在路径中有空格,可以识别该路径。没有双引号但是路径中有空格,我们发现它会自动变成两个路径。
        • 路径中有空格必须要加双引号
      • 多个路径可以用空格隔开,不用双引号包住
      • $(SRCROOT)/ $(PROJECT_DIR)基本没啥区别,都是指向*.xcodeproj所在的路径
      • 通过../来调到上一层路径,返回上上层文件夹用../../
      • $(inherited): target 的 Framework Search Paths添加$(inherited)参数会从PROJECT -> Build Settings -> Framework Search Paths里面的路径会被其继承,没有的话不会继承。所以一个项目里面有多个target,使用到了同一个库(Library或Framework)那么为了方便我们可以在target添加继承参数,并且PROJECT统一中添加库的路径。继承的优先级:
        • Platform defaults
        • Project file (描述举例用这个优先级,比较常用)
        • xcconfig file for the Project file
        • Target
        • xcconfig file for the Target
      • recursive:遍历该目录,non-recursive:默认路径设置;不遍历该目录。如果路径的属性为recursive,那么编译的时候在找库的路径的时候,会遍历该目录下的所有子目录的库文件。PS:在搭建项目的时候,可以创建一个专门放库文件的文件夹并且设置其属性为recursive。$(PROJECT_DIR)/**相当于遍历项目文件同级下的所有路径(不推荐使用,项目大的话,影响编译的速度)。
      • Header Search Paths 、User Header Search Paths的参数设置与其相同

    参考

    Search Paths相关参数说明 --->https://www.jianshu.com/p/9f9c1fd2e8b5

  • 相关阅读:
    JS流程控制语句
    JS操作符
    JS数据类型
    JS基础语法与JS变量
    CSS案例1(导航栏)
    CSS三大特性
    CSS——背景,渐变和列表
    HTML+CSS项目——模拟京东网页
    JavaScript简介
    js -04课程 更换背景图片
  • 原文地址:https://www.cnblogs.com/lulushen/p/9842401.html
Copyright © 2020-2023  润新知