摘要:本文介绍如何使用workspace管理多个项目,如何进行依赖管理和依赖编译。
一般情况下一个应用只需要新建一个project,所有代码文件都放在project里面进行组织管理即可,但是某些情况下项目可能需要引入其他的项目文件,或者引入其他的静态库文件,比如某大型项目需要分组合作,将不同的功能分解成为不同的项目模块,这时候就可以使用 workspace 管理。workspace 可以单独的管理多个项目,可以通过配置,让各个项目相互依赖。(如果不使用 workspace ,对于需要用到的项目文件得手动将用到的文件复制到项目中)
建立WorkSpace
1.新建 Xcode workspace
打开Xcode,选择 xcode -> file -> new -> workspace,将Workspace命名为ObjectDev,并选则合适的目录。
2.新建 Xcode project
选择 xcode -> file -> new -> project -> single view application,将项目命名为QYObject,并添加到ObjectDev workspace中管理。
3.新建 Static Library 项目
选择 xcode -> file -> new -> project -> cocoa touch static library,将 static library 项目命名为 QYFoundationExtension,并添加到 ObjectDev worksapce 中。
Xcode 会自动在项目中生成一对 .h .m 文件,给文件添加任意测试代码,配置公开接口文件:选择 Static Library 项目 -> Target -> Build Phases -> Copy Files 添加需要公开的 .h 接口文件。
4.使用静态库项目
主项目要使用 static library 项目,就必须将静态库项目编译到主项目中,否则
会提示类似如下编译错误:
Undefined symbols for architecture arm64:
"OBJC_CLASS$_xxxx", referenced from:
objc-class-ref in xxxx.o
选择 Project 项目(QYObject) -> Target -> Build Phases -> Link Binary With Libraries 点击 + 号添加需要链接编译的静态库 .a 文件。
5.设置主项目头文件查找路径
自动配置:使用xcode 的 .xconfig文件
手动配置:选择 QYObjecC -> PROJECT -> Build Settings -> Search Paths - > Header Search Paths 添加静态库头文件的查找路径:$(SRCROOT)/../QYFoundationExtension,并且设置为 recursive。
$(SRCROOT)代表当前项目的根目录,$(SRCROOT)/../代表当前项目根目录的上一级目录
然后可以在项目中调用静态库的测试代码来编译运行。到此为止我们的主项目以及使用到的静态库项目都是在同一个仓库中管理,那么怎么样使用多个仓库管理多个静态库项目呢?下节更新!