项目开发中,经常会使用自己封装或第三方的framework,但是出现问题时,我们需要调试framework包里的代码,怎么把现有工程和framework包的源码相关联,一起调试呢?可以使用xcode提供的workspace把两个项目关联起来。
一、创建xcworkspace
打开xcode,菜单File -- New -- Workspace...
![](https://img.haomeiwen.com/i18883237/0324c9b0ff24333b.png)
创建完是一个空的workspace
![](https://img.haomeiwen.com/i18883237/13b9afb7a7893e65.png)
二、关联项目
以上一篇iOS创建framework静态库(SDK&组件化)创建的两个项目为例
菜单File -- Add Files to “MyWorkspace”...
![](https://img.haomeiwen.com/i18883237/71c172a565a86d8a.png)
分别把 MySDK.xcodeproj 和 UITest.xcodeproj 添加进此workspace
![](https://img.haomeiwen.com/i18883237/c2baa2f64c5ab33e.png)
三、联调
1、删除主项目中的MySDK.framework包
![](https://img.haomeiwen.com/i18883237/eb8fe657a44c389f.png)
2、给主项目添加framework包
![](https://img.haomeiwen.com/i18883237/4c83f171abea66fa.png)
点“+”后,在列表中会显示出MySDK项目的Products里的framework包,选择并添加
![](https://img.haomeiwen.com/i18883237/accd0be41981a02e.png)
3、然后选择主项目,选择模拟器运行:
![](https://img.haomeiwen.com/i18883237/e499193d542df1b1.png)
可以看到依然能正常输出:
2020-07-28 11:16:14.792496+0800 UITest[1736:64221] MyTools First Method
而且在framework包源码工程代码里打断点也是可以断到的:
![](https://img.haomeiwen.com/i18883237/3ad3f28b17ad85d9.png)
注意!!!
当要用workspace调试多个项目的时候,每个子项目就不能单独用xcode打开了,而且每个子项目都得关掉,才能用workspace正常联编。
网友评论