Fastlane - 解决报错Could not find a ios simulator
# 一、问题
近日在公司用 Jenkins
给组件库打包遇到如下错误
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.
首先要确保当前是否真的没有模拟器
Xcode
-> Window
-> Devices and Simulators
左侧的 Simulators
列表下会展示当前所有的模拟器,如果没有则点左下角的 +
进行添加
如果无法进行界面操作的话,可以使用如下命令列出模拟器
# 列出所有的模拟器
xcrun simctl list
这里可以看到是有模拟器的,经过一顿搜索,网上基本上就两个步骤
1、重装 Cocoapods
gem uninstall cocoapods
gem install cocoapods
2、更新 fourflusher
gem uninstall fourflusher
gem install fourflusher
或许对一般的情况应该已经生效了,但是对我这种情况没用。
更奇葩的是,自己在终端里执行组件库的校验和打包是没有问题的,但是一旦用 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
去对私有组件进行发布,结果成功了~😅
# 三、其它问题
这是在整个解决过程中遇到的其它问题,顺带记录下来~
# 1、问题
执行 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)
# 2、原因
原因是 ruby
环境错乱,导致找不到 gem
可执行文件
# 3、解决
1、重新安装 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
2、重新安装 cocoapods
和 fastlane
重新安装了 ruby
版本后,需要重新安装 cocoapods
gem install cocoapods
fastlane
亦是如此
gem install fastlane
- 01
- Flutter - 子部件任意位置观察滚动数据11-24
- 02
- Flutter - 危!3.24版本苹果审核被拒!11-13
- 03
- Flutter - 轻松搞定炫酷视差(Parallax)效果09-21