小胖博客

记录开发和使用中的点滴

Mac下使用Jenkins踩坑 Fastlane自动化iOS打包

2018.4.17更新:
解决MAC下使用pkg安装权限问题

踩坑记录
Fastlane+蒲公英+Jenkins
fastlane command not found
mac下Jenkins 主目录导致的权限问题

写在前面

本文同步博客,掘金,简书

最近项目在做新项目时经常发现有很多小bug需要改动,一改就要重新打包,哪怕是一个很小的项目,光是编译打包导出,再上传到测试平台没个十几分钟也是下不来的。本来的话也只是想找个自动打包的脚本,找了几个发现都不怎么理想,于是就瞄准了 Jenkins + Fastlane

Jenkins是用于管理,如果只需要打包的话Fastlane就足够了

本文也主要是记录自己踩的坑,而且大部分是来自于Jenkins的,
有兴趣的童靴可以继续往下看~

当前环境

名称 版本
macOS 10.13.4
Xcode 9.3
ruby 2.4.0
fastlane 2.91.0

使用Fastlane

先说说Fastlane,毕竟Jenkins是持续化管理的,相信很多小伙伴的初衷也只是想要自动化的快速快速编译打包,省去漫长等待而已

准备工作

  • 安装RVM
    使用rvm来管理ruby环境,macOS虽然有自带的ruby环境,但是会出现各种权限问题
    安装完成后记得 使用
    source ~/.rvm/scripts/rvm
    完了后 关闭终端跑一下rvm -v看看是否正常
    如果出现command not found那就是有问题了,
    具体情况需要具体分析还是google吧

  • 安装ruby
    有了rvm安装后 直接安装ruby
    安装好后 执行which ruby 看看ruby是否由rvm管理

如果显示为
/Users/xxxxxx/.rvm/rubies/ruby-2.4.0/bin/ruby
那就可以了

  • 安装fastlane
    上面都搞定后执行安装命令
    gem install fastlane -NV
    《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

至此,我们已经可以使用fastlane自动化打包了

准备打包

  • cd 到工程主目录
  • 执行fastlane init 我这里选择的是手动配置
  • 执行fastlane add_plugin pgyer 安装蒲公英插件

编辑Fastfile

回到项目项目主目录 执行fastlane topgyer desc:更新

编译完成后就会自动上传到蒲公英

Jenkins 踩坑

Mac 下的 Jenkins真是一个大坑了。
重复过多种安装方法来进行构建,一会是github拉不到代码,一会又是fastlane command not found ,又或者是报了一堆ruby的错误,心累啊。

最后尝试了各种方法 总算是有点眉目了

pkg安装

首先我们说说最坑爹的pkg安装

 Jenkins下载 LTS的macOS版本,很方便 直接是一个.pkg文件,安装一下。

但是安装后会直接启动jenkins的web站,然后你会发现jenkins的目录是默认安装/Users/Shared/jenkins的(就是共享文件夹),也就是在你的用户目录之外, 接下来等你安装完成后一构建就是各种报错。。。

所以。。。

不要使用pkg安装。。。。

2018.4.17更新

需要注意的是安装时不使用Shared用户 (当然用了也无妨)

《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

把share用户关闭 防止权限问题
《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

安装完成后就会发现秘钥就也在用户目录下了

《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

如果忘记勾选了你会发现秘钥的位置是在shared/jenkins目录下。
没关系,设置里面删掉用户,shared 中 把jenkins 目录删了
回到Finder的Application,找到Jenkins文件夹 双击jenkins.jar

《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

继续回到localhost:8080中也能看到秘钥地址回到用户目录下了

接下来就是正常的安装插件和语言。

由于本地使用rvm来管理ruby,也是深坑一大堆,构建时会出现这些报错。
《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》
找了很多方法 原因大概是ruby的问题,加过全局变量,还是不行
《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

最后发现,其实很简单。。。一个插件搞定。
插件管理中搜索 rvm
《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

安装完成后 在项目配置的构建环境中选择rvm的ruby版本就行了。。
《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

接下来就可以愉快的构建了。

命令行安装

brew install jenkins

后端执行
nohup java -jar /usr/local/Cellar/jenkins/版本号/libexec/jenkins.war --httpPort=8080 &

接着 新开一个终端执行
open /Library/LaunchDaemons
新建一个plist文件

接着更改plist的权限
sudo chown root:wheel /Library/LaunchDaemons/org.jenkins-ci.plist

最后执行启动jenkins
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

回到localhost:8080

《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

直接查看密码 输入 进入安装插件界面。

安装完成后,先去插件管理中 安装个 汉化
《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

配置一下中文

《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

接下来就是正常创建项目了。

《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

这里可以直接填写托管平台的账号的密码,或者使用sshkey

《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

这里就直接执行fastlane命令就可以

《Mac下使用Jenkins踩坑 Fastlane自动化iOS打包》

至此就足够了。

点击立即构建,查看控制台,所有的日志都会打印出来。

等待成功就ok了

后记

踩了好几遍的坑 对于pkg的安装一直不死心,来来回回重装了好几遍。最终还是放弃了。还是老老实实用jar

参考文章:
https://www.jianshu.com/p/dc6f3fea7aa9
https://www.jianshu.com/p/3b4a131653e0

发表评论

电子邮件地址不会被公开。