创建私有库之前需要集成cocoapods包管理,这里不做赘述了。
一、本地私有库
1、为了方便说明,我将从已有项目ModuleProject
入手,将项目中A、B和网络请求模块抽离出来
2、项目同级目录下新建“Lib”文件夹用于放置私有库文件,cd到Lib目录下,使用pod lib create PQNetwork创建本地私有库
创建完成后会生成项目并自动打开xcode工程
3、将ModuleProject -> PQNetwork
文件夹文件复制到刚才创建的私有库项目中,要注意路径
4、cd到Example
目录下执行pod install,完成后 私有库项目pods就会出现3步骤加入的文件
5、以上步骤完成后,说明我们的本地库已经完成了,下面我们回到ModuleProject
项目里Podfile
文件加入pod 'PQNetwork', :path => '../Lib/PQNetwork'
。cd到ModuleProject执行pod install
6、删除ModuleProject
项目里PQNetwork
文件改用pod的PQNetwork
文件。至此本地私有库就算完成了;ModuleA、ModuleB
也是一样操作就不做重复说明了
二、远程私有库
本地私有库只是在自己开发调试使用,但在多人协作项目中别人也是会用到的,这个时候就需要远程私有库
1、在创建私有库之前,在终端执行pod repo
或者在.cocoapods
文件夹查看pod资源目录
2、Github创建一个PrivatePodSpec项目,将远程私有库关联到本地,使用终端cd到上图中的repos目录下,执行pod repo add PrivatePodSpec https://github.com/PasserbyQ/PrivatePodSpec
repos目录下会被创建一个PrivatePodSpec文件,用来存放组件的.podSpec文件的。可以理解为索引,pod通过.podSpec文件内容找到对应的代码
3、PrivatePodSpec文件只是存放组件的.podSpec文件,那我们要的组件代码在哪里呢,别着急我们这时候要开始创建远程私有代码库。还记得我们的PQNetwork
么,它就是我们需要的网络组件,我们要对它下手了。Github创建一个PQNetwork的私有库项目,打开PQNetwork的本地私有库工程中的PQNetwork.podspec文件进行修改
4、提交本地私有组件代码到远程私有代码仓库,并打上tag标签(非常重要:和podspec版本号一致)
5、执行pod repo push PrivatePodSpec PQNetwork.podspec
将.podSpec文件加入到本地私有索引库,并上传到远程私有索引库
6、回到ModuleProject
项目中,更改Podfile
文件,执行pod install
。source原路径一定不要忘了,否则找不到私有库
ModuleA、ModuleB在这里就不做重复操作了,到此私有库就创建完毕了,这是组件化必须要掌握的技能点。