欢迎关注微信公众号:FSA全栈行动 👋ios
近日在公司用 Jenkins
给组件库打包遇到以下错误shell
ERROR | [iOS] unknown: Encountered an unknown error (Could not find a `ios` simulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least one `ios` simulator listed or otherwise add one.) during validation.
复制代码
首先要确保当前是否真的没有模拟器ruby
Xcode
-> Window
-> Devices and Simulators
bash
左侧的 Simulators
列表下会展现当前全部的模拟器,若是没有则点左下角的 +
进行添加微信
若是没法进行界面操做的话,可使用以下命令列出模拟器markdown
# 列出全部的模拟器
xcrun simctl list
复制代码
这里能够看到是有模拟器的,通过一顿搜索,网上基本上就两个步骤oop
一、重装 Cocoapods
spa
gem uninstall cocoapods
gem install cocoapods
复制代码
二、更新 fourflusher
code
gem uninstall fourflusher
gem install fourflusher
复制代码
或许对通常的状况应该已经生效了,可是对我这种状况没用。orm
更奇葩的是,本身在终端里执行组件库的校验和打包是没有问题的,可是一旦用 jenkins
去作这个事情就是不行。。。
我尝试在 Jenkins
上新建一个 Job
,让其执行以下命令
bundle --version
gem --version
ruby --version
fastlane -v
xcrun simctl list # 列出全部的模拟器
复制代码
对打印的全部相关版本信息进行一一核对后,发现没有任何问题,与自行在终端下打印的结果是一致的
通过一番思索,想着试试看关闭全部模拟器和清空全部模拟器的数据
sudo xcrun simctl shutdown all && sudo xcrun simctl erase all
复制代码
执行完毕后再使用 Jenkins
去对私有组件进行发布,结果成功了~😅
这是在整个解决过程当中遇到的其它问题,顺带记录下来~
执行 pod
时提示找不到 cocoapods
Traceback (most recent call last):
2: from /usr/local/bin/pod:23:in `<main>'
1: from /Library/Ruby/Site/2.6.0/rubygems.rb:294:in `activate_bin_path'
/Library/Ruby/Site/2.6.0/rubygems.rb:275:in `find_spec_for_exe': can't find gem cocoapods (>= 0.a) with executable pod (Gem::GemNotFoundException)
复制代码
缘由是 ruby
环境错乱,致使找不到 gem
可执行文件
一、从新安装 ruby
环境
执行下方命令便可从新安装 ruby
环境(默认安装最新版本)
rvm reinstall ruby --disable-binary
复制代码
这里安装了最新版本,可是不见得默认就是使用的当前安装的版本。
使用下方命令查看版本
rvm list
复制代码
以下,默认仍是 2.6.3
版本,当前终端使用的是 3.0.0
版本,当从新打开终端时仍是会使用 2.6.3
版本
LXFMBP:~ lxf$ rvm list
ruby-2.3.1 [ x86_64 ]
ruby-2.4.6 [ x86_64 ]
ruby-2.5.1 [ missing bin/ruby ]
* ruby-2.6.3 [ x86_64 ]
ruby-2.7.2 [ x86_64 ]
=> ruby-3.0.0 [ x86_64 ]
# => - current
# =* - current && default
# * - default
复制代码
执行以下命令能够设置默认使用的版本
# rvm --default use 版本号
rvm --default use 3.0.0
复制代码
结果以下:
LXFMBP:~ lxf$ rvm list
ruby-2.3.1 [ x86_64 ]
ruby-2.4.6 [ x86_64 ]
ruby-2.5.1 [ missing bin/ruby ]
ruby-2.6.3 [ x86_64 ]
ruby-2.7.2 [ x86_64 ]
=* ruby-3.0.0 [ x86_64 ]
# => - current
# =* - current && default
# * - default
复制代码
二、从新安装 cocoapods
和 fastlane
从新安装了 ruby
版本后,须要从新安装 cocoapods
gem install cocoapods
复制代码
fastlane
亦是如此
gem install fastlane
复制代码