Xcode里面是可以同时存在多个工程的。可以通过存放在同一个工作空间来实现同一个Xcode页面存在多个工程,也就是有多个xcodeproj。举个简单的例子,我们导入第三方的framework的时候,framework的作者们都是在多工程联编的基础上进行SDK开发的,换句话说,SDK在未正式上线投入使用的时候都是用多工程调试的。
接下来我们会做一个多工程的Demo
1.建立一个多工程工作空间MyWorkspace。(ps:平时导入cocoapods第三方库的时候就是建立在workspace工作空间基础上操作的,不过这些cocoapods已自动帮我们做了。)
2.建立多个普通的Xcode工程UserApp1添加到MyWorkspace。
3.建立一个SDK工程MySDK添加到MyWorkspace。实现联编。
1.建立一个工作空间MyWorkspace
Xcode里面,建立一个工作空间。File->New->Workspace,命名为UserProject,存放在新建的文件夹UserWorkspace中(名字都是可以随便命名的)。

新的一个空的工作空间建好了,我们可以往这个工作空间中加入几个Xcode工程了。
2.建立多个普通的Xcode工程UserApp1添加到UserWorkspace
File->New->Project 新建一个名为UserApp1的app工程文件。为了便于管理,我们把他放在MyWorkspace文件夹中。

在UserWorkspace文件夹下看到如下效果即可

打开UserProject.xcworkspace,在工程中File->Add File To "MyWorkplace",选中刚才创建的UserApp1工程。这样UserApp1工程就添加到了UserProject中了。


3. 建立一个SDK工程MySDK添加到MyWorkspace。实现联编。
但是多工程使用的精髓并不在这里,而在于两个工程联编联调。
我们新建一个名为UserSDK的framework。然后将这个UserSDK工程添加到UserWorkspace,来实现UserApp1与UserSDK联调。
File->New->Project->选择Cocoa Touch Framework ,取名UserSDK的app工程文件。在存放工程的界面中,将下面的Add to : 选择成UserWorkspace。这样UserSDK工程就添加到了MyWorkplace中。到此,我们就可以在一个Xcode的界面中同时管理两个工程了。



然后在UserSDK里面创建一个saySomething类方法,command+B,编译一下,就会生成一个.framework的库了,在product里Show in Finder将生成的UserSDK.framework拖入UserApp1工程目录下。在SDK源码方法中打一个断点,在ViewController里面调用saySomething方法。执行之后,断点就会停在UserSDK工程中的里面。这样就可以在两个工程进行调试了。
网友评论