之前使用的是Jenkins+fir的方式,由于系统更新的缘故导致插件不能用了,于是就换成现在的方式。
打包的话其实Fastlane+fir就行了,Jenkins又起到什么作用呢?Jenkins在这里起到的是定时从svn或git上自动拉代码然后通过shell脚本调用Fastlane的命令实现自动化打包。
教程有很多,大家随便一搜就能找到很多,这里我要说的是其中遇到的一些坑,希望能帮助到一些有需要的童鞋。
Jenkins执行构建Execute shell脚本的时候总是报以下错误
$ /bin/bash /Users/Shared/Jenkins/tmp/jenkins5611140248067175328.sh
env: ruby_executable_hooks: No such file or directory
Build step 'Execute shell' marked build as failure
Finished: FAILURE
找了好多解决方式,以下的解决办法是网友说的最多的:
可能是由于 jenkins 没有设置正确的 $PATH 环境变量导致的。正确设置的方法为:
在命令行下执行 echo $PATH,记录下输出的结果
在 jenkins 中系统管理-系统设置中,找到 环境变量(Environment variables)
在 key 中填写 PATH,在 value 中填写第一步中输出的结果
保存即可。
但是这并没有解决我的问题,其实出现这种问题最有可能是你安装jenkins的时候姿势不对,所以还是卸载重装吧。
卸载方式如下:
sh "/Library/Application Support/Jenkins/Uninstall.command"
或如果使用brew安装的,可以执行以下命令
brew uninstall jenkins
然后重新安装jenkins:
brew install jenkins
ok,重新配置工程后,发现shell脚本能够正常执行了。
最后是Fastfile的文件内容:
desc "企业版"
lane :inHouse do
gym(scheme:"xxxxxx",
export_method:"enterprise",
output_directory:"./build",
clean: true,
silent: true,
workspace: "xxxxxxx.xcworkspace",
output_name:"xxxxxx.ipa"
)
firim(firim_api_token:"-------------")
end
上传fir需要在fastlane安装fir的插件:
fastlane add_plugin firim