一、workspace的作用:
1、一个项目复用代码:可以关联多个工程文件,便于复用代码,提高开发效率。
2、开发多个项目:同时开发多个项目的时候可以使用workspace,把这几个项目关联起来。
3、模块化:开发SDK时用workspace,可以将各个功能不同的库文件(.a or framework)模块化,分开管理。
二、workspace的使用:
1、创建workspace:
先创建一个工作文件夹,然后在Xcode的File —> New —> workspace。
2、创建工程:
创建多个工程(.xcodeproj)文件,可以是多个项目。也可以是一个项目多个.a静态库。
3、将workspace和工程文件关联起来:
xcode7可以add,xcode6之前都是拖进来。
三、配置:(这个是重点) 怎么设置参考下面的文献。
1、对于编译有静态库的xcworkspace 可以设置静态库和主工程文件的先后的编译顺序。
2、设置主工程的头文件搜索路径:header search path :
$(BUILT_PRODUCTS_DIR)/include/静态库的名字.
3、注意点:
3.1、静态库的编译一定要编译真机的,要不一直都是红色的,不能用。只有编译了真机的才能变成灰色。
3.2、静态库中使用了分类文件 一定要在 other link flag 添加 -ObjC
3.3、把一些需要对外暴露的头文件添加到 build Phases 的 copy file中。
详情在参考文献。
可参考以下文献:
1、http://w11h22j33.iteye.com/blog/1819016
2、https://yq.aliyun.com/articles/8315
3、http://www.jianshu.com/p/1308a199f168
4、http://w11h22j33.iteye.com/blog/1819016
5、http://blog.csdn.net/itszfung/article/details/44887653
6、http://www.cocoachina.com/ios/20150127/11022.html
7、http://blog.csdn.net/itianyi/article/details/23852133
8、http://blog.csdn.net/yongyinmg/article/details/41522391
9、http://www.jianshu.com/p/b6c59d8ed2c9
添加多个target
一个项目中只能有一个project,一个project 可以有多个target。
可以理解成 一个target对应一个product。就是说,一个target对应一个APP。
一般是在同时开发iPhone app 和iPad app时会使用两个target来配合开发.
这样的好处是可以将两个app 复用相同代码。减少代码量。但是需要定义 “预编译宏” 来做区分。
配置方式:Build Settings —> preprocessor macros 中设置预编译宏。 注意要搞清楚是对哪个target设置的“预编译宏”。