<p>رد فعل أصلي run-ios لا يمكن العثور على أي جهاز محاكاة</p>

تم إنشاؤها على ٣ فبراير ٢٠١٩  ·  107تعليقات  ·  مصدر: facebook/react-native

بيئة


تفاعل معلومات البيئة الأصلية:
النظام:
نظام التشغيل: macOS 10.14.2
وحدة المعالجة المركزية: (12) x64 Intel (R) Core (TM) i9-8950HK CPU @ 2.90GHz
الذاكرة: 6.76 جيجا بايت / 32.00 جيجا بايت
شل: 3.2.57 - / بن / باش
الثنائيات:
العقدة: 10.15.0 - / usr / local / bin / node
الغزل: 1.13.0 - / usr / local / bin / yarn
npm: 6.4.1 - / usr / local / bin / npm
مجموعات SDK:
iOS SDK:
المنصات: iOS 12.1 ، macOS 10.14 ، tvOS 12.1 ، watchOS 5.1
IDEs:
ستوديو أندرويد: 3.1 AI-173.4819257
Xcode: 10.1 / 10B61- / usr / bin / xcodebuild
الحزم:
رد فعل: 16.6.3 => 16.6.3
رد فعل أصلي: 0.57.8 => 0.57.8
الحزم:
إنشاء تطبيق أصلي: 1.0.0
رد فعل أصلي CLI: 2.0.1
رد فعل-أصلي-بوابة-ترقية: 0.2.7

وصف


لقد كنت أواجه مشكلة حيث لا يمكن بدء تشغيل "رد فعل أصلي 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 من البداية.
العلامة التجارية الجديدة "التطبيق الجديد التفاعلي"

يشكو "رد فعل التشغيل الأصلي" دائمًا من عدم العثور على المحاكي ، بغض النظر عن خيار المحاكي.

إصلاحي المؤقت هو التغيير:
/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." تم تضمينه في قائمة الأجهزة ، وفشل الفحص الخالص لـ startWith لجميع أجهزة المحاكاة.

لقد قمت بإنشاء طلب سحب https://github.com/facebook/react-native/pull/23293 لهذه المشكلة

مرحبًا osunnarvik شكرًا على إنشاء العلاقات العامة! هل يمكن أن تشرح أكثر قليلاً (ربما في العلاقات العامة) لماذا يحدث هذا الآن؟ أعني متى تغيرت البادئة؟ في أحدث Xcode؟ 🤔

لقد قمت بتحديث وصف العلاقات العامة الآن لأقول قليلاً عن وقت حدوثه وأضفت بعض معلومات الإصدار من 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.

Uhm أوه نعم ربما يكون من الأفضل أن يكون لديك الاختيار أيضًا عند تعيين السلسلة. 🤔

حسنًا ، سألقي نظرة صباح الغد.

لقد أنشأت https://github.com/facebook/react-native/pull/23305 للتعامل مع إصدارات الإدخال المنقطة لـ simulatorString

osunnarvik لا تزال هذه المشكلة موجودة في الإصدار الأصلي 0.59.1

إنها تواجه مشكلات أثناء إجراء البحث عن السلسلة في إصدار المحاكي في 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') والذي يبدو أنه حل المشكلة بالنسبة لي.

