<p>react-native run-ios ne trouve aucun simulateur</p>

Créé le 3 févr. 2019  ·  107Commentaires  ·  Source: facebook/react-native

Environnement


Informations sur l'environnement natif de React:
Système:
Système d'exploitation: macOS 10.14.2
Processeur: (12) processeur Intel (R) Core (TM) i9-8950HK x64 à 2,90 GHz
Mémoire: 6,76 Go / 32,00 Go
Shell: 3.2.57 - / bin / bash
Binaires:
Nœud: 10.15.0 - / usr / local / bin / node
Fil: 1.13.0 - / usr / local / bin / yarn
npm: 6.4.1 - / usr / local / bin / npm
SDK:
SDK iOS:
Plateformes: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
IDE:
Studio Android: 3.1 AI-173.4819257
Xcode: 10.1 / 10B61 - / usr / bin / xcodebuild
npmPackages:
réagir: 16,6,3 => 16,6,3
natif de réaction: 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

La description


J'ai été confronté à un problème où «react-native run-ios» ne peut pas démarrer, quel que soit le simulateur que j'ajoute à l'argument --simulator.
XCode a l'emplacement correct pour les 'outils de ligne de commande'

J'obtiens toujours l'erreur:
Impossible de trouver le simulateur iPhone X

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)

Démo reproductible


XCode installé à partir de zéro.
Nouvelle `` nouvelle application native de réaction ''

«react-native run-ios» se plaint toujours de ne pas trouver le simulateur, quelle que soit l'option --simulator.

Ma solution temporaire est de changer:
/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

ligne 42, à:
if (! version.startsWith (' com.apple.CoreSimulator.SimRuntime. iOS') &&! version.startsWith ('tvOS')) {

Bug iOS Locked

Commentaire le plus utile

Il a des problèmes pour faire la recherche de chaînes sur la version du simulateur dans node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js sur cette ligne: if (!version.startsWith('iOS') .

Je l'ai remplacé par includes comme tel: if (!version.includes('iOS') qui semble avoir résolu le problème pour moi.

Tous les 107 commentaires

Il semble que vous utilisiez une ancienne version de React Native. Veuillez mettre à jour vers la dernière version, v0.58 et vérifier si le problème persiste.

Le libellé "Résolution: ancienne version" sera automatiquement supprimé une fois que vous aurez modifié votre message d'origine avec les résultats de l'exécution de react-native info sur un projet utilisant la dernière version.

vient d'essayer un tout nouveau projet avec:
natif de réaction: 0,58,3 => 0,58,3

et même problème

  1. Pouvez-vous vérifier quel simulateur iOS est installé sur votre machine?
  2. Vous pouvez toujours passer le simulateur que vous souhaitez cibler via le react-native run-ios —device=“XXXXXX’

J'ai le même problème ici aussi.
Quand j'ai changé pour
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
continuer;
}

tout va bien, puisque le préfixe «com.apple.CoreSimulator.SimRuntime». est inclus dans la liste des périphériques, la vérification pure des démarrages avec échoue pour tous les simulateurs.

J'ai créé une pull request https://github.com/facebook/react-native/pull/23293 pour ce problème

Hey @osunnarvik merci d'avoir créé le PR! Pourriez-vous expliquer un peu plus (peut-être dans le PR) pourquoi cela se produit-il maintenant? Je veux dire, quand le préfixe a-t-il changé? Dans le dernier Xcode? 🤔

J'ai mis à jour la description du PR maintenant pour dire un peu quand il a commencé et j'ai ajouté des informations sur la version de XCode et xcrun

@kelset oui, je pense que le format de la liste des appareils a changé avec le dernier XCode.

Génial - merci à tous :)

Nous avons déjà fusionné le PR en 0.58 (puisque 0.59 etc aura le CLI séparé) et la prochaine version du correctif (0.58.4) aura le correctif 💪

@kelset J'ai remarqué le commentaire dans https://github.com/react-native-community/react-native-cli/pull/138 concernant le moment où vous spécifiez le simulatorString (commentaire de @canterberry ). Je n'ai vérifié qu'avec simulatorString vide et non avec un seul ensemble. Faites-moi savoir si vous souhaitez que je regarde le cas où le simulatorString est défini.

