<p>React-Native Run-Ios können keinen Simulator finden</p>

Erstellt am 3. Feb. 2019  ·  107Kommentare  ·  Quelle: facebook/react-native

Umgebung


Native Environment Info reagieren:
System:
Betriebssystem: macOS 10.14.2
CPU: (12) x64 Intel (R) Core (TM) i9-8950HK CPU bei 2,90 GHz
Speicher: 6,76 GB / 32,00 GB
Shell: 3.2.57 - / bin / bash
Binärdateien:
Knoten: 10.15.0 - / usr / local / bin / node
Garn: 1.13.0 - / usr / local / bin / Garn
npm: 6.4.1 - / usr / local / bin / npm
SDKs:
iOS SDK:
Plattformen: 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:
reagieren: 16.6.3 => 16.6.3
reaktionsnativ: 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

Beschreibung


Ich hatte ein Problem, bei dem "reaktionsnative Run-ios" nicht gestartet werden können, unabhängig vom Simulator, den ich dem Argument --simulator hinzufüge.
XCode hat den richtigen Speicherort für die 'Befehlszeilentools'.

Ich bekomme immer den Fehler:
IPhone X Simulator konnte nicht gefunden werden

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)

Reproduzierbare Demo


Installierter XCode von Grund auf neu.
Brandneue 'React-Native New App'

'react-native run-ios' beschweren sich immer darüber, dass der Simulator nicht gefunden wird, unabhängig von der Option --simulator.

Meine vorübergehende Lösung besteht darin, Folgendes zu ändern:
/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

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

Bug iOS Locked

Hilfreichster Kommentar

Es gibt Probleme bei der Suche nach Zeichenfolgen in der Simulatorversion in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js in dieser Zeile: if (!version.startsWith('iOS') .

Ich habe es durch includes als solches ersetzt: if (!version.includes('iOS') was das Problem für mich gelöst zu haben scheint.

Alle 107 Kommentare

Es sieht so aus, als würden Sie eine ältere Version von React Native verwenden. Bitte aktualisieren Sie auf die neueste Version, v0.58, und überprüfen Sie, ob das Problem weiterhin besteht.

Das Label "Resolution: Old Version" wird automatisch entfernt, sobald Sie Ihren ursprünglichen Beitrag mit den Ergebnissen der Ausführung von react-native info für ein Projekt mit der neuesten Version bearbeiten.

habe gerade ein brandneues Projekt ausprobiert mit:
reaktionsnativ: 0,58,3 => 0,58,3

und das gleiche Problem

  1. Können Sie überprüfen, welcher iOS-Simulator auf Ihrem Computer installiert ist?
  2. Sie können jederzeit über react-native run-ios —device=“XXXXXX’ den Simulator übergeben, auf den Sie zielen möchten

Ich habe das gleiche Problem auch hier.
Als ich zu wechselte
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
fortsetzen;
}}

Alles ist gut, da das Präfix "com.apple.CoreSimulator.SimRuntime". Ist in der Geräteliste enthalten, schlägt die reine Prüfung auf Starts mit allen Simulatoren fehl.

Ich habe für dieses Problem eine Pull-Anfrage https://github.com/facebook/react-native/pull/23293 erstellt

Hey @osunnarvik, danke, dass hast ! Könnten Sie etwas mehr erklären (vielleicht in der PR), warum dies jetzt geschieht? Ich meine, wann hat sich das Präfix geändert? Im neuesten Xcode? 🤔

Ich habe die Beschreibung der PR jetzt aktualisiert, um ein wenig darüber zu sagen, wann sie begann, und einige Versionsinformationen von XCode und xcrun hinzugefügt

@kelset Ja, ich glaube, das Format der

Super - danke Leute :)

Wir haben die PR bereits auf 0,58 zusammengeführt (da bei 0,59 usw. die CLI getrennt wird) und die nächste Patch-Version (0,58,4) das Update 💪 enthält

@kelset Ich habe den Kommentar in https://github.com/react-native-community/react-native-cli/pull/138 bezüglich der Angabe des simulatorString (Kommentar von @canterberry )

Ähm oh ja, wahrscheinlich wäre es besser, die Prüfung auch dann durchzuführen, wenn die Zeichenfolge festgelegt ist. 🤔

ok, ich werde morgen früh einen Blick darauf werfen.

Ich habe https://github.com/facebook/react-native/pull/23305 erstellt, um gepunktete Eingabeversionen für simulatorString zu verarbeiten

@osunnarvik Dieses Problem ist in der reaktionsnativen Version 0.59.1 weiterhin vorhanden

