自动打包脚本报ruby找不到错误

最近更新了CocoaPods,同时也更新了ruby,但在使用Jenkins自动打包的时候,发现脚本报错。在查询时发现网上很多错误信息,于是决定整理一下,方便以后查询。

编译报错内容

1
2
3
4
5
cntp@TPL-0000-161520deMacBook-Pro tpocrdemo % sh Packaging/AutoPackaging.sh
***********************开始build archive app文件***********************
当前目录路径-------->/Users/cntp/Desktop/tpaiface-ios/ocr-191103/tp/tpaiface/dev/iphone/tpocr-v1.0.191101/tpocrdemo
Packaging/AutoPackaging.sh: /usr/local/bin/xcpretty: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory
***********************编译失败********************************

从报错信息中可以看出在使用xcpretty时使用的相应ruby版本未找到。

于是使用open /System/Library/Frameworks/Ruby.framework/Versions 打开相应目录发现目录中下级目录为/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby跟预期版本不符。

那就切换一下即可。

查看ruby当前版本

1
2
3
4
5
cntp@TPL-0000-161520deMacBook-Pro ~ % rvm current
ruby-2.5.1
cntp@TPL-0000-161520deMacBook-Pro ~ % ruby --version
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin18]

在使用ruby --versionrvm current指令查看版本时发现ruby的版本为2.5.1,而电脑中的那个目录为2.6,看来需要更新ruby,不过理论到排查到这里,只要切换下ruby的版本就可以了。

切换ruby版本

1
2
3
cntp@TPL-0000-161520deMacBook-Pro ~ % rvm --default use 2.5.1
Using /Users/cntp/.rvm/gems/ruby-2.5.1

因为目录电脑安装的ruby的版本为2.5.1所以使用rvm --default use 2.5.1指令将Mac上的ruby的版本切换到2.5.1

运行脚本验证

1
2
3
4
5
*************************自动打包结束**************************
README.md ipa-1.0 tpocr-ios-v1.0.191101.zip
doc ipa-1.0.zip tpocr接口设计说明.md
************************* done! 😎 **************************
打包完成,本次共节约 4 分钟

运行脚本,发现脚本已经不会报错,说明问题已经解决。