很多人习惯了用Cocoapods
管理 Xcode 工程依赖,较少直接引一个framework,静态库或者动态库。
一般工程中加入framework或者静态库步骤为:
- 首先,静态库或者framework复制到工程目录中
- 然后,Xcode依次点击
工程名>Targets > Build Phases > Link Binary With Libraries
- 最后,把framework或者静态库直接拖进去编译就行
以上步骤能编译成功的前提是第一步把framework或者静态库复制到了工程目录中。Xcode 在添加对应的framework或者静态库时自动添加了相对于工程根目录的搜索目录。
但有时候我们就不想把库复制到工程目录呢?这时候Xcode不会默认新增搜索目录,如果不添加搜索路径库文件就找不到了。
这时候就该让各个搜索目录上场了。
ps:在工程名>Targets > Build Settings
- Framework Search Path :framework搜索目录
- Library Search Path : 静态库搜索目录
- Runpath Search Path: 动态库搜索目录
所以当我们把静态库或者framework放在工程目录中,然后添加到工程名>Targets > Build Phases > Link Binary With Libraries
时Xcode自动在Library Search Path
或者Framework Search Path
中添加了$(PROJECT_DIR)
或者$(PROJECT_DIR)/XXX
。这样就制定了搜索目录。放在工程目录之外的xcode 就不会新增此搜索目录项。需要开发者自行添加并确保路径准确。这时候通常需要用到下面两个宏来拼接相对目录:
- $(PROJECT_DIR): 表示工程根目录,也就是
xxx.xcodeproj
所在的目录,我们可以通过拼接或者../
来从制定相对目录 - ${PODS_ROOT}:表示
Cocoapods
生成的Pods
目录
网友评论