Es gibt Probleme bei der Suche nach Zeichenfolgen in der Simulatorversion in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js in dieser Zeile: if (!version.startsWith('iOS') .

Ich habe es durch includes als solches ersetzt: if (!version.includes('iOS') was das Problem für mich gelöst zu haben scheint.

Es gibt Probleme bei der Suche nach Zeichenfolgen in der Simulatorversion in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js in dieser Zeile: if (!version.startsWith('iOS') .

Ich habe es durch includes als solches ersetzt: if (!version.includes('iOS') was das Problem für mich gelöst zu haben scheint.

Es funktioniert für mich. Danke.

Es gibt Probleme bei der Suche nach Zeichenfolgen in der Simulatorversion in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js in dieser Zeile: if (!version.startsWith('iOS') .

Ich habe es durch includes als solches ersetzt: if (!version.includes('iOS') was das Problem für mich gelöst zu haben scheint.

super danke !!

Es gibt Probleme bei der Suche nach Zeichenfolgen in der Simulatorversion in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js in dieser Zeile: if (!version.startsWith('iOS') .

Ich habe es durch includes als solches ersetzt: if (!version.includes('iOS') was das Problem für mich gelöst zu haben scheint.

Ich kann wirklich nicht verstehen, wie diese Situation überhaupt existierte

Ist das mit den neuen Versionen behoben?

@evanoralph Wenn Sie dieses Problem heute wie ich haben, können Sie versuchen, die findMatchingSimulator.js in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js zu ändern.
Starten Sie zuerst einen Simulator, führen Sie dann xcrun simctl list --json devices und suchen Sie den mit "state" : "Booted", .
Fügen Sie dann oben in der Funktion findMatchingSimulator :

return {
    udid: <uuid from booted device>,
    name: <Name of the booted simulator>,
    booted: true,
    version: "com.apple.CoreSimulator.SimRuntime.iOS-12-2",
}

version kann variieren. Es ist jedoch der übergeordnete Schlüssel des gebooteten Geräteobjekts. Dies ist jedoch keine Lösung! Es ist eine Problemumgehung.

Es gibt Probleme bei der Suche nach Zeichenfolgen in der Simulatorversion in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js in dieser Zeile: if (!version.startsWith('iOS') .

Ich habe es durch includes als solches ersetzt: if (!version.includes('iOS') was das Problem für mich gelöst zu haben scheint.

Auf macOS 10.14.4 aktualisiert und XCode auf 10.2 aktualisiert, und dieses Problem trat bei mir auf. Ihre Lösung hat geholfen (obwohl dies nur eine vorübergehende Lösung ist).

Es gibt Probleme bei der Suche nach Zeichenfolgen in der Simulatorversion in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js in dieser Zeile: if (!version.startsWith('iOS') .

Ich habe es durch includes als solches ersetzt: if (!version.includes('iOS') was das Problem für mich gelöst zu haben scheint.

Genial! Obwohl vorübergehend, funktioniert es perfekt. Vielen Dank!

Es gibt Probleme bei der Suche nach Zeichenfolgen in der Simulatorversion in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js in dieser Zeile: if (!version.startsWith('iOS') .

Ich habe es durch includes als solches ersetzt: if (!version.includes('iOS') was das Problem für mich gelöst zu haben scheint.

Funktioniert bei mir! Vielen Dank! Wenn Sie einen Simulator mit mehr als einer Version ausführen (z. B. iPhone 5s iOS 10.3.1 und 12.2), werden durch diese Korrekturen alle Simulatorversionen geöffnet. Sie können eine Version mit --simulator "iPhone 5s (10.3)" .

@evanoralph Wenn Sie dieses Problem heute wie ich haben, können Sie versuchen, die findMatchingSimulator.js in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js zu ändern.
Starten Sie zuerst einen Simulator, führen Sie dann xcrun simctl list --json devices und suchen Sie den mit "state" : "Booted", .
Fügen Sie dann oben in der Funktion findMatchingSimulator :

return {
    udid: <uuid from booted device>,
    name: <Name of the booted simulator>,
    booted: true,
    version: "com.apple.CoreSimulator.SimRuntime.iOS-12-2",
}

version kann variieren. Es ist jedoch der übergeordnete Schlüssel des gebooteten Geräteobjekts. Dies ist jedoch keine Lösung! Es ist eine Problemumgehung.

Die Problemumgehung funktioniert jetzt einwandfrei. Ich weiß nicht, ob ich meine Projekte auf .59.0 aktualisieren muss

Bin ich der einzige, der nicht über node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js verfügt? Es gibt nur eine Sache im local-cli-Ordner, nämlich die Datei cli.js - irgendwelche Ideen?

Nur zu Ihrer Information, dies schien auch auf meinem System zu helfen, dieses Problem zu haben:

xcrun simctl delete nicht verfügbar

Ich habe das Problem, das Ersetzen durch includes hat mir geholfen. Wann wird es behoben?

HHHEEEYYYY ... das Ersetzen umfasst Werke !!!!!

@Titozzz Gibt es Updates, wann dies behoben wird? Die vorübergehende Lösung ist kein team- und git-freundlicher Weg.
Ich bin bereit, einen Beitrag zu leisten, wenn mir jemand sagt, wie ich vorgehen soll.

@Titozzz @kelset
Ich habe mein Problem untersucht und festgestellt, dass es sich um ein anderes Problem handelt, das hier von OP vorgestellt wird.

Das Problem ist, dass ich meine App auf dem iPad ausführen muss und da iPad-Namen die Gerätegrößen in Klammern haben, z. iPad Pro (9.7-inch) , der CLI-Code geht davon aus, dass die Gerätegröße in Klammern die iOS-Laufzeitversion ist.

Ich schlage vor, wir verwenden ein separates Argument für die Laufzeit-iOS-Version oder einen anderen Klammertyp zum Erkennen der Laufzeitversion.

Meine RN-Version ist 0.59.3

Hallo, kannst du Fragen beantworten?

Bin ich der einzige, der nicht über node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js verfügt? Es gibt nur eine Sache im local-cli-Ordner, nämlich die Datei cli.js - irgendwelche Ideen?

@lpfunding hier: node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Ich bin froh, dass Sie meine Nachricht sehen können! Zweitens vielen Dank für Ihre Antwort! Aber mein Xcode ist Version 8.1 und ich habe zusätzlich zu X Xcode-Simulatoren, aber wenn ich den Terminalfehler kompiliere, kann ich keinen Simulator finden! Ich habe die Kompilierungsbedingungen an vielen Stellen geändert, konnte das Problem jedoch nicht lösen. Daher habe ich eine Nachricht zur Hilfe hinterlassen.

Ist das der Defacto Fix? oder gibt es eine offene PR?

Dies funktioniert bei mir bei 0,58,6; Es sieht so aus, als ob es im Commit 9a8c9596ebe41e27d37ba18d6bf09f1c931c1ff2 🙂 behoben wurde

Dies funktioniert, wenn Sie React-Native auf Version 59 aktualisieren

Ich denke, mein Problem hat möglicherweise damit zu tun, dass Apple, wenn Sie XCode 10.2.1 verwenden (wie ich), den iPhone XR-Simulator in iPhone Xʀ umbenannt hat (beachten Sie das große "R" gegenüber dem kleinen "ʀ"). Wenn Sie also versuchen, auf diesen neu umbenannten Simulator abzuzielen, verwenden Sie react-native run-ios --simulator="iPhone Xʀ" . Danke Apple ...

@ lcastillo88 oh wow das ist ein schöner Fang, was für eine seltsame Veränderung 😅

Für alle, die damit zu kämpfen haben, weil Sie versuchen, einen iPad Pro-Simulator auszuführen, besteht das Problem darin, dass findMatchingSimulator.js glaubt, dass alles in Klammern die iOS-Version des Simulators ist, den Sie ausführen möchten. Es wird also versucht, den iPad Pro Simulator mit der iOS-Version 10.5-inch (oder einem beliebigen Simulator, den Sie ausführen möchten) zu öffnen. Aus offensichtlichen Gründen wird dies nicht funktionieren.

Die einfachste Problemumgehung, bis ein dauerhafter Fix implementiert ist, besteht darin, den Simulator in etwas umzubenennen, das keine Klammern enthält. Klicken Sie in Xcode auf Fenster> Geräte und Simulatoren, klicken Sie auf die Registerkarte Simulatoren und klicken Sie dann mit der rechten Maustaste auf den Simulator, mit dem Sie arbeiten, um ihn umzubenennen.

Für alle, die RN nicht aktualisieren können, aber eine automatisiertere Korrektur benötigen, können Sie das folgende Shell-Skript in Ihrer Nachinstallation verwenden:

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

Dies hat uns geholfen, unsere Automatisierungstests auf unserem CI-Server ausführen zu können.

Nur um sicherzugehen, dass ich nichts verpasst habe: Wenn Sie auf 0.59 sind, ist dieses Problem behoben, richtig?

Speziell für iPad Pro-Simulatoren (oder andere Simulatoren, die etwas anderes als eine iOS-Version in Klammern enthalten) ist dies bei der neuesten Version von react-native immer noch fehlerhaft.

Abgesehen von diesem Szenario funktioniert es gut.

Es gibt Probleme bei der Suche nach Zeichenfolgen in der Simulatorversion in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js in dieser Zeile: if (!version.startsWith('iOS') .

Ich habe es durch includes als solches ersetzt: if (!version.includes('iOS') was das Problem für mich gelöst zu haben scheint.

unglaublich, danke

Falls jemand in der angegebenen iOS-Version ausgeführt werden muss:
react-native run-ios --simulator="iPhone 8 (12-0)"
Es war vorher (12.0) aber in 12-0 geändert, nachdem ich meinen Xcode auf 10.2.1 aktualisiert hatte

Es gibt Probleme bei der Suche nach Zeichenfolgen in der Simulatorversion in node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js in dieser Zeile: if (!version.startsWith('iOS') .

Ich habe es durch includes als solches ersetzt: if (!version.includes('iOS') was das Problem für mich gelöst zu haben scheint.

Das hat bei mir funktioniert. Danke

Aber können Sie mir bitte das Problem erklären?

@ kelset

Nur um sicherzugehen, dass ich nichts verpasst habe: Wenn Sie auf 0.59 sind, ist dieses Problem behoben, richtig?

Ich habe gerade ein Upgrade auf 0.59.8 durchgeführt und es funktioniert [Upgrade über react-native-git-upgrade ]

Für alle, die RN nicht aktualisieren können, aber eine automatisiertere Korrektur benötigen, können Sie das folgende Shell-Skript in Ihrer Nachinstallation verwenden:

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

Dies hat uns geholfen, unsere Automatisierungstests auf unserem CI-Server ausführen zu können.

Das hat bei mir funktioniert

Dies könnte mir helfen, wenn jemand noch verwendet

"reaktionsnativ": "0,52,1"

Ich habe dies mit der folgenden Änderung behoben.

Geh auf diesen Weg.

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

Ändern ( Zeilennummer war 30 für mich )
if (version.indexOf('iOS') !== 0)

Zu
if (version.indexOf('iOS') === -1)

Ich verwende [email protected] und --simulator = "iPhone 8" wurde nicht richtig analysiert. Beim Hinzufügen eines Konsolenprotokolls schien es als "iPhone (ohne Endzitat)" analysiert zu werden. Ich habe node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js geändert, um einen Simulatornamen mit einem Unterstrich anstelle eines beliebigen zu akzeptieren Räume.

Dies scheint das Parsing-Problem zu beheben, das ich gesehen habe:

$ react-native run-ios --simulator = "iPhone_8"

Ich habe vor Ort folgende Änderung vorgenommen:

Funktion findMatchingSimulator (Simulatoren, simulatorString) {
if (! simulators.devices) {
return null;
}}
const Geräte = simulators.devices;

simulatorString = simulatorString.replace ('_', '')

Heute habe ich das in runIOS/findMatchingSimulator.js behoben. 🎉 Ich habe die Leitung geändert
if (simulator.availability !== '(available)' && simulator.isAvailable !== 'YES') {
zu
if (simulator.availability !== '(available)' && simulator.isAvailable !== true) { .
Es scheint, dass die Eigenschaft isAvailable normalen Booleschen YES anstelle von NO in der Geräteliste zurückgibt.
Übrigens hatte ich dieses Problem nach der Installation von Xcode 11 Beta.

React-Native-Cli: 2.0.1
reaktionsnativ: 0,59,9

Habe den gleichen Fehler, der den Simulator nicht finden kann.

Ursache: Beim Ausführen von reaktionsnativen Run-ios lautet der Standard-Simulatorname iPhoneX, das überhaupt nicht vorhanden ist. Der Name für iPhoneX ist entweder iPhoneXs, iPhoneXs Max oder iPhoneXR
Lösung: Ändern Sie den Code in node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

// change this line
// it was if (simulator.name ===simulatorName && !match) {
if (simulator.name.includes(simulatorName) && !match) {
        match = {
          udid: simulator.udid,
          name: simulator.name,
          booted,
          version
        };
      } // Keeps track of the first available simulator for use if we can't find one above.

Mein Projekt verwendet immer noch "react-native": "0.53.3" und für mich ist der Code in "findMatchingSimulator.js" im Ordner "react-native node_modules"

if (version.indexOf('iOS') != 0) {
continue;
}

Kann es nicht glauben.

Ich habe das gleiche Problem auch hier.
Als ich zu wechselte
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
fortsetzen;
}}

Alles ist gut, da das Präfix "com.apple.CoreSimulator.SimRuntime". Ist in der Geräteliste enthalten, schlägt die reine Prüfung auf Starts mit allen Simulatoren fehl.

Danke Es hat bei mir funktioniert

Ich habe das gleiche Problem auch hier.
Als ich zu wechselte
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
fortsetzen;
}}

Alles ist gut, da das Präfix "com.apple.CoreSimulator.SimRuntime". Ist in der Geräteliste enthalten, schlägt die reine Prüfung auf Starts mit allen Simulatoren fehl.

Hallo, mein node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js existiert nicht

@ topik96 Hier

node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Hinweis: Die obigen Korrekturen haben bei mir nicht funktioniert. Was ich getan habe:

  1. Führen Sie diesen Befehl xcrun simctl list devices
  2. Überprüfen Sie den Simulatornamen und die iOS-Version. (In meinem Fall war es 12.2)
  3. Jetzt sieht mein Befehl so aus react-native run-ios --simulator='iPad Pro (9.7-inch) (12.2) . Beachten Sie die iOS-Version.

Bisher habe ich die iOS-Version in meinem Befehl run nicht erwähnt.

Das Überprüfen auf verfügbare Simulatoren sollte nun sein:
simulator.isAvailable! == true

Ich denke, mein Problem hat möglicherweise damit zu tun, dass Apple, wenn Sie XCode 10.2.1 verwenden (wie ich), den iPhone XR-Simulator in iPhone Xʀ umbenannt hat (beachten Sie das große "R" gegenüber dem kleinen "ʀ"). Wenn Sie also versuchen, auf diesen neu umbenannten Simulator abzuzielen, verwenden Sie react-native run-ios --simulator="iPhone Xʀ" . Danke Apple ...

Hat für mich gearbeitet. Danke.

Ich habe das gleiche Problem auch hier.
Als ich zu wechselte
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
fortsetzen;
}}

Alles ist gut, da das Präfix "com.apple.CoreSimulator.SimRuntime". Ist in der Geräteliste enthalten, schlägt die reine Prüfung auf Starts mit allen Simulatoren fehl.

Danke!, Hat für mich gearbeitet!

Ich habe das gleiche Problem auch hier.
Als ich zu wechselte
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
fortsetzen;
}}
Alles ist gut, da das Präfix "com.apple.CoreSimulator.SimRuntime". Ist in der Geräteliste enthalten, schlägt die reine Prüfung auf Starts mit allen Simulatoren fehl.

Hallo, mein node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js existiert nicht

Wenn Sie die neue CLI für eine aktualisierte Version von React Native verwenden, finden Sie sie stattdessen hier:

node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Heute habe ich das in runIOS/findMatchingSimulator.js behoben. 🎉 Ich habe die Leitung geändert
if (simulator.availability !== '(available)' && simulator.isAvailable !== 'YES') {
zu
if (simulator.availability !== '(available)' && simulator.isAvailable !== true) { .
Es scheint, dass die Eigenschaft isAvailable normalen Booleschen YES anstelle von NO in der Geräteliste zurückgibt.
Übrigens hatte ich dieses Problem nach der Installation von Xcode 11 Beta.

Ich habe auch 11 Beta installiert. Denken Sie, dass dieses Skript sowohl YES als auch true gleichzeitig überprüfen sollte?

Ich konnte das Problem nicht lösen und brauchte schnell eine Lösung, also habe ich mich um eine schnelle Lösung gekümmert.

console.log die Geräte und hackte eine Rückkehr

in findMatchingSimulator.js
kurz vor if(match) {return match}

Ich habe eine Rückkehr fest codiert

  return {
    udid: 'BFBD0FA0-3104-4401-80BE-DC54CD7E3895',
    name: 'iPhone X',
    version: 'com.apple.CoreSimulator.SimRuntime.iOS-12-4'
  }

Ich habe das gleiche Problem auch hier.
Als ich zu wechselte
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
fortsetzen;
}}

Alles ist gut, da das Präfix "com.apple.CoreSimulator.SimRuntime". Ist in der Geräteliste enthalten, schlägt die reine Prüfung auf Starts mit allen Simulatoren fehl.

Genial. Das funktioniert wie ein Zauber. Vielen Dank!

Wenn Sie diesen Fehler sehen:

error Could not find "iPhone X" simulator. Run CLI with --verbose flag for more details.

Siehe meinen Kommentar zu dieser einfachen Lösung hier:

Fehler iPhone X Simulator # 418 konnte nicht gefunden werden

sed -i '' s / StartsWith / Includes / g 'Knotenmodule / React-Native / Local-Cli / RunIOS / FindMatchingSimulator.js

Fix für mich.

Befolgen Sie die nachstehenden Schritte zur Fehlerbehebung für mich
reaktionsnativ: 0,52,3

Fix kann Emulator nicht finden

Datei öffnen
Code ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

Ersetzen Sie version.indexOf ('iOS')! == 0
zu! version.includes ('iOS')

Dieses Problem ist bei mir in den letzten 4 Monaten und bei Serverversionen von RN aufgetreten. Normalerweise nach einem Update. Es schadet meiner Produktivität jedes Mal.

Hey Jim, hast du überprüft, dass du kein RN-Projekt im RN-Projekt (Datei) hast?
Systemseitig)? Versuchen Sie in diesem Fall, 1 Projekt pro Ordner zu erstellen. Das ist was
ist mir passiert und einmal habe ich das 2. Projekt in einen unabhängigen Ordner entfernt
(mit RN init). Hoffe es wird dir helfen :)

Am Samstag, den 21. September 2019 um 18:28 Uhr schrieb Jim Hall

Dieses Problem ist bei mir in den letzten 4 Monaten aufgetreten
und über Serverversionen von RN. Normalerweise nach einem Update. Es
schadet meiner Produktivität jedes Mal.

- -
Sie erhalten dies, weil Sie kommentiert haben.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/facebook/react-native/issues/23282?email_source=notifications&email_token=ADA33H7VQA5DPUSQO6ILB6DQKY4TLA5CNFSM4GUBJ5D2YY3PNVWWK3TUL52HS4VFVGXW
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/ADA33H56N5ML47724MTTPFTQKY4TLANCNFSM4GUBJ5DQ
.

Wird der iPhone X Simulator nicht mehr unterstützt? Ich bin auf dieses Problem gestoßen und habe es durch Ausführen behoben
-simulator="iPhone 11 Pro"

Wenn Sie die Beobachtungen von @ reza-hashemi bestätigen und instruments -s devices mit installiertem Xcode 11.0 (11A420a) ausführen, wird IPhone X nicht mehr aufgelistet. Die Bereitstellung anderer Simulatoren mit dem Flag --simulator funktioniert.

In der neuen Version von xCode ist der iPhone X-Simulator standardmäßig nicht hinzugefügt. Sie können das Problem auch vorerst beheben, indem Sie den Simulator wieder in xCode hinzufügen. Letztendlich sollte die CLI wahrscheinlich aktualisiert werden, um das iPhone 11 zu verwenden.

Nach dem Upgrade auf Xcode 11 wird eine Fehlermeldung angezeigt
"IPhone X" Simulator konnte nicht gefunden werden. "

einfache Lösung ...

Xcode -> Einstellungen -> Komponenten installieren ios 12.2 Sumulator

@broros Schritte haben das für mich behoben. Dieses Problem trat nach einem XCode-Upgrade auf. Als ich jedoch am Simulator vorbeikam, erhielt ich eine andere Fehlermeldung

error: Multiple commands produce '/ios/build/Debug-iphonesimulator/mobile.app/Zocial.ttf':
1) Target 'mobile' (project 'mobile') has copy command from '/node_modules/react-native-vector-icons/Fonts/Zocial.ttf' to '/mobile/ios/build/Debug-iphonesimulator/mobile.app/Zocial.ttf'
2) That command depends on command in Target 'mobile' (project 'mobile'): script phase “[CP] Copy Pods Resources”

Um diesen zweiten Satz von Fehlern zu beheben, musste ich das ios-Projekt unter Xcode -> Datei -> Arbeitsbereichseinstellungen -> System erstellen -> (Auf Legacy setzen) öffnen.

Nach dem Upgrade von Xcode von 10 auf 11 wurde auch der Fehler "iPhone X Simulator" angezeigt. Ich habe ein paar Skripte in diesem Thread und andere ohne Erfolg ausprobiert. Wenn Sie Warnungen in Ihrem Terminal haben, versuchen Sie npm audit fix . Für mich gelöst und ich starte jetzt ohne Probleme.

Auf xcode 11 aktualisiert. Gerät konnte nicht gefunden werden.
Das Problem besteht darin, die Ausgabe von xcrun simctl list --json devices zu interpretieren, die vom Skript verwendet wird, um installierte Geräte herauszufinden.
Ging in den Code von findMatchingSimulator. in dem Zustand, der angibt

            if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== 'YES'
            ) {
                continue
            }

neue Form von isAvailable hinzugefügt (die jetzt ein einfacher Boolescher Wert ist):

            if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== 'YES' &&
                simulator.isAvailable !== true
            ) {
                continue
            }

das hat die Dinge geklärt.

Auf xcode 11 aktualisiert. Gerät konnte nicht gefunden werden.
Das Problem besteht darin, die Ausgabe von xcrun simctl list --json devices zu interpretieren, die vom Skript verwendet wird, um installierte Geräte herauszufinden.
Ging in den Code von findMatchingSimulator. in dem Zustand, der angibt

            if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== 'YES'
            ) {
                continue
            }

neue Form von isAvailable hinzugefügt (die jetzt ein einfacher Boolescher Wert ist):

            if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== 'YES' &&
                simulator.isAvailable !== true
            ) {
                continue
            }

das hat die Dinge geklärt.

Hallo. Können Sie mir erklären, wo findMatchingSimulator?

Danke @galkahana ,
das hat bei mir funktioniert.
@TchernyavskyDaniil finden Sie die Datei in Ihrem Projektordner node_modules
./node_modules/\@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Danke @galkahana ,
das hat bei mir funktioniert.
@TchernyavskyDaniil finden Sie die Datei in Ihrem Projektordner node_modules
./node_modules/\@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Du meintest:
/ cli-platform-IOS / ...?

Ich kann deinen Weg nicht finden (runIOS): C.

RN 60.4

@TchernyavskyDaniil Ich
Könnten Sie find . -iname findMatchingSimulator.js über Ihre Befehlszeile in Ihrem Projektordner ausführen?
Wenn Sie ein @ im Pfad finden, fügen Sie einen Backslash davor hinzu und öffnen Sie es mit vim oder einem anderen Editor.

@TchernyavskyDaniil Ich
Könnten Sie find . -iname findMatchingSimulator.js über Ihre Befehlszeile in Ihrem Projektordner ausführen?
Wenn Sie ein @ im Pfad finden, fügen Sie einen Backslash davor hinzu und öffnen Sie es mit vim oder einem anderen Editor.

ja,
./node_modules/@react-native-community/cli-platform-ios/build/commands/runIOS/findMatchingSimulator.js

Ok, ich werde versuchen

"IPhone X" Simulator konnte nicht gefunden werden. "

изображение

Nett :)

Diesen Fehler auf XCode 11 erhalten. Gott segne Software-Updates !!

Sie können Ihre @ react-native-community / cli auf 1.9.8 https://github.com/react-native-community/cli/pull/414#issuecomment -499483963 aktualisieren

@maxkomarychev

react-native --version
react-native-cli: 2.0.1
react-native: 0.59.8

@maxkomarychev Ich verwende @react-native-community/[email protected] und habe dieses Problem.

@ Galkahana Danke. Das hat funktioniert. Aber das Ändern von node_modules sind tödliche Hacks, die vermieden werden sollten. Sollte eine PR dafür erheben

  1. Können Sie überprüfen, welcher iOS-Simulator auf Ihrem Computer installiert ist?
  2. Sie können jederzeit über react-native run-ios —device=“XXXXXX’ den Simulator übergeben, auf den Sie zielen möchten

Installieren Sie einfach das iPhone X-Gerät in Xcode

Gleicher Fehler nach einem kürzlich durchgeführten Xcode-Update, bei dem neue Telefonsimulatoren hinzugefügt UND einige ältere entfernt wurden:

  1. Starten Sie den Simulator
  2. Aus den Menüs: Hardware> Gerät> Geräte verwalten
  3. Wählen Sie die Registerkarte / Schaltfläche "Simulatoren", klicken Sie dann unten links auf das "+" und fügen Sie das Gerät hinzu, über das sich Ihr Ausführungsfehler beschwert (übernehmen Sie die Standardeinstellungen - dh füllen Sie das Namensfeld nicht aus).

Hoffe das hilft jemandem ...

Wenn der Fehler weiterhin auftritt , nachdem @dmurchie ausgeführt haben , müssen Sie möglicherweise auch Ihre @react-native-community/cli aktualisieren.

Sie können hier die folgenden Schritte ausführen:
https://github.com/react-native-community/cli#updating -the-cli

Auf xcode 11 aktualisiert. Gerät konnte nicht gefunden werden.
Das Problem besteht darin, die Ausgabe von xcrun simctl list --json devices zu interpretieren, die vom Skript verwendet wird, um installierte Geräte herauszufinden.
Ging in den Code von findMatchingSimulator. in dem Zustand, der angibt

            if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== 'YES'
            ) {
                continue
            }

neue Form von isAvailable hinzugefügt (die jetzt ein einfacher Boolescher Wert ist):

            if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== 'YES' &&
                simulator.isAvailable !== true
            ) {
                continue
            }

das hat die Dinge geklärt.

Genial. Das funktioniert wie ein Zauber. Danke, Mann

@TchernyavskyDaniil Du
RN 0,58,3
Xcode 11
Mit diesem Problem.
Beheben Sie dieses Problem, indem Sie den folgenden Schritt ausführen:

  1. Aus dem Projekt Datei öffnen:
    code ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
  2. ersetzen
    version.indexOf ('iOS')! == 0
    zu
    ! version.includes ('iOS')

ersetzen
simulator.availability! == '(verfügbar)'
zu
simulator.availability! == '(verfügbar)' &&
simulator.isAvailable! == 'YES' &&
simulator.isAvailable! == true

  1. Führen Sie react-native run-ios
    Standardmäßig reagiert React Native auf dem Simulator iPhone 11 Pro Max.
    Siehe Liste des aktuellen Simulators:
    xcrun simctl list devices
    Sie können den Simulator ändern:
    react-native run-ios --configuration Debug --simulator='Your simulator' --scheme 'Your Scheme'
    Beispiel
    react-native run-ios --configuration Debug --simulator='iPhone 11 Pro Max' --scheme 'HelloWorld'

Eine weitere Option, die für mich funktioniert.

# to find what simulators you have
xcrun simctl list

# to run a specific simulator
rn run-ios --simulator "iPhone 11"

Auf xcode 11 aktualisiert. Gerät konnte nicht gefunden werden.
Das Problem besteht darin, die Ausgabe von xcrun simctl list --json devices zu interpretieren, die vom Skript verwendet wird, um installierte Geräte herauszufinden.
Ging in den Code von findMatchingSimulator. in dem Zustand, der angibt

            if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== 'YES'
            ) {
                continue
            }

