<p>реагировать-native run-ios не может найти симулятор</p>

Созданный на 3 февр. 2019  ·  107Комментарии  ·  Источник: facebook/react-native

Окружающая обстановка


React Native Environment Info:
Система:
ОС: macOS 10.14.2
Процессор: (12) x64 Intel (R) Core (TM) i9-8950HK CPU @ 2,90 ГГц
Память: 6,76 ГБ / 32,00 ГБ
Оболочка: 3.2.57 - / bin / bash
Двоичные файлы:
Узел: 10.15.0 - / usr / local / bin / node
Пряжа: 1.13.0 - / usr / local / bin / yarn
npm: 6.4.1 - / usr / local / bin / npm
SDK:
SDK для iOS:
Платформы: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1.
Иды:
Android-студия: 3.1 AI-173.4819257
Xcode: 10.1 / 10B61 - / usr / bin / xcodebuild
npmPackages:
реагировать: 16.6.3 => 16.6.3
реагировать-родной: 0,57,8 => 0,57,8
npmGlobalPackages:
создать-реагировать-собственное-приложение: 1.0.0
реагировать-native-cli: 2.0.1
реагировать-native-git-upgrade: 0.2.7

Описание


Я столкнулся с проблемой, из-за которой не запускается react-native run-ios, независимо от симулятора, который я добавляю в аргумент --simulator.
XCode имеет правильное расположение для «инструментов командной строки»

Я всегда получаю сообщение об ошибке:
Не удалось найти симулятор 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)

Воспроизводимая демонстрация


Установил XCode с нуля.
Совершенно новое приложение с поддержкой реакции

'response-native run-ios' всегда жалуется на то, что не находит симулятор, независимо от опции --simulator.

Мое временное исправление - изменить:
/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

