fastlane实现组件pod自动化

|

修改完核心代码后,一共还需要做以下几步:

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:组件库名称

即可

|

[图片上传中...(image-dada8d-1583918761725-2)]

[图片上传中...(image-28f8ff-1583918761725-1)]

[图片上传中...(image-43dc1b-1583918761725-0)]

你可能感兴趣的:(fastlane实现组件pod自动化)