在一个Xcode工作空间(.xcworkspace)建立多个工程(.xcodeproj)。目的是为了加快编译(build)速度。可能由于引用第三方的功能代码过大,如果使用一个工程,就会编译工程所有代码,耗时较大(我们经常遇到编译和运行要十几秒的,可能就是这个原因);如果我们把第三方代码转移到一个独立工程,而且第三方代码又不需要修改,那么我们编译其他工程,就不会把这个工程一起编译,浪费时间,这样是不是用时会少点呢?
一、创建一个工作空间(Workspace)
创建一个工作空间,我这里命名为:MultipleProjects.xcworkspace
操作:这个样式是不是很熟悉?与Cocoapods创建的工程是同一个格式,都是.xcworkspace(工作空间)。
二、创建两个普通工程(测试多工程联编)
创建两个工程,我这里命名为:OneProject和TwoProject,目录路径自定义,我这里把工程和工作空间放一起,方便管理。
操作:注意:要先打开.xcworkspace,在里面创建新工程,还要add to到工作区间如图。否则不能联编。
三、将工程添加到工作区间
1.打开工作空间.xcworkspace文件;
2.在Xcode工程中,File->Add File To "XXX.xcworkspace";
3.选择.xcodeproj文件进行添加(不是选择文件夹)。
四、关联项目(引入路径)
A想引用B,就在A设置:引用B的路径。也可以相互关联引用。
Build Settings -> Search Paths -> Hearder Search Paths,点击打开列表,进行操作。
这里是在Two引用One:"$(SRCROOT)/../OneProject"
五、测试方法调用
在OneProject工程添加新类和新方法,然后在TwoProject工程进行调用。
OneProject工程操作:注意:要同时引用.h和.m文件,不然会报错:
symbol(s) not found for architecture x86_64
六、其实到上一步已经完成联编了,这里多增加CocoaPods管理
1.终端创建podfile文件:touch Podfile
2.编辑podfile文件内容:
platform :ios, '8.0'
#声明工作空间
workspace 'MultipleProjects.xcworkspace'
#以下是各个工程的配置
target 'OneProject' do
pod
#声明自身工程
xcodeproj 'OneProject/OneProject.xcodeproj'
end
target 'TwoProject' do
#声明自身工程
xcodeproj 'TwoProject/TwoProject.xcodeproj'
end