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
複製代碼
相關文章
相關標籤/搜索