iOS ---- Xcode Search Paths相关配置

版权声明:本博客内容归个人所有,如需转载,请标明出处。 https://blog.csdn.net/m0_37468171/article/details/89553315

一:

开发的过程当中,导入第三方库(framework/.a)或者下载使用别人的demo会经常会遇到一些关于库的导入的问题。而导入第三方库后,这写库的路径应该现在在导入当前项目target的Search Paths中,具体的设置路径:target -> Build Settings -> Search Paths -> Framework Search Paths 或者 Library Search Paths, 头文件在改配置中的Header Search Paths管理。

简言之:

Framework Search Paths 管理导入的*.framework的路径
Library Search Paths管理导入的*.a的路径
Header Search Paths 管理导入的头文件的路径

Search Paths相关参数说明
导入库的时候自动生成的的路径:$(PROJECT_DIR)/XcodeForSeachPathTest/ThirdLib/zhenLib,手动拖拽的路径"$(SRCROOT)/../Frameworks/zhenFW/zhenFW.framework",很明显的区别是手动拖的有双引号,双引号的作用是如果在路径中有空格,可以识别该路径。没有双引号但是路径中有空格,我们发现它会自动变成两个路径。

路径中有空格必须要加双引号

多个路径可以用空格隔开,不用双引号包住

$(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)/**相当于遍历项目文件同级下的所有路径(不推荐使用,项目大的话,影响编译的速度)。

Search Paths子选项:Header Search Paths 、User Header Search Paths的参数设置与其相同

具体路径应该需要根据不同项目的不同的路径来配置,通过了解相关配置,可以更加方便的查错和修复错误

2.

import 双引号与尖括号的区别以及build setting 中一些 header search path 配置的说明,参考如下链接

https://blog.csdn.net/jerryandliujie/article/details/79965969

3.

经常有时候,配置是正常的但是就是一直报错???

1、删除重新添加

猜你喜欢

转载自blog.csdn.net/m0_37468171/article/details/89553315