项目实现多工程联编
在一个Xcode工作空间(.xcworkspace)建立多个工程(.xcodeproj)。目的是为了加快编译(build)速度。可能由于引用第三方的功能代码过大,如果使用一个工程,就会编译工程所有代码,耗时较大(我们经常遇到编译和运行要十几秒的,可能就是这个原因);如果我们把第三方代码转移到一个独立工程,而且第三方代码又不需要修改,那么我们编译其他工程,就不会把这个工程一起编译,浪费时间,这样是不是用时会少点呢?
一、创建一个工作空间(Workspace)
创建一个工作空间,我这里命名为:MultipleProjects.xcworkspace
操作:
3FAEF1E4-37B4-4B4A-A95B-32AB74221EE4.png
效果:
1570097B-F7DA-4FF9-925B-5253CC6F80FD.png
这个样式是不是很熟悉?与Cocoapods创建的工程是同一个格式,都是.xcworkspace(工作空间)。
二、创建两个普通工程(测试多工程联编)
创建两个工程,我这里命名为:OneProject和TwoProject,目录路径自定义,我这里把工程和工作空间放一起,方便管理。
操作:注意:要先打开.xcworkspace,在里面创建新工程,还要add to到工作区间如图。否则不能联编。
694ADFE5-05CE-4C2A-9EBD-07FAE3AE6A66.png
CC2658B2-2254-40E3-8717-D398109A445A.png
效果:
75219BF2-6FDF-4153-96AA-04820E6E22A5.png
三、将工程添加到工作区间
1.打开工作空间.xcworkspace文件;
2.在Xcode工程中,File->Add File To "XXX.xcworkspace";
3.选择.xcodeproj文件进行添加(不是选择文件夹)。
E4C7EC1C-6229-4554-A1E4-AC489F26F687.png
四、关联项目(引入路径)
A想引用B,就在A设置:引用B的路径。也可以相互关联引用。
Build Settings -> Search Paths -> Hearder Search Paths,点击打开列表,进行操作。
这里是在Two引用One:"$(SRCROOT)/../OneProject"
07DCFD17-F8F6-4C2B-AB44-582DA758001B.png
五、测试方法调用
在OneProject工程添加新类和新方法,然后在TwoProject工程进行调用。
OneProject工程操作:注意:要同时引用.h和.m文件,不然会报错:
symbol(s) not found for architecture x86_64
5E859DAA-83EA-4246-A823-46C389D6E01F.png
TwoProject工程操作:
9F8B2044-E900-4A79-B330-15B5B81B9D11.png
六、其实到上一步已经完成联编了,这里多增加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
3.初始化pod:pod install
4.完成
43EB7640-1152-4869-8EB3-3AD83C0C8572.png