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')) {
Похоже, вы используете старую версию React Native. Обновите до последней версии v0.58 и проверьте
Ярлык «Решение: Старая версия» будет автоматически удален после редактирования исходного сообщения с результатами выполнения react-native info
в проекте с использованием последней версии.
только что попробовал новый проект с:
реагировать-родной: 0.58.3 => 0.58.3
и та же проблема
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
Примечание. Приведенные выше исправления не помогли мне. Что я сделал:
xcrun simctl list devices
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.
См. Мой комментарий к этому простому решению здесь:
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 за это
- Можете ли вы проверить, какой симулятор iOS установлен на вашем компьютере?
- Вы всегда можете указать, какой симулятор вы хотите настроить, с помощью
react-native run-ios —device=“XXXXXX’
просто установите устройство iphone X в xcode
Такая же ошибка после недавнего обновления Xcode, которое добавило новые симуляторы телефона И удалило некоторые старые:
Надеюсь, это кому-то поможет ...
Если после выполнения описанных выше действий @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
Имея эту проблему.
Чтобы решить эту проблему, выполните следующие действия:
code ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
заменить
simulator.availability! == '(доступно)'
к
simulator.availability! == '(доступно)' &&
simulator.isAvailable! == 'ДА' &&
simulator.isAvailable! == true
react-native run-ios
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.
если вам нужны скриншоты, как это сделать, просто дайте мне знать.
Кстати, это мой первый комментарий в github, поэтому поздравляю меня :)
Спасибо.
@ilkinnamazov Не могли бы вы прислать скриншоты вашего решения?
Когда вы откроете файл .xcodeproj в папке ios, он запустит Xcode IDE, и там вы сможете выбрать конкретный симулятор.
Смотрите скриншоты ниже.
Вы можете выбрать устройство из этого списка.
Но если вы не видите iPhone X, вы можете легко добавить его в свой список устройств.
Если у вас есть какие-либо вопросы, дайте мне знать.
Благодарю.
Если не работает после добавления симулятора iPhone X в XCode
yarn
или npm install
Если не работает после добавления симулятора iPhone X в XCode
- Удалить node_modules
- Удалите yarn.lock или package-lock.json
- Запустите
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
Самый полезный комментарий
Возникают проблемы с поиском строки в версии симулятора в
node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
в этой строке:if (!version.startsWith('iOS')
.Я заменил его на
includes
как таковой:if (!version.includes('iOS')
который, похоже, решил проблему для меня.