يعمل لدي! شكر! إذا قمت بتشغيل Simulator يحتوي على أكثر من إصدار واحد (مثل 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 / رد فعل أصلي / local-cli / runIOS / findMatchingSimulator.js؟ يوجد شيء واحد فقط داخل مجلد local-cli ، وهو ملف cli.js - أي أفكار ؟؟

فقط لمعلوماتك ، يبدو أن هذا أيضًا يساعد ، في نظامي ، في مواجهة هذه المشكلة:

xcrun simctl حذف غير متوفر

حصلت على المشكلة ، وقد ساعدني الاستبدال بـ includes . متى سيتم إصلاحه؟

HHHEEEYYYY ... الاستبدال يشمل الأعمال !!!!!

Titozzz هل هناك أية تحديثات حول متى سيتم إصلاح ذلك؟ الإصلاح المؤقت ليس طريقة ودية جماعية.
أنا مستعد للمساهمة إذا أخبرني أحدهم بكيفية المضي قدمًا.

تضمين التغريدة
لقد نظرت في مشكلتي ووجدت أنها مشكلة مختلفة تم تقديمها هنا من قبل OP.

المشكلة هي أنني بحاجة إلى تشغيل تطبيقي في iPad وبما أن أسماء iPad تحتوي على أحجام الجهاز بين قوسين على سبيل المثال. iPad Pro (9.7-inch) ، يفترض رمز cli أن حجم الجهاز بين قوسين هو إصدار وقت تشغيل iOS.

أقترح أن نستخدم وسيطة منفصلة لإصدار وقت التشغيل iOS أو أن يكون لدينا نوع قوس مختلف لاكتشاف إصدار وقت التشغيل.

إصدار RN الخاص بي هو 0.59.3

مرحبا هل يمكنك الاجابة على الاسئلة؟

هل أنا الوحيد الذي ليس لديه node_modules / رد فعل أصلي / 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 🙂

يعمل هذا عند ترقية رد الفعل الأصلي إلى الإصدار 59

أعتقد أن مشكلتي قد تتعلق بحقيقة أنه إذا كنت تستخدم XCode 10.2.1 (مثلي) ، فإن Apple أعادت تسمية محاكي iPhone XR إلى iPhone Xʀ (لاحظ حرف "R" الكبير مقابل "" الصغير) لذلك إذا كنت تحاول استهداف هذا المحاكي الذي تمت إعادة تسميته حديثًا ، فاستخدم react-native run-ios --simulator="iPhone Xʀ" . شكرا أبل ...

@ lcastillo88 يا نجاح باهر هذا صيد لطيف ، يا له من تغيير غريب 😅

بالنسبة لأي شخص يعاني من هذا لأنك تحاول تشغيل جهاز محاكاة iPad Pro ، فإن المشكلة هي أن findMatchingSimulator.js يعتقد أن أي شيء داخل الأقواس هو إصدار iOS من المحاكي الذي تحاول تشغيله. لذا فهو يحاول فتح محاكي iPad Pro بإصدار iOS 10.5-inch (أو أي جهاز محاكاة تحاول تشغيله). لأسباب واضحة ، لن يعمل هذا.

أسهل حل لهذا حتى يتم تنفيذ إصلاح دائم هو إعادة تسمية المحاكي إلى شيء لا يتضمن أقواسًا. في Xcode ، انقر فوق Window> Devices and Simulators ، وانقر فوق علامة التبويب Simulators ، ثم انقر بزر الماوس الأيمن فوق المحاكي الذي تعمل معه لإعادة تسميته.

بالنسبة لأي شخص غير قادر على ترقية RN ولكنه يحتاج إلى مزيد من الإصلاح التلقائي ، يمكنك استخدام البرنامج النصي shell التالي في التثبيت اللاحق الخاص بك:

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

ساعدنا ذلك في أن نكون قادرين على تنفيذ اختبارات الأتمتة الخاصة بنا على خادم CI الخاص بنا.

فقط للتأكد من أنني لم يفوتني أي شيء: إذا كنت في 0.59 ، تم إصلاح هذه المشكلة ، أليس كذلك؟

على وجه التحديد لمحاكيات iPad Pro (أو أي جهاز محاكاة آخر يتضمن شيئًا بخلاف إصدار iOS بين قوسين) ، لا يزال هذا معطلاً في أحدث إصدار من التفاعل الأصلي.

بصرف النظر عن هذا السيناريو ، فإنه يعمل بشكل جيد.

إنها تواجه مشكلات أثناء إجراء البحث عن السلسلة في إصدار المحاكي في 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') والذي يبدو أنه حل المشكلة بالنسبة لي.

هذا عمل لي. شكرا لك

ولكن هل يمكن أن توضح لي المشكلة

تضمين التغريدة

فقط للتأكد من أنني لم يفوتني أي شيء: إذا كنت في 0.59 ، تم إصلاح هذه المشكلة ، أليس كذلك؟

لقد قمت بالترقية للتو إلى 0.59.8 وهو يعمل [تمت الترقية عبر react-native-git-upgrade ]

بالنسبة لأي شخص غير قادر على ترقية RN ولكنه يحتاج إلى مزيد من الإصلاح التلقائي ، يمكنك استخدام البرنامج النصي shell التالي في التثبيت اللاحق الخاص بك:

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

ساعدنا ذلك في أن نكون قادرين على تنفيذ اختبارات الأتمتة الخاصة بنا على خادم CI الخاص بنا.

هذا عمل معي

قد يكون هذا مفيدًا بالنسبة إلى شخص ما لا يزال قيد الاستخدام

"تفاعل أصلي": "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 / رد فعل أصلي / محلي-cli / runIOS / findMatchingSimulator.js لقبول اسم محاكاة بشرطة سفلية بدلاً من أي المساحات.

يبدو أن هذا لإصلاح مشكلة التحليل التي كنت أراها:

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

لقد أجريت التغيير التالي محليًا:

وظيفة findMatchingSimulator (simulators، simulatorString) {
إذا (! simulators.devices) {
عودة فارغة ؛
}
أجهزة const = 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.

رد فعل أصلي CLI: 2.0.1
رد فعل أصلي: 0.59.9

حصلت على نفس الخطأ الذي لا يمكن العثور على جهاز محاكاة.

السبب: عند تشغيل نظام التشغيل المتفاعل الأصلي ، فإن اسم المحاكي الافتراضي هو 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.

لا يزال مشروعي يستخدم "رد فعل أصلي": "0.53.3" وبالنسبة لي فإن الكود الموجود في "findMatchingSimulator.js" في مجلد node_modules التفاعلي الأصلي هو

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

لا أستطيع أن أصدق ذلك.

لدي نفس المشكلة هنا أيضًا.
عندما غيرت إلى
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
استمر؛
}

كل شيء على ما يرام ، منذ البادئة "com.apple.CoreSimulator.SimRuntime." تم تضمينه في قائمة الأجهزة ، وفشل الفحص الخالص لـ startWith لجميع أجهزة المحاكاة.

شكرا لقد عملت معي

لدي نفس المشكلة هنا أيضًا.
عندما غيرت إلى
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
استمر؛
}

