|
<pre>修改完核心代码后,一共还需要做以下几步:
1、修改spec文件(修改s.version,s.description等)
2、pod install (使Example与pod下来的库产生关联)
3、提交本地仓库代码至远程仓库
4、打标签,并提交至远程
5、验证spec,并提至私有索引库
所以 以下用fastlane方式实现组件pod打tag发版自动化,最终在终端只需一行命令即可更新版本
[TOC]
1.fastlane简介
Fastlane文档说明
Fastlane是一个ruby脚本集合,它可以按照我们指定的路线,在指定位置执行我们所要执行的操作。这里我们称这样的路线为「航道(lane)」,这样的操作称为「Action」
Action是Fastlane自动化流程中的最小执行单元,用来执行Fastlane脚本中的命令,关于更多的描述可以到
Actions - fastlane docs
查看,顺便附上
action的源码地址
2.fastlane安装
2.1确保ruby为最新版本
brew update
brew install ruby
2.2安装fastlane
sudo gem install -n /usr/local/bin fastlane
踩坑记录:
ERROR: Error installing fastlane:
ERROR: Failed to build gem native extension.
current directory: …extconf.rb
mkmf.rb can’t find header files for ruby at …extconf failed, exit code 1
中间还有一段提示,让你更新ruby的环境 ruby-dev或者ruby-devel
3.fastlane初始化
标准创建,是使用$ fastlane init 但目前使用场景不需要,执行以下操作即可
cd到本地组件仓库的根目录
# 创建一个fastlane文件夹
# 进入fastlane目录
# 创建一个Fastfile文件
mkdir fastlane
cd fastlane
touch Fastfile
4.fastlane文件修改
航道上要扫描的操作可以到
Actions - fastlane docs
上查找
# 描述航道
desc "pod私有库自动化"
# 定义航道, 航道名称是 repo
lane :repo do |options|
target = options[:target]
tag = options[:tag]
# 定义action
#测试工程install
# pod install
cocoapods(
podfile: "./Example/Podfile"
)
# 提交本地仓库
# git add .
git_add(path: ".")
# git commit -m "xxx"
git_commit(path: ".", message: "维护pod私有库")
# 推送远程仓库
# git push origin master
push_to_git_remote
# 判断是否有该版本, 如果有就先删除
if git_tag_exists(tag: tag)
UI.message("您输入的tag:#{tag}已存在,即将自动清除")
remove_git_tag(tagNum: tag)
end
# 打版本标签 记得podspec先修改版本号
# git tag -a '#{tag}'
add_git_tag(
tag: tag
)
# 推送到远程库
# git push --tags
push_git_tags
# 本地验证私有库 这里要写自己组件验证时需要的指令
# pod lib lint
pod_lib_lint(allow_warnings: true,use_libraries:true)
# 推送到私有管理库 CommonSpec本地索引库repo的名字一般不会更改这里直接写死
# pod repo push CommonSpec "#{targetName}.podspec"
pod_push(path: "#{target}.podspec", repo: "CommonSpec", allow_warnings: true,use_libraries:true)
end
5.验证fastfile
fastlane lanes
6.执行fastlane
fastlane 航道名称 tag:版本号 target:组件库名称
例如:
cd到组件的根目录
fastlane repo tag:0.2.0 target:OLEAsyncSocket
如果出现tag冲突,可以自行删除该tag,新的项目需要先关联一下远程仓库
以上做完成功后,后续组件更新代码发版更新至spec管理仓库只需要在组件根目录终端执行
fastlane 航道名称 tag:版本号 target:组件库名称
即可
</pre>
|
[图片上传中...(image-dada8d-1583918761725-2)]
[图片上传中...(image-28f8ff-1583918761725-1)]
[图片上传中...(image-43dc1b-1583918761725-0)]