neue Form von isAvailable hinzugefügt (die jetzt ein einfacher Boolescher Wert ist):

            if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== 'YES' &&
                simulator.isAvailable !== true
            ) {
                continue
            }

das hat die Dinge geklärt.

Es ist Arbeit für mich.
Danke, Mann!

Hallo zusammen,

Ich habe eine andere Lösung gefunden, ohne den Quellcode im Verzeichnis node_modules zu ändern.

  1. Erstellen Sie einen reaktionsnativen Projektordner (Befehl: react-native init projectName)
  2. Öffnen Sie die Datei projectName / ios / projectName.xcodeproj in Xcode 11
  3. Wählen Sie das Gerät aus, das Sie verwenden möchten (iPhone X ist nach der Veröffentlichung von iPhone Pro nicht mehr in der Liste enthalten. Klicken Sie daher auf die Plus-Schaltfläche und fügen Sie es der aktuellen Geräteliste hinzu.)
  4. Wenn Ihr neues Gerät in der Liste enthalten ist, können Sie Xcode 11 schließen und versuchen, den Emulator über das Terminal auszuführen (reaktionsnative Run-Ios).

Wenn Sie Screenshots benötigen, lassen Sie es mich einfach wissen.

Dies ist übrigens mein erster Kommentar in Github, also herzlichen Glückwunsch :)

