Xcode子工程的具体使用

        一般我们创建多个子工程多适用于:代码抽层,业务逻辑和数据处理高度抽离、模块化,例如可以将model层和network层抽离,一个项目只建立一个公共工程,每次新建项目,只需要依赖这个工程就行了,代码模块化之后我们可以对每一个模块持续优化集成,便于实现一些更复杂的需求和结构设计(分解项目,达到低耦合);

a. 创建正常的主项目(AddSubProjectDemo)以及子工程(subProject);这里注意一下子工程创建的时候是Cocoa Static Library;

Xcode子工程的具体使用_第1张图片
两个工程创建完毕如下:
Xcode子工程的具体使用_第2张图片

b. 添加子工程及其依赖;

Xcode子工程的具体使用_第3张图片
子工程拖进主工程文件目录中

打开主工程添加子工程,选择Drag或Add File to "AddSubProjectDemo",结束后如图:

Xcode子工程的具体使用_第4张图片

c. 在工程target -> Build Phases -> Link Binary With Libraries中添加libsubProject.a

d.在工程target -> Build Settings -> Search Paths -> Header Search Paths中加入子文件目录;

Xcode子工程的具体使用_第5张图片

关于Header Search Paths这里说明一下:

1.$(inherited)

target在设置自己路径的时候如果加了这个,那么就是继承project里设置的路径。如果不需要继承就不加,要不然乱加有可能整混导致路径错误。

2.带引号的路径和不带引号的路径

带引号主要是预防路径里有空格导致本来一个路径变成了两个路径,因为空格分开就被解析位两个路径,所以最好路径带上引号。

3.$(SRCROOT) / $(PROJECT_DIR)基本没啥区别,都是指向*.xcodeproj所在的路径

4.recursive遍历该目录,non-recursive默认路径设置;不遍历该目录.   

e.工程环境配置好后,本例在子工程的subProject.h 和.m加个测试方法,然后在主工程中调用实现;

Xcode子工程的具体使用_第6张图片
Xcode子工程的具体使用_第7张图片

一般使用subProject的时候,都是和workspace一起使用的,多个子工程统一由一个workspace管理, 复杂项目的拆解可以考虑subProject+workspace+cocoapod 方式组合完成;(demo参考g ithub上的subproject)

你可能感兴趣的:(Xcode子工程的具体使用)