项目实现多工程联编

在一个Xcode工作空间(.xcworkspace)建立多个工程(.xcodeproj)。目的是为了加快编译(build)速度。可能由于引用第三方的功能代码过大,如果使用一个工程,就会编译工程所有代码,耗时较大(我们经常遇到编译和运行要十几秒的,可能就是这个原因);如果我们把第三方代码转移到一个独立工程,而且第三方代码又不需要修改,那么我们编译其他工程,就不会把这个工程一起编译,浪费时间,这样是不是用时会少点呢?

一、创建一个工作空间(Workspace)

创建一个工作空间,我这里命名为:MultipleProjects.xcworkspace

操作:
项目实现多工程联编_第1张图片
3FAEF1E4-37B4-4B4A-A95B-32AB74221EE4.png

效果:
项目实现多工程联编_第2张图片
1570097B-F7DA-4FF9-925B-5253CC6F80FD.png

这个样式是不是很熟悉?与Cocoapods创建的工程是同一个格式,都是.xcworkspace(工作空间)。

二、创建两个普通工程(测试多工程联编)

创建两个工程,我这里命名为:OneProject和TwoProject,目录路径自定义,我这里把工程和工作空间放一起,方便管理。

注意:要先打开.xcworkspace,在里面创建新工程,还要add to到工作区间如图。否则不能联编。

操作:
项目实现多工程联编_第3张图片
694ADFE5-05CE-4C2A-9EBD-07FAE3AE6A66.png

项目实现多工程联编_第4张图片
CC2658B2-2254-40E3-8717-D398109A445A.png

效果:
项目实现多工程联编_第5张图片
75219BF2-6FDF-4153-96AA-04820E6E22A5.png

三、将工程添加到工作区间

1.打开工作空间.xcworkspace文件;
2.在Xcode工程中,File->Add File To "XXX.xcworkspace";
3.选择.xcodeproj文件进行添加(不是选择文件夹)。

效果:
项目实现多工程联编_第6张图片
E4C7EC1C-6229-4554-A1E4-AC489F26F687.png

四、关联项目(引入路径)

A想引用B,就在A设置:引用B的路径。也可以相互关联引用。

Build Settings -> Search Paths -> Hearder Search Paths,点击打开列表,进行操作。
这里是在Two引用One:"$(SRCROOT)/../OneProject"

项目实现多工程联编_第7张图片
07DCFD17-F8F6-4C2B-AB44-582DA758001B.png

五、测试方法调用

在OneProject工程添加新类和新方法,然后在TwoProject工程进行调用。

注意:要同时引用.h和.m文件,不然会报错:
symbol(s) not found for architecture x86_64

OneProject工程操作:
项目实现多工程联编_第8张图片
5E859DAA-83EA-4246-A823-46C389D6E01F.png

TwoProject工程操作:
项目实现多工程联编_第9张图片
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.完成

项目实现多工程联编_第10张图片
43EB7640-1152-4869-8EB3-3AD83C0C8572.png

你可能感兴趣的:(项目实现多工程联编)