由于升级到Xcode 10.2,我无法再通过cli运行react-native run-ios

smj*_*393 15 xcode ios react-native react-native-cli

我今天升级到Xcode 10.2,因为升级无法react-native run-ios通过cli 运行:

react-native run-ios --simulator="iPhone X"

Found Xcode workspace a.xcworkspace

Could not find iPhone X simulator

Error: Could not find iPhone X simulator
    at resolve (/Users/user/Documents/work/a/a-light-ui/node_modules/react-native/local-cli/runIOS/runIOS.js:149:13)
    at new Promise (<anonymous>)
    at runOnSimulator (/Users/user/Documents/work/a/a-light-ui/node_modules/react-native/local-cli/runIOS/runIOS.js:134:10)
    at Object.runIOS [as func] (/Users/user/Documents/work/a/a-light-ui/node_modules/react-native/local-cli/runIOS/runIOS.js:106:12)
    at Promise.resolve.then (/Users/user/Documents/work/a/a-light-ui/node_modules/react-native/local-cli/cliEntry.js:117:22)    
Run Code Online (Sandbox Code Playgroud)

如果我运行xcrun simctl list devices所有模拟器,则显示(Shutdown) (unavailable, runtime profile not found)

iPhone X (7AADFA50-7B57-4A40-8434-9A86F345D7ED) (Shutdown) (unavailable, runtime profile not found)
Run Code Online (Sandbox Code Playgroud)

自从将xcode升级到10.2以来,还有其他人遇到过RN的问题吗?它仍然可以通过Xcode ..起作用,但这意味着打开Xcode。

小智 23

我这样解决了;

首先,您需要走这条路

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

然后;

您需要更改此代码

if (!version.startsWith('iOS') && !version.startsWith('tvOS'))
Run Code Online (Sandbox Code Playgroud)

if (!version.startsWith('com.apple.CoreSimulator.SimRuntime.iOS') && !version.startsWith('com.apple.CoreSimulator.SimRuntime.tvOS'))
Run Code Online (Sandbox Code Playgroud)

我希望这会有所帮助,

参考:https : //github.com/facebook/react-native/issues/21498#issuecomment-476621627