iOS - 使用workspace引用项目framework

背景:当项目迭代到一定的规模时,模块化是必然的方向,有点不仅是易于维护而且易于迁移,对于别的项目想引用该模块,只需要导入模块framework即可,下面介绍实现方式。

1、首先看下项目中是否有workspace,没有的话可以通过CocoaPods创建一个,cd到项目路径,命令行:

pod init
pod install

然后打开workspace项目:
iOS - 使用workspace引用项目framework_第1张图片
2、这个就是我们的主项目
接下来需要将模块打包成framework供主项目调用,这里就新建一个framework(已经有模块代码的可以拖进来进新的framework),我们将模块项目命名为ProThree
iOS - 使用workspace引用项目framework_第2张图片
3、将创建好的模块copy到主项目目录下
iOS - 使用workspace引用项目framework_第3张图片
然后将ProThree的xcodeproj文件拖到xcode目录
iOS - 使用workspace引用项目framework_第4张图片
这时候就可以使用ProThree这个framework了,如果想向里面添加文件直接在里面创建即可(一般模块的东西也不是完全能适用所有项目)

4、我们新建一个文件试试看,如下图,新建一个Manager文件
iOS - 使用workspace引用项目framework_第5张图片
新建的文件需要到framework的头文件添加.h头文件,否则主项目是不能引用这个文件的,如下图:
iOS - 使用workspace引用项目framework_第6张图片
然后到Build Phases中移动Manager.h文件的位置,默认是在Project下面的,将之拖到Public下,让其成为公开的。
iOS - 使用workspace引用项目framework_第7张图片
到这里就可在主项目中使用这个这个framework:
iOS - 使用workspace引用项目framework_第8张图片
5、编译framework
刚开始ProThree.framework是红色的,需要编译下,选中ProThree以及Any iOS Device(arm64),然后Command + B编译,ProThree.framework就会变成黑色。如下:
iOS - 使用workspace引用项目framework_第9张图片

6、模块的代码管理
模块引入后要参与到主要项目的代码管理(git),这时候我们再创建一个文件夹来包括原来的主项目,然后再进行代码管理,这样就能包括主项目和模块的代码管理了。
iOS - 使用workspace引用项目framework_第10张图片
这里只是举例一个模块,真实可能会有许多的模块而且情况要复杂得多,真正要做到代码模块化是一次重构的过程,不可能只稍微改变一点代码就能完成。一旦完成后好处也是非常多,模块复用迁移都是很方便。

你可能感兴趣的:(技术小问题,workspace,framework)