上一篇文章,介绍了怎么开发一个私有的模块供他人使用,这一篇讲一下怎么自动化的实现一个模块的更新。
先来看一下,手动更新一个模块都需要做哪些工作。
- pod install 然后修改代码
- 修改podspec,升级版本号
- git add .
- git commit -m 'xx'
- git push origin
- git tag -a xx -m 'xxx'
- git push --tags
- pod repo push XXXSpecs XXX.spec 对spec文件进行验证&提交
有没有可能,一行代码就实现上面所有的步奏呢,答案是可以的,我们可以通过fastlane,创建一个自动化的ruby的脚本来实现上面的步奏。下面的一篇简单的介绍
1,首先,安装fastlane
brew update
brew install ruby 要求ruby版本最新
sudo gem install fastlane
安装成功后,可以通过在终端输入fastlane查看相关信息
2,cd 进入项目的根目录
fastlane init
3,进入fastlane文件夹,编写Fastfie
# 定义很多个航道
# 一个航道: 快速的升级维护pod私有库
# 描述航道是做什么用的
desc "快速的升级维护pod私有库"
lane :ManagerPodLib do |options|
targetName = options[:targetName]
tagName = options[:tagName]
# 这里面, 只能写已有action
# 1. pod install
# 这里的路径, 统统是相对于根路径
cocoapods(
clean: true,
podfile: "./Example/Podfile"
)
# 2. podspec升级版本号
version_bump_podspec(path: "#{targetName}.podspec", version_number: tagName)
# 3. 提交代码到远程代码仓库
# 1. git add .
git_add(path: ".")
# 2. git commit -m ‘xx’
git_commit(path: ".", message: "升级版本")
# 3. git push origin master
push_to_git_remote
# 判断标签是否已经存在
# 如果存在, 删除 不存 (自定义)
# 4. 打标签提交
# 1. git tag 0.2.0
add_git_tag(
tag: tagName
)
# 2. git push —tags
push_git_tags
# 5. 提交podspecs
# pod repo push XMGFMSpecs XMGFMBase.podspec
pod_push(path: "#{targetName}.podspec", repo: "SKFFMPrivate")
end
repo 就是你的定义的私有Spec名称。
编写好上面的fastlane以后,试着修改一下代码
然后cd 进入根目录,
fastlane ManagerPodLib targetName:SKFDownLoadLib tagName:0.2.0
targetName 后面是代码库的名字,tagName是要升级的版本号。
一行代码就实现了自动化的更新模块
使用中,有任何问题,欢迎留言。