Vielen Dank.

@ilkinnamazov Könnten Sie bitte Screenshots Ihrer Lösung senden?

Wenn Sie die .xcodeproj-Datei im ios-Ordner öffnen, wird die Xcode-IDE gestartet, und Sie können dort einen bestimmten Simulator auswählen.
Siehe Screenshots unten.

Sie können das Gerät aus dieser Liste auswählen.
1
3

Wenn Sie das iPhone X jedoch nicht sehen, können Sie es einfach zu Ihrer Geräteliste hinzufügen.
2
4
5
6

Wenn Sie Fragen haben, lassen Sie es mich wissen.
Vielen Dank.

Wenn dies nach dem Hinzufügen des iPhone X-Simulators in XCode nicht funktioniert

  1. Löschen Sie node_modules
  2. Löschen Sie yarn.lock oder package-lock.json
  3. Führen Sie yarn oder npm install

Wenn dies nach dem Hinzufügen des iPhone X-Simulators in XCode nicht funktioniert

  1. Löschen Sie node_modules
  2. Löschen Sie yarn.lock oder package-lock.json
  3. Führen Sie yarn oder npm install

Das Löschen von Sperrdateien kann unter bestimmten Umständen problematisch sein. Mach es sorgfältig

Wenn Sie nur ein bestimmtes Gerät ausführen möchten. Möglicherweise fehlt es in der Liste der Simulatoren. Führen Sie die folgenden Schritte aus, um ein Gerät hinzuzufügen:

