升级到Xcode 10后找不到iPhone 6模拟器

Mar*_*oux 17 xcode react-native

我更新到Xcode 10,并且自从这样做以来,我无法在终端中使用command运行模拟器react-native run-ios。我收到此错误:

找不到iPhone 6模拟器

当我转到Xcode>窗口>设备和模拟器时,模拟器就在那里,当我这样做时,xcrun simctl list devices我还会看到模拟器列表。

我可以react-native run-ios --device通过Xcode 在手机上运行该应用程序,并且尝试了多个应用程序,因此它不是该应用程序。

当我转到Xcode>首选项>位置时,在命令行工具中选择了Xcode 10.0(10A255)。

我尝试重新启动计算机,以及删除并重新安装Xcode。

有什么想法吗?

这是我的设置:

  • MacOs高山脉10.13.6
  • Xcode版本10.0
  • react-native-cli:2.0.1
  • 反应本机:0.57.1

Dam*_*ian 18

我有类似的问题。React Native-0.52.3,XCode-10.2 beta 2

function findMatchingSimulator(simulators, simulatorName) {
  if (!simulators.devices) {
    return null;
  }
  const devices = simulators.devices;
  var match;
  for (let version in devices) {
    // Making sure the version of the simulator is an iOS (Removes Apple Watch, etc)
    if (!version.includes('iOS')) {
      continue;
    }
    [...]
  }
}
Run Code Online (Sandbox Code Playgroud)
  • 打开文件: node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

  • 检查您的设备版本是否正确,例如:第29行 console.log(version)

  • 将其与第30行中的条件进行比较: if (version.indexOf('iOS') !== 0) {

我有这样的版本列表:

com.apple.CoreSimulator.SimRuntime.watchOS-5-0 -1
com.apple.CoreSimulator.SimRuntime.tvOS-12-1 -1
com.apple.CoreSimulator.SimRuntime.tvOS-12-2 -1
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我的任何版本都不会返回true ...如果有

  • 替换version.indexOf('iOS') !== 0!version.includes('iOS'),它将为我解决此问题。

  • 哇。这为我解决了。我将`version.start('iOS')`更改为`version.includes('iOS')`并进行了修复。让我感到惊讶的是,Facebook的React Native团队无法获得质量检查。 (3认同)

sam*_*ady 13

我去了node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js

而且我已经替换了:

if (version.indexOf('iOS') !== 0 )

if (!version.includes("iOS" ))

if (simulator.availability !== '(available)')

if (simulator.isAvailable !== true)


Dan*_*van 10

该错误已修复,react-native因此您可以更新package.json中的软件包:

npm install -g npm-check-updates
ncu -u react-native
npm install
Run Code Online (Sandbox Code Playgroud)

  • 告诉某人升级react-native是非常天真的建议,你会以“可能会导致问题”为由挥手而去 (2认同)

Mar*_*oux 8

找到解决我问题的方法。
您需要进入local-cli/runIOS/findMatchingSimulator.jsreact-native节点模块,并将第37行更改为

if (
        simulator.availability !== '(available)' &&
        simulator.isAvailable !== 'YES'
) {`
Run Code Online (Sandbox Code Playgroud)

有关解决方案和React-native github问题的更多信息:
https : //github.com/facebook/react-native/commit/1031872
https://github.com/facebook/react-native/issues/21571

  • 为了获得更好的质量响应,不仅要粘贴链接,请说明一些操作然后粘贴链接。如果链接断开,此响应将过时。 (2认同)

小智 5

我只想与大家分享我如何修复它,也许它可以帮助某人。

编辑此文件: node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js

更改:

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

至:

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

它为我工作。

我使用console.log(version)来查看从变量版本中得到的内容,并且该值不是预期的。