Uhm oh ouais il serait probablement préférable d'avoir le chèque aussi lorsque la chaîne est définie. 🤔

ok, je vais jeter un oeil demain matin.

J'ai créé https://github.com/facebook/react-native/pull/23305 pour gérer les versions d'entrée pointées pour simulatorString

@osunnarvik Ce problème est toujours présent dans la version 0.59.1 react-native

Il a des problèmes pour faire la recherche de chaînes sur la version du simulateur dans node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js sur cette ligne: if (!version.startsWith('iOS') .

Je l'ai remplacé par includes comme tel: if (!version.includes('iOS') qui semble avoir résolu le problème pour moi.

Il a des problèmes pour faire la recherche de chaînes sur la version du simulateur dans node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js sur cette ligne: if (!version.startsWith('iOS') .

Je l'ai remplacé par includes comme tel: if (!version.includes('iOS') qui semble avoir résolu le problème pour moi.

Cela fonctionne pour moi, merci.

Il a des problèmes pour faire la recherche de chaînes sur la version du simulateur dans node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js sur cette ligne: if (!version.startsWith('iOS') .

Je l'ai remplacé par includes comme tel: if (!version.includes('iOS') qui semble avoir résolu le problème pour moi.

génial merci !!

Il a des problèmes pour faire la recherche de chaînes sur la version du simulateur dans node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js sur cette ligne: if (!version.startsWith('iOS') .

Je l'ai remplacé par includes comme tel: if (!version.includes('iOS') qui semble avoir résolu le problème pour moi.

Je ne peux vraiment pas comprendre comment cette situation a même existé

est ce correctif avec les nouvelles versions?

@evanoralph Si vous rencontrez ce problème aujourd'hui comme moi, vous pouvez essayer de modifier le findMatchingSimulator.js en node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js .
Démarrez d'abord un simulateur, puis lancez xcrun simctl list --json devices et recherchez celui avec "state" : "Booted", .
Puis ajoutez en haut de la fonction findMatchingSimulator :

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

version peut varier. Mais c'est la clé parente de l'objet périphérique démarré. Mais ce n'est pas une solution! C'est une solution de contournement.

Il a des problèmes pour faire la recherche de chaînes sur la version du simulateur dans node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js sur cette ligne: if (!version.startsWith('iOS') .

Je l'ai remplacé par includes comme tel: if (!version.includes('iOS') qui semble avoir résolu le problème pour moi.

Mis à jour vers macOS 10.14.4 et XCode mis à jour vers 10.2 et ce problème a commencé à se produire pour moi. Votre solution a aidé (même s'il ne s'agit que d'une solution temporaire).

Il a des problèmes pour faire la recherche de chaînes sur la version du simulateur dans node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js sur cette ligne: if (!version.startsWith('iOS') .

Je l'ai remplacé par includes comme tel: if (!version.includes('iOS') qui semble avoir résolu le problème pour moi.

Impressionnant! Bien que temporaire, cela fonctionne parfaitement. Merci!

Il a des problèmes pour faire la recherche de chaînes sur la version du simulateur dans node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js sur cette ligne: if (!version.startsWith('iOS') .

Je l'ai remplacé par includes comme tel: if (!version.includes('iOS') qui semble avoir résolu le problème pour moi.

Travaille pour moi! Merci! Si vous exécutez un simulateur qui a plus d'une version (comme l'iPhone 5s iOS 10.3.1 et 12.2), ces correctifs ouvriront toutes les versions des simulateurs. Vous pouvez définir une version en utilisant --simulator "iPhone 5s (10.3)" .

@evanoralph Si vous rencontrez ce problème aujourd'hui comme moi, vous pouvez essayer de modifier le findMatchingSimulator.js en node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js .
Démarrez d'abord un simulateur, puis lancez xcrun simctl list --json devices et recherchez celui avec "state" : "Booted", .
Puis ajoutez en haut de la fonction findMatchingSimulator :

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

version peut varier. Mais c'est la clé parente de l'objet périphérique démarré. Mais ce n'est pas une solution! C'est une solution de contournement.

la solution de contournement fonctionne bien pour moi maintenant, je ne sais pas si je dois mettre à jour mes projets vers .59.0

Suis-je le seul à ne pas avoir de node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js? Il n'y a qu'une seule chose dans le dossier local-cli, qui est le fichier cli.js - des idées ??

Juste pour info, cela a également semblé aider, sur mon système, à avoir ce problème:

xcrun simctl delete indisponible

J'ai eu le problème, le remplacement par includes m'a aidé. quand il sera réparé?

HHHEEEYYYY ... le remplacement comprend les travaux !!!!!

@Titozzz Des mises à jour sur le moment où cela sera corrigé? Le correctif temporaire n'est pas une solution conviviale pour les équipes et les git.
Je suis prêt à contribuer si quelqu'un me disait comment procéder.

@Titozzz @kelset
J'ai examiné mon problème et j'ai trouvé qu'il s'agissait d'un problème différent présenté ici par OP.

Le problème est que je dois exécuter mon application sur iPad et puisque les noms d'iPad ont les tailles de périphérique entre parenthèses, par exemple. iPad Pro (9.7-inch) , le code cli suppose que la taille de l'appareil entre parenthèses est la version d'exécution iOS.

Je suggère que nous utilisions un argument distinct pour la version ios d'exécution ou que nous ayons un type de support différent pour détecter la version d'exécution.

Ma version RN est 0.59.3

Bonjour pouvez-vous répondre aux questions?

Suis-je le seul à ne pas avoir de node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js? Il n'y a qu'une seule chose dans le dossier local-cli, qui est le fichier cli.js - des idées ??

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

Je suis content que vous puissiez voir mon message! Deuxièmement, merci beaucoup pour votre réponse! Mais mon Xcode est la version 8.1 et j'ai des simulateurs Xcode en plus de X, mais lorsque je compile l'erreur de terminal, je ne trouve aucun simulateur! J'ai changé les conditions de compilation dans de nombreux endroits mais je n'ai pas pu résoudre le problème, j'ai donc laissé un message pour demander de l'aide.

est-ce le correctif de facto? ou y a-t-il un PR ouvert?

Cela fonctionne pour moi à 0,58,6; Il semble que cela ait été corrigé dans le commit 9a8c9596ebe41e27d37ba18d6bf09f1c931c1ff2 🙂

Cela fonctionne lorsque vous mettez à niveau react-native vers v59

Je pense que mon problème pourrait être lié au fait que si vous êtes sur XCode 10.2.1 (comme moi), Apple a renommé le simulateur iPhone XR en iPhone Xʀ (remarquez le gros "R" contre le petit "ʀ") donc si vous essayez de cibler ce simulateur nouvellement renommé, utilisez react-native run-ios --simulator="iPhone Xʀ" . Merci Apple ...

@ lcastillo88 oh wow c'est une belle prise, quel changement étrange 😅

Pour tous ceux qui ont du mal à résoudre ce problème parce que vous essayez d'exécuter un simulateur iPad Pro, le problème est que findMatchingSimulator.js pense que tout ce qui se trouve entre parenthèses est la version iOS du simulateur que vous essayez d'exécuter. Il essaie donc d'ouvrir le simulateur iPad Pro avec la version iOS 10.5-inch (ou tout autre simulateur que vous essayez d'exécuter). Pour des raisons évidentes, cela ne fonctionnera pas.

La solution de contournement la plus simple pour cela jusqu'à ce qu'un correctif permanent soit implémenté consiste à renommer le simulateur en quelque chose qui n'inclut pas de parenthèses. Dans Xcode, cliquez sur Fenêtre> Périphériques et simulateurs, cliquez sur l'onglet Simulateurs, puis cliquez avec le bouton droit sur le simulateur avec lequel vous travaillez pour le renommer.

Pour toute personne incapable de mettre à niveau RN mais nécessitant un correctif plus automatisé, vous pouvez utiliser le script shell suivant dans votre post-installation:

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

Cela nous a permis d'exécuter nos tests d'automatisation sur notre serveur CI.

Juste pour être sûr de ne rien manquer: si vous êtes sur 0.59, ce problème est résolu, correct?

Spécifiquement pour les simulateurs iPad Pro (ou tout autre simulateur qui inclut autre chose qu'une version iOS entre parenthèses), cela est toujours cassé sur la dernière version de react-native.

En dehors de ce scénario, cela fonctionne bien.

Il a des problèmes pour faire la recherche de chaînes sur la version du simulateur dans node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js sur cette ligne: if (!version.startsWith('iOS') .

Je l'ai remplacé par includes comme tel: if (!version.includes('iOS') qui semble avoir résolu le problème pour moi.

incroyable, merci

Au cas où quelqu'un aurait besoin de fonctionner dans la version iOS spécifiée:
react-native run-ios --simulator="iPhone 8 (12-0)"
C'était (12.0) avant mais a changé en 12-0 après avoir mis à jour mon xcode en 10.2.1

Il a des problèmes pour faire la recherche de chaînes sur la version du simulateur dans node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js sur cette ligne: if (!version.startsWith('iOS') .

Je l'ai remplacé par includes comme tel: if (!version.includes('iOS') qui semble avoir résolu le problème pour moi.

cela a fonctionné pour moi. Merci

mais pouvez-vous s'il vous plaît m'expliquer le problème

@kelset

Juste pour être sûr de ne rien manquer: si vous êtes sur 0.59, ce problème est résolu, correct?

Je viens de passer à la version 0.59.8 et cela fonctionne [mis à jour via react-native-git-upgrade ]

Pour toute personne incapable de mettre à niveau RN mais nécessitant un correctif plus automatisé, vous pouvez utiliser le script shell suivant dans votre post-installation:

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

Cela nous a permis d'exécuter nos tests d'automatisation sur notre serveur CI.

Cela a fonctionné pour moi

CELA POURRAIT ME UTILE POUR QUELQU'UN UTILISANT ENCORE

"react-native": "0,52,1"

J'ai corrigé cela avec le changement suivant.

Allez sur ce chemin.

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

Changement (le numéro de ligne était 30 pour moi )
if (version.indexOf('iOS') !== 0)

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

J'utilise [email protected] et --simulator = "iPhone 8" n'a pas été analysé correctement. Lors de l'ajout d'un journal de console, il semblait être analysé comme "iPhone (sans guillemet de fin). J'ai changé node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js pour accepter un nom de simulateur avec un trait de soulignement à la place de tout les espaces.

Cela semble résoudre le problème d'analyse que je voyais:

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

J'ai effectué le changement suivant localement:

function findMatchingSimulator (simulateurs, simulatorString) {
if (! simulators.devices) {
return null;
}
dispositifs const = simulators.devices;

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

Aujourd'hui, j'ai corrigé cela dans runIOS/findMatchingSimulator.js . 🎉 J'ai changé la ligne
if (simulator.availability !== '(available)' && simulator.isAvailable !== 'YES') {
à
if (simulator.availability !== '(available)' && simulator.isAvailable !== true) { .
Il semble que la propriété isAvailable renvoie un booléen normal au lieu de YES / NO dans la liste des périphériques.
Au fait, j'ai eu ce problème après l'installation de Xcode 11 Beta.

react-native-cli: 2.0.1
natif de réaction: 0,59,9

Vous avez la même erreur que vous ne trouvez pas le simulateur.

Cause: lors de l'exécution de React-Native run-ios, le nom du simulateur par défaut est iPhoneX, qui n'existe pas du tout. Le nom de l'iPhoneX est iPhoneXs, iPhoneXs Max ou iPhoneXR
Solution: modifiez le code dans 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.

Mon projet utilise toujours "react-native": "0.53.3" et pour moi le code dans le "findMatchingSimulator.js" dans le dossier react-native node_modules est

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

Je ne peux y croire.

J'ai le même problème ici aussi.
Quand j'ai changé pour
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
continuer;
}

tout va bien, puisque le préfixe «com.apple.CoreSimulator.SimRuntime». est inclus dans la liste des périphériques, la vérification pure des démarrages avec échoue pour tous les simulateurs.

Merci cela a fonctionné pour moi

J'ai le même problème ici aussi.
Quand j'ai changé pour
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
continuer;
}

tout va bien, puisque le préfixe «com.apple.CoreSimulator.SimRuntime». est inclus dans la liste des périphériques, la vérification pure des démarrages avec échoue pour tous les simulateurs.

salut, mon node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js n'existe pas

@ topik96 Vérifiez ici.

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

Remarque: les correctifs ci-dessus n'ont pas fonctionné pour moi. Ce que j'ai fait:

  1. Exécutez cette commande xcrun simctl list devices
  2. Vérifiez le nom du simulateur et la version iOS. (Dans mon cas, c'était 12,2)
  3. Maintenant, ma commande ressemble à ceci react-native run-ios --simulator='iPad Pro (9.7-inch) (12.2) . Notez la version iOS.

Auparavant, je ne mentionnais pas la version iOS dans ma commande d'exécution.

la vérification des simulateurs disponibles devrait maintenant être:
simulator.isAvailable! == true

Je pense que mon problème pourrait être lié au fait que si vous êtes sur XCode 10.2.1 (comme moi), Apple a renommé le simulateur iPhone XR en iPhone Xʀ (remarquez le gros "R" contre le petit "ʀ") donc si vous essayez de cibler ce simulateur nouvellement renommé, utilisez react-native run-ios --simulator="iPhone Xʀ" . Merci Apple ...

A travaillé pour moi. THX.

J'ai le même problème ici aussi.
Quand j'ai changé pour
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
continuer;
}

tout va bien, puisque le préfixe «com.apple.CoreSimulator.SimRuntime». est inclus dans la liste des périphériques, la vérification pure des démarrages avec échoue pour tous les simulateurs.

Merci !, a travaillé pour moi!

J'ai le même problème ici aussi.
Quand j'ai changé pour
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
continuer;
}
tout va bien, puisque le préfixe «com.apple.CoreSimulator.SimRuntime». est inclus dans la liste des périphériques, la vérification pure des démarrages avec échoue pour tous les simulateurs.

salut, mon node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js n'existe pas

si vous utilisez le nouveau cli sur une version mise à jour de React Native, il se trouvera ici à la place:

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

Aujourd'hui, j'ai corrigé cela dans runIOS/findMatchingSimulator.js . 🎉 J'ai changé la ligne
if (simulator.availability !== '(available)' && simulator.isAvailable !== 'YES') {
à
if (simulator.availability !== '(available)' && simulator.isAvailable !== true) { .
Il semble que la propriété isAvailable renvoie un booléen normal au lieu de YES / NO dans la liste des périphériques.
Au fait, j'ai eu ce problème après l'installation de Xcode 11 Beta.

J'ai également installé 11 Beta. Il pense que ce script devrait vérifier à la fois YES et true en même temps?

ne pouvait pas résoudre le problème et avait besoin d'une solution rapidement, alors j'ai piraté une solution rapide.

console.log les appareils et piraté un retour

en findMatchingSimulator.js
juste avant if(match) {return match}

J'ai codé en dur un retour

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

J'ai le même problème ici aussi.
Quand j'ai changé pour
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
continuer;
}

tout va bien, puisque le préfixe «com.apple.CoreSimulator.SimRuntime». est inclus dans la liste des périphériques, la vérification pure des démarrages avec échoue pour tous les simulateurs.

Impressionnant. Cela fonctionne comme un charme. Merci!

Si vous voyez cette erreur:

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

Voir mon commentaire pour cette solution simple ici:

erreur Impossible de trouver le simulateur iPhone X # 418

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

réparer pour moi.

Suivez l'étape ci-dessous pour moi
natif de réaction: 0,52,3

le correctif ne trouve pas l'émulateur

fichier ouvert
code ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

remplace version.indexOf ('iOS')! == 0
à! version.includes ('iOS')

Ce problème s'est produit pour moi au cours des 4 derniers mois et sur les versions serveur de RN. Habituellement après une mise à jour quelconque. Cela nuit à ma productivité à chaque fois.

Hey Jim, avez-vous vérifié que vous n'avez pas de projet RN dans le projet RN (fichier
système sage)? Si c'est le cas, essayez de créer 1 projet par dossier. C'est quoi
m'est arrivé et une fois que j'ai supprimé le 2ème projet dans un dossier indépendant
(en utilisant RN init). J'espère que cela vous aidera :)

Le samedi 21 septembre 2019 à 18:28, Jim Hall [email protected] a écrit:

Ce problème s'est produit pour moi au cours des 4 derniers mois
et sur les versions serveur de RN. Habituellement après une mise à jour quelconque. Il
nuit à ma productivité à chaque fois.

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/facebook/react-native/issues/23282?email_source=notifications&email_token=ADA33H7VQA5DPUSQO6ILB6DQKY4TLA5CNFSM4GUBJ5D2YY3PNVWWK3TissOD52HS4DFVomT805WWWK3TUL52HS4DFV805MZVWWK3TUL52HS4DFV805MZVWWK3TUL52HS4DFV805MZVWWK3TUL52HS4DFV805MZVWWK3TUL52HS4DFV805MZVWWK3TUL52HS4DFVOM
ou couper le fil
https://github.com/notifications/unsubscribe-auth/ADA33H56N5ML47724MTTPFTQKY4TLANCNFSM4GUBJ5DQ
.

Le simulateur iPhone X n'est plus pris en charge? Je rencontrais ce problème et je l'ai résolu en exécutant
-simulator="iPhone 11 Pro"

Confirmer les observations de @ reza-hashemi, exécuter instruments -s devices avec Xcode 11.0 (11A420a) installé ne répertorie plus l'IPhone X. Fournir d'autres simulateurs à l'aide de l'indicateur --simulator fonctionne.

On dirait que la nouvelle version de xCode n'a pas ajouté le simulateur iPhone X par défaut. Vous pouvez également résoudre le problème pour le moment en ajoutant le simulateur dans xCode. En fin de compte, la CLI devrait probablement être mise à jour pour utiliser l'iPhone 11.

Après la mise à niveau vers Xcode 11, j'obtiens une erreur
"Impossible de trouver le simulateur" iPhone X "."

solution facile ...

Xcode -> préférences -> composants installent le sumulateur ios 12.2

Les étapes

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”

Pour corriger ce deuxième ensemble d'erreurs, j'ai dû ouvrir le projet ios dans Xcode -> Fichier -> Paramètres de l'espace de travail -> Build System -> (Set to Legacy).

Après avoir mis à niveau Xcode de 10 à 11, j'ai également eu l'erreur `` iPhone X Simulator ''. J'ai essayé quelques scripts trouvés dans ce fil et d'autres en vain. Si vous avez des avertissements dans votre terminal, essayez npm audit fix . Résolu pour moi et je démarre maintenant sans problème.

Mise à jour vers xcode 11. Impossible de trouver l'appareil.
Le problème est d'interpréter la sortie de xcrun simctl list --json devices qui est utilisée par le script pour découvrir les périphériques installés.
Entré dans le code de findMatchingSimulator. dans l'état indiquant

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

ajout d'une nouvelle forme de isAvailable (qui est maintenant un simple booléen):

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

cela a réglé les choses.

Mise à jour vers xcode 11. Impossible de trouver l'appareil.
Le problème est d'interpréter la sortie de xcrun simctl list --json devices qui est utilisée par le script pour découvrir les périphériques installés.
Entré dans le code de findMatchingSimulator. dans l'état indiquant

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

ajout d'une nouvelle forme de isAvailable (qui est maintenant un simple booléen):

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

cela a réglé les choses.

Salut. Pouvez-vous m'expliquer, où findMatchingSimulator?

Merci @galkahana ,
cela a fonctionné pour moi.
@TchernyavskyDaniil vous pouvez trouver le fichier dans le dossier de votre projet node_modules
./node_modules/\@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Merci @galkahana ,
cela a fonctionné pour moi.
@TchernyavskyDaniil vous pouvez trouver le fichier dans le dossier de votre projet node_modules
./node_modules/\@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Vous vouliez:
/ plateforme-cli-IOS / ...?

Je ne trouve pas votre chemin (runIOS): C

RN 60,4

@TchernyavskyDaniil Je cours sur RN 0.59.9
Pourriez-vous exécuter find . -iname findMatchingSimulator.js partir de votre ligne de commande dans votre dossier de projet?
Si vous trouvez un @ dans le chemin, ajoutez une barre oblique inverse devant lui et ouvrez-le à l'aide de vim ou d'un autre éditeur.

@TchernyavskyDaniil Je cours sur RN 0.59.9
Pourriez-vous exécuter find . -iname findMatchingSimulator.js partir de votre ligne de commande dans votre dossier de projet?
Si vous trouvez un @ dans le chemin, ajoutez une barre oblique inverse devant lui et ouvrez-le à l'aide de vim ou d'un autre éditeur.

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

OK je vais essayer

"Impossible de trouver le simulateur" iPhone X "."

изображение

Agréable :)

Obtenir cette erreur sur XCode 11. Dieu bénisse les mises à jour du logiciel !!

vous pouvez mettre à jour votre @ react-native-community / cli vers 1.9.8 https://github.com/react-native-community/cli/pull/414#issuecomment -499483963

@maxkomarychev

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

@maxkomarychev J'utilise @react-native-community/[email protected] et j'ai ce problème.

@galkahana Merci. Ça a marché. Mais modifier node_modules sont des hacks mortels qui doivent être évités. Devrait soulever un PR pour ça

  1. Pouvez-vous vérifier quel simulateur iOS est installé sur votre machine?
  2. Vous pouvez toujours passer le simulateur que vous souhaitez cibler via le react-native run-ios —device=“XXXXXX’

installez simplement l'appareil iphone X dans xcode

Même erreur après une mise à jour récente de Xcode qui a ajouté de nouveaux simulateurs de téléphone ET supprimé certains plus anciens:

  1. Lancer le simulateur
  2. À partir des menus: Matériel> Périphérique> Gérer les périphériques
  3. Choisissez l'onglet / bouton "Simulateurs", puis cliquez sur le "+" en bas à gauche et ajoutez le périphérique dont votre erreur d'exécution se plaint (prenez les valeurs par défaut - c'est-à-dire, ne remplissez pas le champ de nom).

J'espère que cela aide quelqu'un ...

Si vous rencontrez toujours l'erreur après avoir suivi les étapes de @dmurchie ci-dessus, vous devrez peut-être également mettre à jour votre @react-native-community/cli .

Vous pouvez suivre les étapes ici pour ce faire:
https://github.com/react-native-community/cli#updating -the-cli

Mise à jour vers xcode 11. Impossible de trouver l'appareil.
Le problème est d'interpréter la sortie de xcrun simctl list --json devices qui est utilisée par le script pour découvrir les périphériques installés.
Entré dans le code de findMatchingSimulator. dans l'état indiquant

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

ajout d'une nouvelle forme de isAvailable (qui est maintenant un simple booléen):

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

cela a réglé les choses.

Impressionnant. Cela fonctionne comme un charme. Merci mec

@TchernyavskyDaniil Vous économisez mon temps. Tks tellement!
RN 0,58,3
Xcode 11
Avoir ce problème.
Résolvez ce problème en suivant l'étape ci-dessous:

  1. À partir du fichier ouvert du projet:
    code ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
  2. remplacer
    version.indexOf ('iOS')! == 0
    à
    ! version.includes ('iOS')

remplacer
simulator.availability! == '(disponible)'
à
simulator.availability! == '(disponible)' &&
simulator.isAvailable! == 'OUI' &&
simulator.isAvailable! == true

  1. Exécutez react-native run-ios
    Par défaut, react native exécutera le simulateur iPhone 11 Pro Max.
    Voir la liste des simulateurs actuels:
    xcrun simctl list devices
    Vous pouvez changer de simulateur:
    react-native run-ios --configuration Debug --simulator='Your simulator' --scheme 'Your Scheme'
    Exemple
    react-native run-ios --configuration Debug --simulator='iPhone 11 Pro Max' --scheme 'HelloWorld'

Une autre option qui fonctionne pour moi.

# to find what simulators you have
xcrun simctl list

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

Mise à jour vers xcode 11. Impossible de trouver l'appareil.
Le problème est d'interpréter la sortie de xcrun simctl list --json devices qui est utilisée par le script pour découvrir les périphériques installés.
Entré dans le code de findMatchingSimulator. dans l'état indiquant

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

ajout d'une nouvelle forme de isAvailable (qui est maintenant un simple booléen):

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

cela a réglé les choses.

C'est du travail pour moi.
Merci mec!

Salut à tous,

J'ai trouvé une autre solution sans changer de code source dans le répertoire node_modules.

  1. Créer un dossier de projet react-native (commande: react-native init projectName)
  2. Ouvrez le fichier projectName / ios / projectName.xcodeproj dans Xcode 11
  3. Choisissez l'appareil que vous souhaitez utiliser (l'iPhone X ne figure plus dans la liste après la sortie de l'iPhone Pro, vous devez donc cliquer sur le bouton plus et l'ajouter à la liste actuelle des appareils)
  4. Lorsque votre nouvel appareil dans la liste, vous pouvez fermer Xcode 11 et essayer d'exécuter l'émulateur à partir du terminal (react-native run-ios)

si vous avez besoin de captures d'écran, faites-le moi savoir.

C'est mon premier commentaire sur github, alors félicite-moi :)

Je vous remercie.

@ilkinnamazov Pourriez-vous envoyer des captures d'écran de votre solution s'il vous plaît?

Lorsque vous ouvrez le fichier .xcodeproj dans le dossier ios, il démarrera Xcode IDE et vous pourrez y choisir un simulateur particulier.
Voir les captures d'écran ci-dessous.

Vous pouvez choisir un appareil dans cette liste.
1
3

Mais si vous ne voyez pas l'iPhone X, vous pouvez facilement l'ajouter à votre liste d'appareils.
2
4
5
6

Si vous avez des questions dites le moi.
Merci.

Si ne fonctionne pas après avoir ajouté le simulateur iPhone X dans XCode

  1. Supprimer node_modules
  2. Supprimer yarn.lock ou package-lock.json
  3. Exécutez yarn ou npm install

Si ne fonctionne pas après avoir ajouté le simulateur iPhone X dans XCode

  1. Supprimer node_modules
  2. Supprimer yarn.lock ou package-lock.json
  3. Exécutez yarn ou npm install

La suppression des fichiers de verrouillage peut être problématique dans certaines circonstances. Faites-le soigneusement

Si vous souhaitez simplement exécuter un appareil spécifique. Il peut manquer dans la liste des simulateurs. Pour ajouter un appareil, procédez comme suit:

1) Ouvrez Xcode
2) Appuyez sur Command+Shift+2 cela ouvrira l'option Périphériques et simulateurs.
3) Allez dans l'onglet Simulateurs et appuyez sur l'icône + en bas à gauche et ajoutez l'iPhone X ou tout appareil manquant de votre choix.

Veuillez essayer cette solution. Cela pourrait fonctionner pour vous.

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

J'ai trouvé cela le plus simple,

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

Cela ne semble plus être un problème pour moi. Peut-être qu'une mise à jour l'a corrigé entre-temps?

La suggestion de @danielcampo de mettre à niveau la CLI l'a corrigé pour moi.

J'ai dû ajouter ceci à mon package.json:
"@react-native-community/cli": "@^1.12.0", car, pour une raison quelconque, le verrou ne mettrait pas à jour la pâte 1.11.2 sans lui.

Maintenant, il trouve des simulateurs sans problème.

Mise à jour vers xcode 11. Impossible de trouver l'appareil.
Le problème est d'interpréter la sortie de xcrun simctl list --json devices qui est utilisée par le script pour découvrir les périphériques installés.
Entré dans le code de findMatchingSimulator. dans l'état indiquant

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

ajout d'une nouvelle forme de isAvailable (qui est maintenant un simple booléen):

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

cela a réglé les choses.

Cela a fonctionné pour moi! Merci mec!

Si quelqu'un cherche toujours le fichier findMatchingSimulator.js pour le modifier manuellement, vous pouvez actuellement le trouver à ce chemin:
node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

J'espère que cela aidera quelqu'un sur toute la ligne!

Pensez également à passer la version IOS entre parenthèses:

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

@kelvinlemus j'ai

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

Et je veux changer le simulateur par défaut "iPhone X"
J'essaye d'exécuter react-native run-ios --simulator='iPhone XR' ou autres
mais à chaque fois, seul l'iPhone X est lancé

Cette page vous a été utile?
0 / 5 - 0 notes