كل شيء على ما يرام ، منذ البادئة "com.apple.CoreSimulator.SimRuntime." تم تضمينه في قائمة الأجهزة ، وفشل الفحص الخالص لـ startWith لجميع أجهزة المحاكاة.

مرحبًا ، 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! == صحيح

أعتقد أن مشكلتي قد تتعلق بحقيقة أنه إذا كنت تستخدم XCode 10.2.1 (مثلي) ، فإن Apple أعادت تسمية محاكي iPhone XR إلى iPhone Xʀ (لاحظ حرف "R" الكبير مقابل "" الصغير) لذلك إذا كنت تحاول استهداف هذا المحاكي الذي تمت إعادة تسميته حديثًا ، فاستخدم react-native run-ios --simulator="iPhone Xʀ" . شكرا أبل ...

عملت من أجلي. شكرا.

لدي نفس المشكلة هنا أيضًا.
عندما غيرت إلى
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
استمر؛
}

كل شيء على ما يرام ، منذ البادئة "com.apple.CoreSimulator.SimRuntime." تم تضمينه في قائمة الأجهزة ، وفشل الفحص الخالص لـ startWith لجميع أجهزة المحاكاة.

شكرا! ، عملت لي!

لدي نفس المشكلة هنا أيضًا.
عندما غيرت إلى
if (! version.includes ('iOS') &&! version.includes ('tvOS')) {
استمر؛
}
كل شيء على ما يرام ، منذ البادئة "com.apple.CoreSimulator.SimRuntime." تم تضمينه في قائمة الأجهزة ، وفشل الفحص الخالص لـ startWith لجميع أجهزة المحاكاة.

مرحبًا ، 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 بيتا أيضًا. هل تعتقد أن هذا البرنامج النصي يجب أن يتحقق من كل من 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." تم تضمينه في قائمة الأجهزة ، وفشل الفحص الخالص لـ startWith لجميع أجهزة المحاكاة.

رائع. هذا يعمل مثل السحر. شكر!

إذا كنت ترى هذا الخطأ:

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

انظر تعليقي على هذا الحل البسيط هنا:

خطأ تعذر العثور على جهاز محاكاة iPhone X # 418

sed -i '' s / StartWith / include / g 'node_modules / رد فعل محلي / محلي- cli / runIOS / findMatchingSimulator.js

الإصلاح بالنسبة لي.

قم باتباع الخطوة التالية الإصلاح بالنسبة لي
رد الفعل الأصلي: 0.52.3

الإصلاح لا يمكن العثور على المحاكي

فتح ملف
code ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

استبدال version.indexOf ('iOS')! == 0
إلى! الإصدار. يتضمن ("iOS")

كانت هذه المشكلة تحدث لي على مدار الأشهر الأربعة الماضية وعبر إصدارات الخادم من RN. عادة بعد تحديث من نوع ما. إنه يضر بإنتاجيتي في كل مرة.

مرحبًا جيم ، هل تحققت من عدم وجود مشروع RN ضمن مشروع RN (ملف
بالنسبة للنظام)؟ إذا كان الأمر كذلك ، فحاول إنشاء مشروع واحد لكل مجلد. هذا هو ما
حدث لي وبمجرد إزالة المشروع الثاني إلى مجلد مستقل
(باستخدام RN init). أتمنى أنها تساعدك :)

يوم السبت ، 21 سبتمبر 2019 الساعة 18:28 كتب Jim Hall [email protected] :

