iOS开发之常用技术点fastlane持续集成-CI

Jenkins + XCode + TestFlight + F

2018-10-10  本文已影响753人  小呆子

先如今,使用脚本打包,进行app的持续化集成已经成为常态,
不用在耽误时间进行打包的管理,
比较浪费研发的时间,打包的时候,还不太好切换分支,
所以准备一台低配置的mac mini ,
作为公司内网的一台打包服务器,快乐的进行脚本打包吧


整体流程

fastlane打包流程.png

物料准备

用自己开发的电脑也是可以,笔者就是用自己的电脑,在打包过程中,启动Jenkins 服务,会占用cpu 较为严重,亲测还好

iOS 无法在linux 上打包,原因是XCode 只能在OSX 系统上安装,若非要在Linux 上实现,可以建立节点,不过太复杂了


Jenkins 安装&部署

homebrew 直接安装最新版2.144

$ brew install jenkins

jenkins 常见命令

jenkins -h //启动Jenkins
control + c //快捷键关闭Jenkins

配置jenkins 管理员账号和密码

打开浏览器,进入 http://localhost:8080/ 如果没有效果,看下shell 中Jenkins 的日志,日志还是较为详细的
根据网站提示,简单配置就行,毕竟我们是局域网,内网访问下
配置完毕在jenkins工作目录 /Users/XXXX/.jenkinsconfig.xml 文件会记录登录账户的信息
如果不小心忘记了密码,还有很多方式可以找回,总是Jenkins 是一个很健全稳定的网站

安装Jenkins插件

点击系统管理-管理插件-可选插件,可以搜索插件,公司项目是托管在gitHub上的,所以我选的插件有(用其他托管代码的可以对应选择插件),

后期做单元测试,还有其他很多好玩的插件相配合

Jenkins插件安装

打包Job 配置

#切换到当前的打包分支
git checkout $branch  
#拉取fastlane 和 cocospod
bundle install
#拉取pod 库
pod install --repo-update
#fastlane 打包脚本
fastlane beta
归档成品 打包成功日志

FastLane 脚本编写

fastlane beta打包脚本示例

功能支持

  1. build 自动增1,并上传github, 不使用时间戳,是因为可读性较差
  2. 脚本提交pull request
  3. 打testflight 包,且自动上传到testflight

浅析

  lane :beta do 
    #build 版本号自动增1,使用fastlane 自带Action 
    increment_build_number
    #指定工作目录下当前工程
    build_app(workspace: "Vite.xcworkspace", scheme: "Vite")
    #上传testflight,会使用fastlane的缓存配置,里面有上传账号的信息
    upload_to_testflight
    #将自增的版本号代码,上传到github仓库
    push_git
  end

fastlane 有很多好玩的Action

其他

  1. mac电脑 固定ip
  2. mac 不要休眠
  3. 每日构建定时器打包,小团队感觉没有必要,并且浪费磁盘空间,保存打包的符号表,linkmap等重要文件

个人感悟

上一篇 下一篇

猜你喜欢

热点阅读