一个workspace管理多个project

what

一个workspace管理多个project_第1张图片
image.png

如上图,在一个workspace 里管理多个project。

why

好处:

如图,如果KVO,JSON-Model-Demo生成lib.a

  1. 这些lib.a可以很方便的被MainProject使用。
  2. 在MainProject里,可以直接command+leftClick 查看lib.a方法的源代码
  3. 可以建立依赖关系,在MainProject编译时,先编译其他的lib.a
缺点:
  1. 资源文件在project之间不能共享,需要额外处理。

how

1.建立workspace与project
  1. 新建一个workspace
  2. 新建一个project,项目与workspace同目录。
  3. 打开workspace,add file,选中project的 .xcodeproj 。
  4. 重复2.3步,添加多个project。
    OK了,每个project都能编译成功。
2.建立依赖关系

JSON-Model-Demo是libJSONModel.a的源代码工程兼测试工程。
如果需要在MainProject使用JSONModel.h,该怎么做呢?

  1. MainProject---Build Setting---Header Search Paths,
    添加JSONModel.h的相对路径。"$(SRCROOT)/../JSON-Model-Demo/JSONModel",
    $(SRCROOT)表示MainProject工程总目录,‘..’ 表示返回上一级,
    再进入 ‘JSON-Model-Demo’ project,再进入目录JSONModel。
  2. MainProject---Build Phasas---Link Binary With Library,添加 libJSONModel.a。
3.资源文件共享

如果在JSON-Model-Demo这个project里,有图片,nib等文件,MainProject是无法访问的。该怎么做呢?

  1. 图片在哪里,MainProject才能访问到?MainProject编译后生成的MainProject.app里包含的资源文件,MainProject才能访问到。


    一个workspace管理多个project_第2张图片
    image.png
  2. 使用bundle管理资源文件。在JSON-Model-Demo这个project里,建立resource.bundle这个target,用来管理资源文件。

  3. 在程序添加shell脚本。shell脚本负责把resource.bundle里的资源文件拷贝到MainProject.app里,然后在MainProject编译前,编译resource.bundle。详情

你可能感兴趣的:(一个workspace管理多个project)