1) Öffnen Sie Xcode
2) Drücken Sie Command+Shift+2 , um die Option Geräte & Simulatoren zu öffnen.
3) Gehen Sie zur Registerkarte Simulatoren und drücken Sie links unten das Symbol + und fügen Sie das iPhone X oder ein beliebiges fehlendes Gerät hinzu.

Bitte versuchen Sie diese Lösung. Es könnte für Sie funktionieren.

https://github.com/facebook/react-native/issues/24450#issuecomment -516760157

Ich fand das am einfachsten,

react-native run-ios --simulator "iPhone 11 Pro Max"

Dies scheint für mich kein Problem mehr zu sein. Vielleicht hat ein Update das inzwischen behoben?

@danielcampos Vorschlag, die CLI zu aktualisieren, hat das Problem für mich behoben.

Ich musste dies zu meinem package.json hinzufügen:
"@react-native-community/cli": "@^1.12.0", da die Sperre aus irgendeinem Grund Paste 1.11.2 ohne sie nicht aktualisieren würde.

Jetzt findet es problemlos Simulatoren.

Auf xcode 11 aktualisiert. Gerät konnte nicht gefunden werden.
Das Problem besteht darin, die Ausgabe von xcrun simctl list --json devices zu interpretieren, die vom Skript verwendet wird, um installierte Geräte herauszufinden.
Ging in den Code von findMatchingSimulator. in dem Zustand, der angibt

            if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== 'YES'
            ) {
                continue
            }

neue Form von isAvailable hinzugefügt (die jetzt ein einfacher Boolescher Wert ist):

            if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== 'YES' &&
                simulator.isAvailable !== true
            ) {
                continue
            }

das hat die Dinge geklärt.

Das hat bei mir funktioniert! Danke Kerl!

Wenn noch jemand nach der Datei findMatchingSimulator.js sucht, um sie manuell zu bearbeiten, finden Sie sie derzeit unter folgendem Pfad:
node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Ich hoffe, das hilft jemandem auf der ganzen Linie!

Denken Sie auch daran, die IOS-Version in Klammern zu übergeben:

--simulator "iPhone 11 Pro Max (13.2)"

@kelvinlemus habe ich

react-native-cli: 2.0.1
react-native: 0.61.5

Und ich möchte den Standardsimulator "iPhone X" ändern
Ich versuche, react-native run-ios --simulator='iPhone XR' oder andere auszuführen
Aber jedes Mal wurde nur das iPhone X gestartet

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen