由于公司项目拆分的版本太多,而且每个版本之间还有相同的功能模块,外加上平时自己定义了一些工具类以及封装的小控件,所以将项目模块化势在必行。利用cocoapod进行模块化就是很好的选择,他可以规范化的管理代码,功能更新后只需要修改相应的模块,更新到github上,再在项目进行相应的更新即可。省去了手动修改模块的麻烦。同时还可以进行版本管理,可以根据业务上的需求,获取到不同的模块版本。
首选电脑上需要配置好ruby和cocoapods环境,流程自行查询不做过多赘述。
本人自己的项目代码都是放在码云上,如果你没有github账号则需要注册一个新账号,注册完毕后开始创建一个新的仓库(create a new repository)
1、然后填写仓库名称(Repository name)
2、描叙信息(Description)
3、勾选项目为Public、
4、勾选README
5、选择你的语言(我这里勾选的是Object-c)
6、选择证书(通常选择MIT即可)
这样我们就在github上创建完成了一个远程仓库
复制好红框中的地址 然后打开终端
输入git clone XXX(红框中的url)
将项目clone到本地之后 找到他 放入你存代码的地方
我们打开这个项目文件夹 并且向这个文件夹中加入我们想要模块化的代码
在命令行输入如下命令,将代码推送到github上面
1、git add -A
2、git commit -m 'my test first commit'
3、git push origin
给仓库加上tag
4、git tag 1.0.0
5、git push origin --tags
成功之后再到github上面刷新一下网页
多出了这两个文件,就证明我们之前的操作成功了
至此,我们的github部分的工作就算完成了,接下来要开始做cocoapod部分的了
首先我们需要创建一个podspec文件输入如下命令
pod spec create MyGeddyPodTest
这里需要注意一点 我们的名称千万不要重复,如果重复了我们将无法提交,我们可以通过 pod search XXX(文件名)去检验一下我们的名字是否存在
注意这里的“MyPodTest“ 这个就是我们的库名,在使用时,我们需要用这个名子来拉取我们的文件(例:pod 'MyPodTest', '~> 1.0.0')
上面的步骤完成之后 我们的项目中就会多出来一个spec文件,这个文件就是配置我们这个仓库的所有相关信息。我们可以用文本编辑或者sublime 或者VS打开,编辑里面的内容,我们编辑完毕后,文件内的所有注释需要删除掉。
Pod::Spec.new do |s|
= "MyGeddyPodTest"
s.version = "1.0.0"
s.summary = "A short description of MyPodTest."
s.description = <<-DESC
我的测试项目
DESC
s.homepage = "https:///Geddy1/MyPodTest"
s.license = "MIT (example)"
s.author = { "fzw_jishubu@" => "fzw_jishubu@" }
s.source = { :git => "https:///Geddy1/MyPodTest.git", :tag => "#{s.version}" }
s.source_files = "BaseView.{h,m}"
s.exclude_files = "Classes/Exclude"
end
接下来需要注册trunk账号
pod trunk register 邮箱 昵称 --description="描述
成功之后会有让你打开邮箱进行验证的提示,打开你的邮箱点击链接进行验证
验证之后,输入
pod trunk me
这里不需要多解释,按流程操作即可
然后验证一下spec文件是否有合格
pod spec lint MyGeddyPodTest.podspec
如果有问题,对应的修改MyGeddyPodTest.podspec中的问题 ,检验合格之后,提交
pod trunk push
上传成功
这时我们就可以通过pod search搜索一下我们的库名 如果正常的话是可以显示出来 我们就可以使用了