what
如上图,在一个workspace 里管理多个project。
why
好处:
如图,如果KVO,JSON-Model-Demo生成lib.a
- 这些lib.a可以很方便的被MainProject使用。
- 在MainProject里,可以直接command+leftClick 查看lib.a方法的源代码
- 可以建立依赖关系,在MainProject编译时,先编译其他的lib.a
缺点:
- 资源文件在project之间不能共享,需要额外处理。
how
1.建立workspace与project
- 新建一个workspace
- 新建一个project,项目与workspace同目录。
- 打开workspace,add file,选中project的 .xcodeproj 。
- 重复2.3步,添加多个project。
OK了,每个project都能编译成功。
2.建立依赖关系
JSON-Model-Demo是libJSONModel.a的源代码工程兼测试工程。
如果需要在MainProject使用JSONModel.h,该怎么做呢?
- MainProject---Build Setting---Header Search Paths,
添加JSONModel.h的相对路径。"(SRCROOT)表示MainProject工程总目录,‘..’ 表示返回上一级,
再进入 ‘JSON-Model-Demo’ project,再进入目录JSONModel。 - MainProject---Build Phasas---Link Binary With Library,添加 libJSONModel.a。
3.资源文件共享
如果在JSON-Model-Demo这个project里,有图片,nib等文件,MainProject是无法访问的。该怎么做呢?
-
图片在哪里,MainProject才能访问到?MainProject编译后生成的MainProject.app里包含的资源文件,MainProject才能访问到。
使用bundle管理资源文件。在JSON-Model-Demo这个project里,建立resource.bundle这个target,用来管理资源文件。
在程序添加shell脚本。shell脚本负责把resource.bundle里的资源文件拷贝到MainProject.app里,然后在MainProject编译前,编译resource.bundle。详情