Xcode里面是可以同时存在多个工程的。可以通过存放在同一个工作空间来实现同一个Xcode页面存在多个工程,也就是有多个xcodeproj。如下图所示。
在Xcode页面中管理3个工程
这样不仅可以方便管理几个相似功能的工程,更重要的是,可以实现多工程联编。
接下来我们会做一个多工程的Demo
- 建立一个工作空间MyWorkspace。
- 使用方法一建立一个普通的Xcode工程MyApp1添加到MyWorkspace。
- 使用方法二建立一个普通的Xcode工程MyApp2添加到MyWorkspace。
- 建立一个SDK工程MySDK添加到MyWorkspace。实现联编。
1.建立一个工作空间MyWorkspace
Xcode里面,建立一个工作空间。File->New->Workspace,命名为Myworkspace,存放在文件夹MyWorkspace中(名字都是可以随便命名的)。
新建一个workspace
这样我们就建立了一个空的工作空间。然后我们就可以往这个工作空间中加入几个Xcode工程。
2. 使用方法一建立一个普通的Xcode工程MyApp1添加到MyWorkspace
File->New->Project 新建一个名为MyApp1的app工程文件。为了便于管理,我们把他放在MyWorkspace文件夹中。创建完成后
在工作空间的Xcode工程中,File->Add File To "MyWorkplace",选中刚才创建的MyApp1工程。这样MyApp1工程就添加到了MyWorkplace中了。
创建一个普通的App工程
将MyApp1添加到MyWorkspace
3. 使用方法二建立一个普通的Xcode工程MyApp2添加到MyWorkspace。
我们用另外一种方法添加一个工程到MyWorkplace工作空间中。
File->New->Project 新建一个名为MyApp2的app工程文件。在存放工程的界面中,将下面的Add to : 选择成MyWorkspace。这样MyApp2工程就添加到了MyWorkplace中。到此,我们就可以在一个Xcode的界面中同时管理两个工程了。
建立工程的时候将工程添加到MyWorkspace中
4. 建立一个SDK工程MySDK添加到MyWorkspace。实现联编。
但是多工程使用的精髓并不在这里,而在于两个工程连编。(详细的生成过程 https://www.jianshu.com/p/713f8b2826c7)
我们新建一个名为MySDK的.a库。然后将这个MySDK工程添加到MyWorkplace,来实现MyApp2与MySDK联调。
File->New->Project->选择Static Library ,按照方法二添加到MyWorkspace。然后在MySDK里面创建一个sayHello类方法。在方法中打一个断点。将.a库拉到MyApp2里面。在ViewController里面调用sayHello方法。执行之后,断点就会停在MySDK工程中的里面。这样就可以在两个工程进行调试了。
建立一个静态库工程,添加到MyWorkspace
在MySDK中加一个sayHello方法
在MyApp2中调用sayHello方法
运行MyApp2,断点会停在MySDK工程. nice,完成. https://github.com/guochaoshun/Multiple_Projects_Target