react-native run-ios can not find any simulator

☆樱花仙子☆ 提交于 2019-11-27 02:16:01

问题


I have been facing an issue where 'react-native run-ios' can not start, regardless of the simulator I add to the --simulator argument. XCode has the correct location for the 'command line tools'

I am always getting the error: Could not find iPhone X simulator

Error: Could not find iPhone X simulator
    at resolve (/Users/eric/.../swim/node_modules/react-native/local-cli/runIOS/runIOS.js:149:13)
    at new Promise (<anonymous>)
    at runOnSimulator (/Users/eric/.../swim/node_modules/react-native/local-cli/runIOS/runIOS.js:134:10)
    at Object.runIOS [as func] (/Users/eric/.../swim/node_modules/react-native/local-cli/runIOS/runIOS.js:106:12)
    at Promise.resolve.then (/Users/eric/.../swim/node_modules/react-native/local-cli/cliEntry.js:117:22)

react-native info

>   React Native Environment Info:
>     System:
>       OS: macOS 10.14.2
>       CPU: (12) x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
>       Memory: 6.76 GB / 32.00 GB
>       Shell: 3.2.57 - /bin/bash
>     Binaries:
>       Node: 10.15.0 - /usr/local/bin/node
>       Yarn: 1.13.0 - /usr/local/bin/yarn
>       npm: 6.4.1 - /usr/local/bin/npm
>     SDKs:
>       iOS SDK:
>         Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
>     IDEs:
>       Android Studio: 3.1 AI-173.4819257
>       Xcode: 10.1/10B61 - /usr/bin/xcodebuild
>     npmPackages:
>       react: 16.6.3 => 16.6.3 
>       react-native: 0.57.8 => 0.57.8 
>     npmGlobalPackages:
>       create-react-native-app: 1.0.0
>       react-native-cli: 2.0.1
>       react-native-git-upgrade: 0.2.7

回答1:


Update

It is fixed in v1.9.8.

Update cli is the easy solution

npm install -g react-native-cli@latest

This issue is fixed but not released yet. https://github.com/react-native-community/react-native-cli/pull/274

So it can be solved temporarily to fix the file below.

/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

Change this line

if (!version.startsWith('iOS') && !version.startsWith('tvOS')) {

to

if (!version.includes('iOS') && !version.includes('tvOS')) {

Do not forget apply this again when you reinstall packages.




回答2:


I've found a temporary fix:

In the following file:

/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

...change line 42 to:

if (!version.startsWith('com.apple.CoreSimulator.SimRuntime.iOS') && !version.startsWith('tvOS')) {



回答3:


Try this script from Terminal

sed -i '' 's/startsWith/includes/g' node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

Now run

react-native run-ios



回答4:


Just do

npm install

Then it will show warnings, then fix them by using following command

npm audit fix




回答5:


I tried like below

Open Xcode. Then Preferences -> Select Components in Tabs.

Then install any one(or more) of the available simulators on the list. Preferably the recent one at the top.

It solves the problem.




回答6:


Just modify the findMatchingSimulator.js in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js.

First boot a Simulator then run xcrun simctl list --json devices and search the one with "state" : "Booted",.

Then add at the top in the findMatchingSimulator function:

return {
udid: <uuid from booted device>, // 'BFA2D7D0-AD49-472F-8279-585DDBBF9151'
name: <Name of the booted simulator>, //"iPhone X"
booted: true,
version: "com.apple.CoreSimulator.SimRuntime.iOS-13-1",

}



来源:https://stackoverflow.com/questions/54507749/react-native-run-ios-can-not-find-any-simulator

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!