ظلت هذه المشكلة تحدث لي على مدار الأشهر الأربعة الماضية
وعلى إصدارات الخادم من RN. عادة بعد تحديث من نوع ما. ذلك
يضر إنتاجيتي في كل مرة.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/facebook/react-native/issues/23282؟email_source=notifications&email_token=ADA33H7VQA5DPUSQO6ILB6DQKY4TLA5CNFSM4GUBJ5D2YY3PNVWWK3TUL52HS4DFVREXG43VMV
أو كتم الخيط
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 flag يعمل.

يبدو أن الإصدار الجديد من xCode لا يحتوي على محاكي iPhone X مضافًا افتراضيًا. يمكنك أيضًا حل المشكلة في الوقت الحالي عن طريق إضافة المحاكي مرة أخرى في xCode. في النهاية ، من المحتمل أن يتم تحديث CLI لاستخدام 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 / ...؟

لا أستطيع أن أجد طريقك (رونيوس): ج

RN 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

تضمين التغريدة

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

maxkomarychev أنا أستخدم @react-native-community/[email protected] وأواجه هذه المشكلة.

galkahana شكرا. هذا مشغول. لكن تعديل node_modules اختراقات مميتة يجب تجنبها. يجب رفع العلاقات العامة لذلك

  1. هل يمكنك التحقق من محاكي iOS المثبت على جهازك؟
  2. يمكنك دائمًا تمرير المحاكي الذي تريد استهدافه عبر react-native run-ios —device=“XXXXXX’

فقط قم بتثبيت جهاز iphone X في xcode

نفس الخطأ بعد تحديث Xcode الأخير الذي أضاف محاكيات هاتف جديدة وأزال بعض الأجهزة القديمة:

  1. إطلاق المحاكي
  2. من القوائم: الأجهزة> الجهاز> إدارة الأجهزة
  3. اختر علامة التبويب / الزر "Simulators" ، ثم انقر فوق "+" في أسفل اليسار وأضف أي جهاز يشكو منه خطأ التشغيل (خذ الإعدادات الافتراضية - على سبيل المثال ، لا تملأ حقل الاسم).

أمل أن هذا يساعد شخصاما...

إذا كنت لا تزال تواجه الخطأ بعد اتباع خطوات dmurchie أعلاه ، فقد تحتاج أيضًا إلى تحديث @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 حفظ وقتي. تكس كثيرا!
RN 0.58.3
Xcode 11
وجود هذه المشكلة.
إصلاح هذه المشكلة باتباع الخطوة أدناه:

  1. من ملف فتح المشروع:
    code ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
  2. يحل محل
    version.indexOf ('iOS')! == 0
    إلى
    ! الإصدار. يتضمن ("iOS")

يحل محل
simulator.availability! == '(متوفر)'
إلى
simulator.availability! == '(متاح)' &&
simulator.isAvailable! == 'نعم' &&
simulator.isAvailable! == صحيح

  1. قم بتشغيل react-native run-ios
    بشكل افتراضي ، سيتم تشغيل رد فعل أصلي جهاز محاكاة 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. إنشاء مجلد مشروع تفاعل أصلي (الأمر: رد فعل أصلي init اسم المشروع)
  2. افتح ملف projectName / ios / projectName.xcodeproj في Xcode 11
  3. اختر الجهاز الذي تريد استخدامه (لم يعد iPhone X مدرجًا في القائمة بعد إطلاق iPhone Pro ، لذلك تحتاج إلى النقر فوق زر علامة الجمع والإضافة إلى قائمة الأجهزة الحالية)
  4. عندما يكون جهازك الجديد في القائمة ، يمكنك إغلاق Xcode 11 ومحاولة تشغيل المحاكي من Terminal (رد فعل أصلي تشغيل iOS)

إذا كنت بحاجة إلى أي لقطات شاشة عن كيفية القيام بذلك ، فأخبرني بذلك.

بالمناسبة هذا تعليقي الأول في جيثب لذا تهانينا :)

شكرا لك.

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) انتقل إلى علامة التبويب Simulators واضغط على + أيقونة في أسفل اليسار وأضف iPhone X أو أي جهاز مفقود تريده.

يرجى التكرم بتجربة هذا الحل. قد تعمل من أجلك.

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

لقد وجدت هذا أبسط ،

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

لا يبدو أن هذا يمثل مشكلة بالنسبة لي بعد الآن. ربما بعض التحديث في هذه الأثناء إصلاحه؟

تم إصلاح اقتراح danielcampo لترقية CLI بالنسبة لي.

اضطررت إلى إضافة هذا إلى الحزمة الخاصة بي. 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 التقييمات