строка 42, чтобы:
if (! version.startsWith (' com.apple.CoreSimulator.SimRuntime. iOS') &&! version.startsWith ('tvOS')) {

Bug iOS Locked

Самый полезный комментарий

Возникают проблемы с поиском строки в версии симулятора в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js в этой строке: if (!version.startsWith('iOS') .

Я заменил его на includes как таковой: if (!version.includes('iOS') который, похоже, решил проблему для меня.

Все 107 Комментарий

Похоже, вы используете старую версию React Native. Обновите до последней версии v0.58 и проверьте

Ярлык «Решение: Старая версия» будет автоматически удален после редактирования исходного сообщения с результатами выполнения react-native info в проекте с использованием последней версии.

только что попробовал новый проект с:
реагировать-родной: 0.58.3 => 0.58.3

и та же проблема

  1. Можете ли вы проверить, какой симулятор iOS установлен на вашем компьютере?
  2. Вы всегда можете указать, какой симулятор вы хотите настроить, с помощью react-native run-ios —device=“XXXXXX’

У меня здесь такая же проблема.
Когда я перешел на
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
Продолжить;
}

все хорошо, так как префикс «com.apple.CoreSimulator.SimRuntime». включен в список устройств, чистая проверка на запуск с ошибкой для всех симуляторов.

Я создал запрос на перенос https://github.com/facebook/react-native/pull/23293 для этой проблемы

Привет, @osunnarvik, спасибо за пиар! Не могли бы вы объяснить немного подробнее (может быть, в PR), почему это происходит сейчас? Я имею в виду, когда поменяли приставку? В последней версии Xcode? 🤔

Я обновил описание PR, чтобы сказать немного о том, когда это началось, и добавил некоторую информацию о версии XCode и xcrun.

@kelset да, я считаю, что формат списка устройств изменился с последней версией XCode.

Отлично - спасибо, ребята :)

Мы уже объединили PR с 0.58 (поскольку 0.59 и т. Д. Будут иметь CLI отдельно), и в следующем выпуске патча (0.58.4) будет исправление 💪

@kelset Я заметил комментарий в https://github.com/react-native-community/react-native-cli/pull/138 относительно того, когда вы указываете simulatorString (комментарий от @canterberry ). Я проверил только с пустой simulatorString, а не с одним набором. Дайте мне знать, если вы хотите, чтобы я взглянул на случай, когда установлена ​​simulatorString.

Эээ, о да, наверное, было бы лучше иметь чек, когда строка установлена. 🤔

хорошо, я посмотрю завтра утром.

Я создал https://github.com/facebook/react-native/pull/23305 для обработки версий ввода с точками для simulatorString

@osunnarvik Эта проблема все еще присутствует в версии 0.59.1 для react-native

Возникают проблемы с поиском строки в версии симулятора в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js в этой строке: if (!version.startsWith('iOS') .

Я заменил его на includes как таковой: if (!version.includes('iOS') который, похоже, решил проблему для меня.

Возникают проблемы с поиском строки в версии симулятора в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js в этой строке: if (!version.startsWith('iOS') .

Я заменил его на includes как таковой: if (!version.includes('iOS') который, похоже, решил проблему для меня.

У меня работает. Спасибо.

Возникают проблемы с поиском строки в версии симулятора в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js в этой строке: if (!version.startsWith('iOS') .

Я заменил его на includes как таковой: if (!version.includes('iOS') который, похоже, решил проблему для меня.

отличное спасибо !!

Возникают проблемы с поиском строки в версии симулятора в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js в этой строке: if (!version.startsWith('iOS') .

Я заменил его на includes как таковой: if (!version.includes('iOS') который, похоже, решил проблему для меня.

Я действительно не могу понять, как эта ситуация вообще существовала

это исправление в новых версиях?

@evanoralph Если у вас сегодня findMatchingSimulator.js в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js .
Сначала загрузите симулятор, затем запустите xcrun simctl list --json devices и найдите тот, который содержит "state" : "Booted", .
Затем добавьте вверху в функцию findMatchingSimulator :

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

version может отличаться. Но это родительский ключ загруженного объекта устройства. Но это не исправление! Это обходной путь.

Возникают проблемы с поиском строки в версии симулятора в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js в этой строке: if (!version.startsWith('iOS') .

Я заменил его на includes как таковой: if (!version.includes('iOS') который, похоже, решил проблему для меня.

Обновлено до macOS 10.14.4 и XCode обновлено до 10.2, и эта проблема начала возникать у меня. Ваше решение помогло (хотя это только временное решение).

Возникают проблемы с поиском строки в версии симулятора в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js в этой строке: if (!version.startsWith('iOS') .

Я заменил его на includes как таковой: if (!version.includes('iOS') который, похоже, решил проблему для меня.

Потрясающе! Хотя временно работает отлично. Благодаря!

Возникают проблемы с поиском строки в версии симулятора в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js в этой строке: if (!version.startsWith('iOS') .

Я заменил его на includes как таковой: if (!version.includes('iOS') который, похоже, решил проблему для меня.

Работает на меня! Благодаря! Если вы запустите симулятор, у которого более одной версии (например, iPhone 5s iOS 10.3.1 и 12.2), эти исправления откроют все версии симуляторов. Вы можете определить версию с помощью --simulator "iPhone 5s (10.3)" .

@evanoralph Если у вас сегодня findMatchingSimulator.js в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js .
Сначала загрузите симулятор, затем запустите xcrun simctl list --json devices и найдите тот, который содержит "state" : "Booted", .
Затем добавьте вверху в функцию findMatchingSimulator :

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

version может отличаться. Но это родительский ключ загруженного объекта устройства. Но это не исправление! Это обходной путь.

обходной путь для меня теперь работает нормально, я не знаю, нужно ли мне обновлять мои проекты до .59.0

Я единственный, у кого нет node_modules / response-native / local-cli / runIOS / findMatchingSimulator.js? В папке local-cli есть только одна вещь, это файл cli.js - какие-нибудь идеи ??

Просто к вашему сведению, это также помогло в моей системе с этой проблемой:

xcrun simctl удалить недоступен

У меня возникла проблема, мне помогла замена на includes . когда это будет исправлено?

HHHEEEYYYY ... замена включает в себя !!!!!

@Titozzz Есть новости о том, когда это будет исправлено? Временное исправление не является дружественным для команды и git способом.
Я готов внести свой вклад, если кто-нибудь скажет мне, как действовать дальше.

@Titozzz @kelset
Я изучил свою проблему и обнаружил, что это другая проблема, представленная здесь OP.

Проблема в том, что мне нужно запустить приложение на iPad, и поскольку в именах iPad размеры устройства указаны в скобках, например. iPad Pro (9.7-inch) , в коде cli предполагается, что размер устройства в скобках соответствует версии среды выполнения iOS.

Я предлагаю использовать отдельный аргумент для версии среды выполнения ios или использовать другой тип скобок для определения версии среды выполнения.

Моя версия RN - 0.59.3

Здравствуйте, можете ответить на вопросы?

Я единственный, у кого нет node_modules / response-native / local-cli / runIOS / findMatchingSimulator.js? В папке local-cli есть только одна вещь, это файл cli.js - какие-нибудь идеи ??

@lpfunding здесь: node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Рад, что вы видите мое сообщение! Во-вторых, большое спасибо за ответ! Но мой Xcode - это версия 8.1, и у меня есть симуляторы Xcode в дополнение к X, но когда я компилирую терминальную ошибку, не могу найти никакого симулятора! Я изменил условия компиляции во многих местах, но не смог решить проблему, поэтому оставил сообщение о помощи.

это исправление дефакто? или есть открытый пиар?

У меня это работает на 0.58.6; Похоже, это было исправлено в коммите 9a8c9596ebe41e27d37ba18d6bf09f1c931c1ff2 🙂

Это работает, когда вы обновляете response-native до v59

Я думаю, моя проблема может быть связана с тем, что если вы используете XCode 10.2.1 (как и я), Apple переименовала симулятор iPhone XR в iPhone Xʀ (обратите внимание на большую букву «R» и маленькую букву «ʀ») поэтому, если вы пытаетесь настроить таргетинг на этот недавно переименованный симулятор, используйте react-native run-ios --simulator="iPhone Xʀ" . Спасибо, Apple ...

@ lcastillo88 Ого , это хороший улов, какое странное изменение 😅

Для тех, кто борется с этим из-за того, что вы пытаетесь запустить симулятор iPad Pro, проблема в том, что findMatchingSimulator.js считает, что все, что находится в скобках, является версией симулятора для iOS, который вы пытаетесь запустить. Итак, он пытается открыть симулятор iPad Pro с версией iOS 10.5-inch (или любым другим симулятором, который вы пытаетесь запустить). По понятным причинам это не сработает.

Самый простой обходной путь для этого, пока не будет реализовано постоянное исправление, - это переименовать симулятор во что-то, что не содержит круглых скобок. В Xcode щелкните «Окно»> «Устройства и симуляторы», щелкните вкладку «Симуляторы», затем щелкните правой кнопкой мыши симулятор, с которым вы работаете, чтобы переименовать его.

Для тех, кто не может обновить RN, но нуждается в более автоматизированном исправлении, вы можете использовать следующий сценарий оболочки в своей последующей установке:

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

Это помогло нам выполнить наши тесты автоматизации на нашем CI-сервере.

Просто чтобы убедиться, что я ничего не пропустил: если вы используете версию 0.59, проблема исправлена, верно?

Специально для симуляторов iPad Pro (или любого другого симулятора, который включает в себя что-то, кроме версии iOS в скобках), это все еще не работает в последней версии react-native.

Если не считать этого сценария, все работает нормально.

Возникают проблемы с поиском строки в версии симулятора в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js в этой строке: if (!version.startsWith('iOS') .

Я заменил его на includes как таковой: if (!version.includes('iOS') который, похоже, решил проблему для меня.

невероятно спасибо

Если кому-то нужно запустить в указанной версии iOS:
react-native run-ios --simulator="iPhone 8 (12-0)"
Раньше это было (12.0) но изменилось на 12-0 после того, как я обновил свой xcode до 10.2.1

Возникают проблемы с поиском строки в версии симулятора в node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js в этой строке: if (!version.startsWith('iOS') .

Я заменил его на includes как таковой: if (!version.includes('iOS') который, похоже, решил проблему для меня.

это сработало для меня. спасибо

но не могли бы вы объяснить мне проблему

@kelset

Просто чтобы убедиться, что я ничего не пропустил: если вы используете версию 0.59, проблема исправлена, верно?

я только что обновился до 0.59.8, и он работает [обновлено через react-native-git-upgrade ]

Для тех, кто не может обновить RN, но нуждается в более автоматизированном исправлении, вы можете использовать следующий сценарий оболочки в своей последующей установке:

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

Это помогло нам выполнить наши тесты автоматизации на нашем CI-сервере.

Это сработало для меня

ЭТО МОЖЕТ ПОЛУЧИТЬ ПОМОЩЬ ДЛЯ КТО-ТО, ЧТО ЕЩЕ ИСПОЛЬЗУЕТ

"react-native": "0.52.1"

Я исправил это следующим изменением.

Идите по этому пути.

node_modules / реагировать-родной / локальный-cli / runIOS / findMatchingSimulator.js

Изменение ( номер строки для меня был 30 )
if (version.indexOf('iOS') !== 0)

Чтобы
if (version.indexOf('iOS') === -1)

Я использую [email protected], а --simulator = "iPhone 8" не анализировался правильно. При добавлении журнала консоли он, казалось, был проанализирован как «iPhone (без конечной кавычки). Я изменил node_modules / response-native / local-cli / runIOS / findMatchingSimulator.js, чтобы принять имя симулятора с подчеркиванием вместо любого пробелы.

Кажется, это решает проблему синтаксического анализа, которую я видел:

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

Я сделал следующее изменение локально:

функция findMatchingSimulator (симуляторы, simulatorString) {
if (! simulators.devices) {
return null;
}
const devices = simulators.devices;

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

Сегодня я исправил это в runIOS/findMatchingSimulator.js . 🎉 я поменял строчку
if (simulator.availability !== '(available)' && simulator.isAvailable !== 'YES') {
к
if (simulator.availability !== '(available)' && simulator.isAvailable !== true) { .
Похоже, что свойство isAvailable возвращает обычное логическое значение вместо YES / NO в списке устройств.
Кстати, эта проблема возникла после установки Xcode 11 Beta.

реагировать-native-cli: 2.0.1
реагировать-родной: 0.59.9

Получил ту же ошибку, что не может найти симулятор.

Причина: при запуске run-ios с поддержкой react-native имя симулятора по умолчанию - iPhoneX, которого вообще нет. Название iPhoneX - iPhoneXs, iPhoneXs Max или iPhoneXR.
Решение: измените код в 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.

В моем проекте все еще используется "react-native": "0.53.3", и для меня код в "findMatchingSimulator.js" в папке response-native node_modules -

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

Не могу поверить.

У меня здесь такая же проблема.
Когда я перешел на
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
Продолжить;
}

все хорошо, так как префикс «com.apple.CoreSimulator.SimRuntime». включен в список устройств, чистая проверка на запуск с ошибкой для всех симуляторов.

Спасибо, это сработало для меня

У меня здесь такая же проблема.
Когда я перешел на
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
Продолжить;
}

все хорошо, так как префикс «com.apple.CoreSimulator.SimRuntime». включен в список устройств, чистая проверка на запуск с ошибкой для всех симуляторов.

привет мой node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js не существует

@ topik96 Проверьте здесь.

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

Примечание. Приведенные выше исправления не помогли мне. Что я сделал:

  1. Запустите эту команду xcrun simctl list devices
  2. Проверьте название симулятора и версию iOS. (В моем случае это было 12,2)
  3. Теперь моя команда выглядит так: react-native run-ios --simulator='iPad Pro (9.7-inch) (12.2) . Обратите внимание на версию iOS.

Раньше я не упоминал версию iOS в своей команде запуска.

проверка доступных симуляторов теперь должна быть:
simulator.isAvailable! == true

Я думаю, моя проблема может быть связана с тем, что если вы используете XCode 10.2.1 (как и я), Apple переименовала симулятор iPhone XR в iPhone Xʀ (обратите внимание на большую букву «R» и маленькую букву «ʀ») поэтому, если вы пытаетесь настроить таргетинг на этот недавно переименованный симулятор, используйте react-native run-ios --simulator="iPhone Xʀ" . Спасибо, Apple ...

Работал у меня. Спасибо.

У меня здесь такая же проблема.
Когда я перешел на
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
Продолжить;
}

все хорошо, так как префикс «com.apple.CoreSimulator.SimRuntime». включен в список устройств, чистая проверка на запуск с ошибкой для всех симуляторов.

Спасибо !, у меня сработало!

У меня здесь такая же проблема.
Когда я перешел на
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
Продолжить;
}
все хорошо, так как префикс «com.apple.CoreSimulator.SimRuntime». включен в список устройств, чистая проверка на запуск с ошибкой для всех симуляторов.

привет мой node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js не существует

если вы используете новый cli в обновленной версии React Native, его можно найти здесь:

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

Сегодня я исправил это в runIOS/findMatchingSimulator.js . 🎉 я поменял строчку
if (simulator.availability !== '(available)' && simulator.isAvailable !== 'YES') {
к
if (simulator.availability !== '(available)' && simulator.isAvailable !== true) { .
Похоже, что свойство isAvailable возвращает обычное логическое значение вместо YES / NO в списке устройств.
Кстати, эта проблема возникла после установки Xcode 11 Beta.

Я также установил 11 Beta. Думаете, этот сценарий должен одновременно проверять и YES и true ?

не мог решить проблему и нуждался в быстром решении, поэтому я нашел быстрое решение.

console.log устройств и взломал возврат

в findMatchingSimulator.js
непосредственно перед if(match) {return match}

Я жестко запрограммировал возврат

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

У меня здесь такая же проблема.
Когда я перешел на
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
Продолжить;
}

все хорошо, так как префикс «com.apple.CoreSimulator.SimRuntime». включен в список устройств, чистая проверка на запуск с ошибкой для всех симуляторов.

Потрясающе. Это работает как шарм. Благодаря!

Если вы видите эту ошибку:

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

См. Мой комментарий к этому простому решению здесь:

ошибка Не удалось найти симулятор iPhone X # 418

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

исправить для меня.

Сделайте следующее исправление для меня
реагировать-родной: 0.52.3

исправить не могу найти эмулятор

открыть файл
код ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

заменить version.indexOf ('iOS')! == 0
to! version.includes ('iOS')

Эта проблема возникала у меня в течение последних 4 месяцев и в серверных версиях RN. Обычно после какого-то обновления. Каждый раз это вредит моей производительности.

Привет, Джим, вы подтвердили, что у вас нет проекта RN в проекте RN (файл
система мудрая)? Если да, попробуйте сделать по одному проекту в одной папке. Это что
случилось со мной, и как только я удалил второй проект в независимую папку
(с помощью RN init). Надеюсь, это поможет вам :)

В субботу, 21 сентября 2019 г., в 18:28 Джим Холл [email protected] написал:

Эта проблема возникала у меня в течение последних 4 месяцев
и над серверными версиями RN. Обычно после какого-то обновления. Это
каждый раз вредит моей производительности.

-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/facebook/react-native/issues/23282?email_source=notifications&email_token=ADA33H7VQA5DPUSQO6ILB6DQKY4TLA5CNFSM4GUBJ5D2YY3PNVWWK3TUL52HS443D2YY3PNVWWK3TUL52HS443DFMVREXWNVWWK3TUL52HS443DFMVREXQDNX2HS443DFMVREXWO3TUL52HS443DFMVREX
или отключить поток
https://github.com/notifications/unsubscribe-auth/ADA33H56N5ML47724MTTPFTQKY4TLANCNFSM4GUBJ5DQ
.

Симулятор iPhone X больше не поддерживается? Я столкнулся с этой проблемой и исправил ее, запустив
-simulator="iPhone 11 Pro"

Подтверждая наблюдения @ reza-hashemi, запуск instruments -s devices с установленным Xcode 11.0 (11A420a) больше не отображает IPhone X. Поставка других симуляторов с использованием флага --simulator работает.

Похоже, в новую версию xCode по умолчанию не добавлен симулятор iPhone X. Вы также можете решить проблему, добавив симулятор обратно в xCode. В конечном итоге, вероятно, следует обновить интерфейс командной строки для использования iPhone 11.

После обновления до Xcode 11 я получаю сообщение об ошибке
«Не удалось найти симулятор iPhone X».

легко исправить ...

Xcode -> настройки -> компоненты установить сумулятор ios 12.2

Шаги @broros исправили это для меня. Эта проблема возникла после обновления XCode, однако, как только я прошел симулятор, я получил другое сообщение об ошибке.

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”

Чтобы исправить этот второй набор ошибок, мне пришлось открыть проект ios в Xcode -> Файл -> Настройки рабочей области -> Система сборки -> (Установить в Legacy).

После обновления Xcode с 10 до 11 я также получил ошибку «iPhone X Simulator». Я пробовал несколько сценариев, найденных в этой ветке, и другие, но безрезультатно. Если у вас есть предупреждения в вашем терминале, попробуйте npm audit fix . Решено для меня, и теперь я загружаюсь без проблем.

Обновлено до xcode 11. Не удалось найти устройство.
проблема заключается в интерпретации вывода xcrun simctl list --json devices который используется сценарием для определения установленных устройств.
Зашел в код findMatchingSimulator. в состоянии, заявляющем

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

добавлена ​​новая форма isAvailable (которая теперь является простым логическим):

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

это разобралось.

Обновлено до xcode 11. Не удалось найти устройство.
проблема заключается в интерпретации вывода xcrun simctl list --json devices который используется сценарием для определения установленных устройств.
Зашел в код findMatchingSimulator. в состоянии, заявляющем

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

добавлена ​​новая форма isAvailable (которая теперь является простым логическим):

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

это разобралось.

Привет. Вы можете мне объяснить, где находится findMatchingSimulator?

Спасибо @galkahana ,
это сработало для меня.
@TchernyavskyDaniil вы можете найти файл в папке вашего проекта node_modules
./node_modules/\@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Спасибо @galkahana ,
это сработало для меня.
@TchernyavskyDaniil вы можете найти файл в папке вашего проекта node_modules
./node_modules/\@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Вы имели в виду:
/ cli-platform-IOS / ...?

Я не могу найти твой путь (runIOS): C

РН 60,4

@TchernyavskyDaniil Я бегаю на RN 0.59.9
Не могли бы вы выполнить find . -iname findMatchingSimulator.js из командной строки в папке проекта?
Если вы нашли @ в пути, добавьте перед ним обратную косую черту и откройте его с помощью vim или другого редактора.

@TchernyavskyDaniil Я бегаю на RN 0.59.9
Не могли бы вы выполнить find . -iname findMatchingSimulator.js из командной строки в папке проекта?
Если вы нашли @ в пути, добавьте перед ним обратную косую черту и откройте его с помощью vim или другого редактора.

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

Хорошо, я попытаюсь

«Не удалось найти симулятор iPhone X».

изображение

Ницца :)

Получение этой ошибки в XCode 11. Да благословит Бог обновления программного обеспечения !!

вы можете обновить свой @ response-native-community / cli до 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 Я использую @react-native-community/[email protected] и имею эту проблему.

@galkahana Спасибо. Это сработало. Но изменение node_modules - это смертельный прием, которого следует избегать. Должен поднять PR за это

  1. Можете ли вы проверить, какой симулятор iOS установлен на вашем компьютере?
  2. Вы всегда можете указать, какой симулятор вы хотите настроить, с помощью react-native run-ios —device=“XXXXXX’

просто установите устройство iphone X в xcode

Такая же ошибка после недавнего обновления Xcode, которое добавило новые симуляторы телефона И удалило некоторые старые:

  1. Запуск симулятора
  2. Из меню: Оборудование> Устройство> Управление устройствами.
  3. Выберите вкладку / кнопку «Симуляторы», затем нажмите «+» в левом нижнем углу и добавьте любое устройство, на которое жалуется ваша ошибка запуска (примите значения по умолчанию, т. Е. Не заполняйте поле имени).

Надеюсь, это кому-то поможет ...

Если после выполнения описанных выше действий @react-native-community/cli .

Для этого вы можете выполнить следующие действия:
https://github.com/react-native-community/cli#updating -the-cli

Обновлено до xcode 11. Не удалось найти устройство.
проблема заключается в интерпретации вывода xcrun simctl list --json devices который используется сценарием для определения установленных устройств.
Зашел в код findMatchingSimulator. в состоянии, заявляющем

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

добавлена ​​новая форма isAvailable (которая теперь является простым логическим):

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

это разобралось.

Потрясающе. Это работает как шарм. Спасибо чувак

@TchernyavskyDaniil Вы экономите мое время. Большое спасибо!
РН 0,58,3
Xcode 11
Имея эту проблему.
Чтобы решить эту проблему, выполните следующие действия:

  1. Из открытого файла проекта:
    code ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
  2. заменить
    version.indexOf ('iOS')! == 0
    к
    ! version.includes ('iOS')

заменить
simulator.availability! == '(доступно)'
к
simulator.availability! == '(доступно)' &&
simulator.isAvailable! == 'ДА' &&
simulator.isAvailable! == true

  1. Запустить react-native run-ios
    По умолчанию react native запустит симулятор iPhone 11 Pro Max.
    См. Список текущего симулятора:
    xcrun simctl list devices
    Вы можете сменить симулятор:
    react-native run-ios --configuration Debug --simulator='Your simulator' --scheme 'Your Scheme'
    пример
    react-native run-ios --configuration Debug --simulator='iPhone 11 Pro Max' --scheme 'HelloWorld'

Другой вариант, который мне подходит.

# to find what simulators you have
xcrun simctl list

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

Обновлено до xcode 11. Не удалось найти устройство.
проблема заключается в интерпретации вывода xcrun simctl list --json devices который используется сценарием для определения установленных устройств.
Зашел в код findMatchingSimulator. в состоянии, заявляющем

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

добавлена ​​новая форма isAvailable (которая теперь является простым логическим):

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

это разобралось.

Для меня это работа.
Спасибо чувак!

Привет всем,

Я нашел другое решение, не меняя исходный код в каталоге node_modules.

  1. Создайте папку проекта, поддерживающую реакцию (команда: response-native init имя проекта)
  2. Откройте файл projectName / ios / projectName.xcodeproj файл в Xcode 11
  3. Выберите устройство, которое вы хотите использовать (iPhone X больше не в списке после выпуска iPhone Pro, поэтому вам нужно нажать кнопку «плюс» и добавить в текущий список устройств)
  4. Когда ваше новое устройство в списке, вы можете закрыть Xcode 11 и попытаться запустить эмулятор из терминала (реагировать на собственный запуск-ios)

если вам нужны скриншоты, как это сделать, просто дайте мне знать.

Кстати, это мой первый комментарий в github, поэтому поздравляю меня :)

Спасибо.

@ilkinnamazov Не могли бы вы прислать скриншоты вашего решения?

Когда вы откроете файл .xcodeproj в папке ios, он запустит Xcode IDE, и там вы сможете выбрать конкретный симулятор.
Смотрите скриншоты ниже.

Вы можете выбрать устройство из этого списка.
1
3

Но если вы не видите iPhone X, вы можете легко добавить его в свой список устройств.
2
4
5
6

Если у вас есть какие-либо вопросы, дайте мне знать.
Благодарю.

Если не работает после добавления симулятора iPhone X в XCode

  1. Удалить node_modules
  2. Удалите yarn.lock или package-lock.json
  3. Запустите yarn или npm install

Если не работает после добавления симулятора iPhone X в XCode

  1. Удалить node_modules
  2. Удалите yarn.lock или package-lock.json
  3. Запустите yarn или npm install

Удаление файлов блокировки может быть проблематичным при определенных обстоятельствах. Делай это осторожно

Если вы просто хотите запустить какое-то конкретное устройство. Возможно, он отсутствует в списке симуляторов. Чтобы добавить устройство, выполните следующие действия:

1) Откройте Xcode
2) Нажмите Command+Shift+2 , откроется опция «Устройства и симуляторы».
3) Перейдите на вкладку «Симуляторы», нажмите значок «+» слева внизу и добавьте iPhone X или любое отсутствующее устройство, которое хотите.

Пожалуйста, попробуйте это решение. Это может сработать для вас.

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

Я нашел это самым простым,

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

Для меня это больше не проблема. Может быть, какое-то обновление тем временем исправило?

Предложение @danielcampo по обновлению CLI исправило это для меня.

Мне пришлось добавить это в свой package.json:
"@react-native-community/cli": "@^1.12.0", как по какой-то причине блокировка без нее не обновила бы пасту 1.11.2.

Теперь он без проблем находит тренажеры.

Обновлено до xcode 11. Не удалось найти устройство.
проблема заключается в интерпретации вывода xcrun simctl list --json devices который используется сценарием для определения установленных устройств.
Зашел в код findMatchingSimulator. в состоянии, заявляющем

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

добавлена ​​новая форма isAvailable (которая теперь является простым логическим):

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

это разобралось.

Это сработало для меня! Спасибо, парень!

Если кто-то все еще ищет файл findMatchingSimulator.js для его редактирования вручную, вы можете найти его по следующему пути:
node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

Я надеюсь, что это поможет кому-то в будущем!

Также не забудьте указать версию iOS в скобках:

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

@kelvinlemus у меня есть

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

И я хочу изменить симулятор по умолчанию "iPhone X"
Я пытаюсь запустить react-native run-ios --simulator='iPhone XR' или другое
но каждый раз запускался только iPhone X

Была ли эта страница полезной?
0 / 5 - 0 рейтинги