Fastlane - 解决报错Could not find a `ios` simulator

欢迎关注微信公众号:FSA全栈行动 👋ios

1、问题

近日在公司用 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 Simulatorsbash

左侧的 Simulators 列表下会展现当前全部的模拟器,若是没有则点左下角的 + 进行添加微信

若是没法进行界面操做的话,可使用以下命令列出模拟器markdown

# 列出全部的模拟器
xcrun simctl list 
复制代码

这里能够看到是有模拟器的,通过一顿搜索,网上基本上就两个步骤oop

一、重装 Cocoapodsspa

gem uninstall cocoapods
gem install cocoapods
复制代码

二、更新 fourflushercode

gem uninstall fourflusher
gem install fourflusher
复制代码

或许对通常的状况应该已经生效了,可是对我这种状况没用。orm

更奇葩的是,本身在终端里执行组件库的校验和打包是没有问题的,可是一旦用 jenkins 去作这个事情就是不行。。。

我尝试在 Jenkins 上新建一个 Job,让其执行以下命令

bundle --version
gem --version
ruby --version
fastlane -v
xcrun simctl list # 列出全部的模拟器
复制代码

对打印的全部相关版本信息进行一一核对后,发现没有任何问题,与自行在终端下打印的结果是一致的

2、解决方案

通过一番思索,想着试试看关闭全部模拟器和清空全部模拟器的数据

sudo xcrun simctl shutdown all && sudo xcrun simctl erase all
复制代码

执行完毕后再使用 Jenkins 去对私有组件进行发布,结果成功了~😅

3、其它问题

这是在整个解决过程当中遇到的其它问题,顺带记录下来~

一、问题

执行 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
复制代码

二、从新安装 cocoapodsfastlane

从新安装了 ruby 版本后,须要从新安装 cocoapods

gem install cocoapods
复制代码

fastlane 亦是如此

gem install fastlane
复制代码
相关文章
相关标签/搜索