React-native: "__nw_connection_get_connected_socket_block_invoke الاتصال ليس له معالج متصل" في السجلات

تم إنشاؤها على ٢١ سبتمبر ٢٠١٦  ·  132تعليقات  ·  مصدر: facebook/react-native

الحل

_ تحرير بواسطة hramos ،

تم تقديم عدة حلول في هذا الموضوع:

OS_ACTIVITY_MODE

HADB المقترح :

  1. افتح Xcode.
  2. افتح قائمة المنتج.
  3. حدد تحرير النظام ...
  4. يضاف ما يلي ضمن متغيرات البيئة:
    الاسم: OS_ACTIVITY_MODE
    القيمة: disable
  5. قم بتشغيل التطبيق الخاص بك مرة أخرى

باستخدام react-devtools

بدلاً من ذلك ، تأكد من تثبيت react-devtools على نظامك.

الدقة

هذه مشكلة معروفة في iOS Simulator. ستبقى القضية مفتوحة لزيادة الرؤية. لدينا تعليقات محدودة على هذا الموضوع للمساهمين الأساسيين. نرحب بطلبات السحب مع الإصلاحات المقترحة.

البند الاصلي

ENV

RN 0.32
iOS 10 و iPhone 6 Plus

مشكلة

تستمر وحدة التحكم في Xcode في طباعة "__nw_connection_get_connected_socket_block_invoke 6 Connection لا يوجد بها معالج متصل".

شاشة

image

Bug Help Wanted Low-Pri iOS

التعليق الأكثر فائدة

اهلا ياجماعة! هذا يعمل بالنسبة لي ( على جهاز محاكاة ):

  1. قائمة Xcode -> المنتج -> تحرير المخطط ...
  2. متغيرات البيئة -> إضافة -> الاسم: "OS_ACTIVITY_MODE" ، القيمة: "تعطيل"
  3. قم بتشغيل التطبيق الخاص بك مرة أخرى ، تم! 😄

ال 132 كومينتر

+1

+1 لا يمكن جلب () بيانات json عن بعد على ios10 w / RN 0.33

+1 ios 10.0.1 RN 0.33

+1

+1

+1

+1

يحدث أيضًا مع iOS 10.0.1 و RN 0.30

تحرير: لقد اتبعت التوصيات هنا ولم أعد أتلقى الرسائل

لا تزال مشكلة مع:
RN 0.34
XCode 8.0
محاكي iOS 10.0

ومع ذلك ، فهو يعمل مع محاكي iOS 9.2.

marcpechaitis لا يمكنني الوصول إلى ملف المكتبة الخاص بـ RCTWebSocket ، فكيف وجدته؟ لا تظهر RTCWebSocket في أهدافي.

@ DrBeak1

screen shot 2016-09-23 at 1 24 20 pm

شكرا للرد marcpechaitis . آه. حسنًا - أعتقد أن المشكلة هي أن التفاعل الأصلي مدمج في مشروعي ، والذي كان في الأصل مشروع obj-c أصلي فقط. تم دمج React بعد ذلك (باستخدام التعليمات هنا ). لذلك لا يحتوي مشروعي على مجلد مكتبات يحتوي على كل ملف من ملفات xcodeproj الفردية. الملفات موجودة في المشروع ، ولكن ليست ضمن الهدف:
screen shot 2016-09-23 at 1 08 19 pm

+1

تمكنت من تعقب RCTWebSocket.xcodeproj وفتحه وتغيير إشارات التحذير ولكن سجل __nw_connection_get_connected_socket_block_invoke المزعج لا يزال قائمًا. الطريقة التي ذكرها marcpechaitis (المرجع من هنا ) لإصلاح ذلك لا تعمل مع التطبيقات الموجودة مسبقًا والتي تضمنت تفاعلات أصلية (مقابل التطبيقات التي بدأت

تحرير: هذه مشكلة فقط عند البناء مقابل main.jsbundle ... إذا بنيت ضد المضيف المحلي (تصحيح) ، فستختفي هذه السجلات. أظن أنه نظرًا لأنني أقوم بالبناء في وضع التصحيح ، يفترض RN أنني أريد الاتصال بخادم المضيف المحلي تصحيح الأخطاء ؛ وهو في هذه الحالة غير صحيح. تم الانتهاء من تطوير RN الخاص بي ، ويتم تشغيل هذا الجزء من التطبيق باستخدام ملف main.jsbundle الذي أنشأته.

تم إصلاح خطأ البناء الذي ذكره marcpechaitis في RN 0.33
هذا الخطأ هو خطأ وقت التشغيل. ومن المثير للاهتمام ، أنه يعمل معي في محاكي ios 10 ولكن ليس على الجهاز الفعلي.

matthiasdilger عفوًا ، أعتقد أن marcpechaitis كان يشير إلى OP.
screen shot 2016-09-23 at 5 01 17 pm

اهلا ياجماعة! هذا يعمل بالنسبة لي ( على جهاز محاكاة ):

  1. قائمة Xcode -> المنتج -> تحرير المخطط ...
  2. متغيرات البيئة -> إضافة -> الاسم: "OS_ACTIVITY_MODE" ، القيمة: "تعطيل"
  3. قم بتشغيل التطبيق الخاص بك مرة أخرى ، تم! 😄

HADB لا يزال يفشل على الجهاز بالنسبة لي

حصلت على العمل على الجهاز والمحاكاة الآن من خلال إعادة تعيين جميع شهادات التوقيع والاستحقاقات في المشروع.

Xcode 8.0 و ios10 و iphone 5s

أدناه إعدادات المترجم الهدف RCTWebSocket تعمل بالنسبة لي.
rctwebsocket xcodeproj

لا يعمل أي من هذه الحلول بالنسبة لي على الإطلاق. لقد أضفت الاستثناءات في info.plist ولا يمكنني الاتصال بخادم الحزمة الخاص بي من هاتفي الفعلي. لا أريد إيقاف أخطاء مثل HADB المذكور في OS_ACTIVITY_MODE أيضًا ، فهذا خطأ مشروع.

أي إصلاح لهذه المشكلة؟

+1

RN 0.34.0
iOS 10.0.1
آيفون 5 أس

في محاكي iOS 10 ، أتلقى أيضًا عددًا كبيرًا من رسائل السجل ذات الصلة بـ __nw .

+1

RN 0.35.0-rc.0
iOS 10.1
ايفون 7 بلس

+1

يبدو أن هذه مشكلة iOS 10 ، وليست مشكلة React Native.

https://twitter.com/xenadu02/status/776669668404629504

استخدام OS_ACTIVITY_MODE=disable ( كما يقترح HADB ) هو الحل الوحيد الحالي.

aleclarson لقد وافقت على جزء السجل ولكن رد الفعل الأصلي لا يزال يفشل في جلب ملف الحزمة على IOS 10

@ frnk94 هل تتحدث عن .jsbundle ؟ يقوم عامل التعبئة بخدمة حزمة التطوير الخاصة بي على ما يرام.

ربما تستخدم AppDelegate.m إذا لم يكن يحتوي على هذا:

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];

alanchenup أعتقد أنها مشكلة في AppDelegate.m الخاص بي لعدم الاتصال بجهازي الفعلي ، شكرًا على الرد سأصلح الرمز الخاص بي! :). تعمل بشكل رائع في المحاكاة

لقد تم حلها بواسطة أوامر قائمة xcode:
المنتج -> نظيف
و (اضغط باستمرار على مفتاح الخيار)
المنتج -> "مجلد البناء النظيف"

+1

RN 0.34.0
iOS 10.0.1
آيفون 5 أس

تعمل في محاكي iOS 10 ولكنها لا تعمل في جهاز iphone 5S الحقيقي

@ pietgk لا حظ مثل هذا الحل بالنسبة لي.

OS_ACTIVITY_MODE=disable يعمل ولكنه أكثر من خيار نووي نظرًا لأنه يخفي _جميع بيانات NSLog الخاصة بك عند التشغيل على الجهاز. ربما يكون من الأفضل التعايش مع تلوث السجل في الوقت الحالي عند التشغيل على الجهاز.

aleclarson @ frnk94 في الواقع ، أعتقد أن الخطأ الحقيقي الذي حصلنا عليه هو:
Sending websocketFailed with no listeners registered.

لا يمكنني إعادة تحميل js من الخادم أيضًا ، على الجهاز الفعلي الذي هو.

+1

+1

marcpechaitis شكرا لتقاسم مقالي!

+1

أحصل على هذا عندما يكون لدي كل من التصحيح عن بعد وتصحيح أخطاء وحدة التحكم (عبر react-native log-ios ). يؤدي تعطيل التصحيح عن بُعد إلى حل المشكلة.

@ warrenronsiek كيفية تعطيل تصحيح الأخطاء عن بعد؟

JansenLi إذا كنت لا تعرف ما هو ، فمن المحتمل أن هذا لا يسبب المشكلة. في جهاز المحاكاة الخاص بك ، اضغط على command + D وستظهر قائمة حيث يمكنك تمكين أو تعطيل "Debug JS عن بعد".

+1

+1

حصلت على هذا الخطأ عندما لم يكن هاتفي متصلاً بشبكة Wifi .. 🙈

لقد نجح الحل من HADB أعلاه بالنسبة لي ، لكنه يفتقد بعض الخطوات في XCode8 ، والتي تمت إضافتها هنا للتوضيح:

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

+1

ليس مفيدًا ، في محاولة لمعرفة ما يحدث

لا تزال موجودة في

RN 0.40.0
iOS 10.1
iPhone 6+

(تثبيت نظيف react-native init )

تعطيل عمل السجلات ، أو يمكنني فقط تصفيتها وتجاهلها ، ولكن هل يعرف أي شخص ماذا / إذا تم كسر شيء ما بالفعل من هذا؟

+1

+1

+1

+1
iOS 10.2
RN 0.35

+1
iOS 10.2
رينك 0.40.00

تظهر رسالة السجل "__nw_connection_get_connected_socket_block_invoke" مرة واحدة في الثانية في مشروع "رد فعل-أصلي-موجه-تدفق" أقوم بتقييمه. يبدو أن الرسالة واردة من مكتبة مجمعة لأن البحث البسيط في النص لم يكشف عن أي شيء من node_modules وما إلى ذلك.

يرجى إلقاء نظرة على https://github.com/facebook/react-native/issues/10027#issuecomment -261608678 أو http://stackoverflow.com/a/39461256/158525
يعرض Xcode 8 مع iOS 10 المزيد من بيانات تصحيح الأخطاء ذات المستوى المنخفض.

+1 RN0.34 و RN0.32

لا تزال تواجه نفس المشكلة مع RN 0.40 و XCode 8.2.1

+1

+1

+1
iOS 10.2
RN 0.35

بالنسبة لي ، اختفت هذه المشكلة بعد أن وصلت إلى 0.40 رن

+1
Xcode 8.2.1
آكانيوز: 0.40

لدي نفس المشروع على جهازي Mac ، وتوقفت عن العمل على واحد حيث كان علي إعادة تثبيت العقدة / npm (وبالتالي جميع التبعيات العالمية). لا يزال يعمل بشكل جيد على الآخر (ومع ذلك ، لا يمكن تشغيله على iPhone حقيقي). لذلك يبدو لي أنه شيء لا علاقة له بـ Xcode / iOS.

تحديث: بعد تنظيف node_modules و npm i ، تعمل بشكل جيد ، تعود الحياة إلى طبيعتها :)

حسنًا ، نوعًا ما :) لا يزال يحصل على هذه كل ثانية ، يبدو أن التطبيق يعمل على الرغم من ذلك.
__nw_connection_get_connected_socket_block_invoke 60 الاتصال ليس له معالج متصل

وذهب الآن. غير متوقع وغير مفسر كما جاء.

ربما لا علاقة لها ، ولكن تم حل هذه المشكلة بالنسبة لي بمجرد إيقاف تشغيل وضع الوصول الإرشادي على iPhone 6. يبدو بعيد المنال ، ولكن لا يزال ...

+1
لم تساعد أي حلول حتى الآن

تحرير المخطط -> تشغيل -> الحجج - بيئة جديدة. فار. ساعدني OS_ACTIVITY_MODE مع disable

يمكنك إسكات الخطأ باستخدام OS_ACTIVITY_MODE ، هذا مجرد تسجيل زائف من مقبس الويب الذي نفتحه لـ React Devtools.

مرحبًاjavache
أود أن أختلف مع وجهة نظرك.
في الواقع ، يدرك الكثير منا أن تعطيل تسجيل نظام التشغيل سيمنع ذلك من الظهور. ولكن هذا يمنعنا أيضًا من إجراء تصحيح عادي لتطبيقاتنا ... مرة أخرى في الأسبوع الماضي واجه فريقنا مشكلة واستغرق الأمر منا إلى الأبد حتى نتذكر إعادة تنشيط سجلات نظام التشغيل للقبض على الخطأ وفرز مشكلتنا ...

نجح حل

هذه ليست مشكلة.

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

أتلقى هذا الخطأ / التحذير عند استخدام الجلب إلى واجهة برمجة التطبيقات الخاصة بي على الشبكة ، يتم تحميل الحزمة بشكل صحيح (ios10.3 / RN 0.43-rc4). يتلقى الخادم الطلب ويرسل الاستجابة لكن يلا فن لا تتلقى الرد أبدًا.
لذا فإن مشكلتي الحقيقية هنا هي عدم تلقي الرد وليس التحذيرات.

يا رفاق ، يرجى إعادة فتح هذه المشكلة. شكر.

يرجى النظر فيه.

XCode 8.2.1
آر إن .43
iOS 10.3
نفس الشيء هنا. لا يعد تعطيل وحدة التحكم لإخفاء المشكلة خيارًا بالنسبة لي.

لا ينبغي أن يكون تعطيل وحدة التحكم لإخفاء المشكلة خيارًا لأي شخص. كما يمنعك إغلاق عينيك من رؤية التحذيرات.

يعني تعطيل الإخراج أنه لا يمكنني تصحيح أي شيء آخر. يجب إعادة فتح هذا !!!

يرجى إعادة فتح المشكلة.
لا يبدو كنس الخطأ تحت السجادة حلاً على الإطلاق.

التعليق على 1+ ليس مفيدًا هنا ، لذا يرجى التوقف عن فعل ذلك. وفقًا لـ https://twitter.com/xenadu02/status/776669668404629504 ، فهذه مشكلة في المحاكاة ، يجب حلها في تحديث مستقبلي.

تعليق عادلjavache.

يقال إنني أرى هذا عند التشغيل على الجهاز في وضع التصحيح والإصدار. ليس هذا هو نوع المشكلة التي تجعل المرء يفقد النوم ليلاً ، ولكن يمكن اعتباره تلوث ضوضاء ؛)

لذا ، إذا أدركت أنها مشكلة يجب إصلاحها في تحديث مستقبلي ، فلماذا لا تبقي هذه المشكلة مفتوحة لتعكس موقفك من هذا؟

ليس حلًا بديلًا لـ XCode ، ولكن هذا خفف من الألم بالنسبة لي عند استخدام الجهاز.

react-native log-ios | grep -v __nw_connection_get_connected_socket_block_invoke

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

  1. يمكن استنساخه على أجهزة حقيقية في وضع التطوير.
  2. أيضًا تسجيل الرسائل من libnetwork.dylib نفسه هو بالتأكيد فشل Apple ، يجب أن أقول إن البريد العشوائي غير المنضبط في وحدة التحكم هو سلوك RN شخصيًا. إذا لم أقم بأشياء غبية ، فلن أرى أخطاء وحدة التحكم كل ثانيتين.

ملاحظة لمطوري RN:
مصدر المشكلة ، هو منطق إعادة الاتصال في RCTWebSocketObserver (على الأقل في RN 0.42.3) أو في [RCTDevMenu packagerURL] . الأسلوب reconnect spam OS مع عمليات إعادة المحاولة الدورية. كان الأمر الأكثر روعة بالنسبة لي هو محاولة الاتصال بـ " http: //localhost.8081/message " من جهاز حقيقي.

javache فقط

وفقًا لـ https://twitter.com/xenadu02/status/776669668404629504 ، فهذه مشكلة في المحاكاة ، يجب حلها في تحديث مستقبلي.

نشاهد هذا أيضًا على جهاز حقيقي يعمل بنظام 10.3.1 (14E304) مع RN 0.44.0.

__EDIT: __ عفوًا ، رأيت للتو @ vovkasm أبلغك بالفعل ، آسف! كنت أقرأ من الأعلى لكن كل "+1" وصلت إلي وتوقفت عن القراءة.

javache يعمل على iPhone 5 مع iOS 10.2 ، الجهاز المادي

هل قال أحدهم أن الكتابة 👍 تعمل بشكل جيد؟ :وجه القزم:

هذا يحدث على جهاز حقيقي. يمكنني تعطيل الرسائل ، لكنها تبدو وكأنها شيء يتطلب الإصلاح / الشرح.

يقوم اقتراح
react-native log-ios | grep -v nw_connection_get_connected_socket_block_invoke

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

fgaleano الخاص بك ليس الوحيد. لدي فكرة ولكن ليس لدي وقت لتنفيذها حاليًا.
أعتقد أن RN يحتاج إلى تنفيذ نوع من علامة التكوين لتمكين / تعطيل الاتصال بالجهاز المضيف اختياريًا. من المحتمل أن تكون هذه العلامة هي مفتاح وقت التشغيل في قائمة المطورين ... لكن لست متأكدًا.

أستخدم حاليًا العديد من الحلول لتصفية الرسائل غير المرغوب فيها من وحدة التحكم (grep أو ما يعادلها في حالة تسجيل الدخول إلى المحطة الطرفية). لا أوصي بتعطيل السجلات مع OS_ACTIVITY_MODE ، لأنها تخفي رسائل مهمة أخرى: - /

فهمت أن نشر 1+ ليس مفيدًا. كيف يكون من المفيد إغلاق قضية مفتوحة؟ يبدو أن Facebook لديه بعض سياسات kafkaesque الغريبة بشأن الأخطاء

vovkasm كيف تقوم بتصفية الرسائل في xCode؟

andreyslyusar بأي حال من الأحوال ، لا يحتوي Xcode على أي عوامل تصفية في وحدة التحكم :-( ، توجد أيضًا بعض المرشحات المتقدمة في تطبيق Console على Sierra.

لكن grep لا يزال أقوى طريقة لإجراء التصفية لي ، لذا أستخدم iOS Console ، فهو يحتوي على تطبيق سطر أوامر داخل الحزمة.
لذلك يمكنني أن أفعل /Applications/iOS\ Console.app/Contents/Resources/iosconsole | egrep anything من المحطة.

فقط بعض الأفكار حول هذا. بالتأكيد ، إعداد OS_ACTIVITY_MODE للتعطيل ، يمنع الأخطاء التي تم طرحها محليًا من أن يتم طرحها. ومع ذلك ، إذا كنت في مرحلة الاختبار-التصحيح ، فإن رؤية العدد المستمر من رسائل nw_connection_get_connected_socket_block_invoke يمكن أن تعيق رؤية ما نريد بالفعل رؤيته في وحدة التحكم (فحص المخرجات ، حالة التطبيق ، إلخ). طالما أنك تضع في اعتبارك أن هذا الإصلاح مؤقت ويمكن أن يكون مفيدًا للغاية. تشاو!

لا يزال يحدث مع RN 0.44.0 و iOS 10 و iPhone 5S.

استمر في رؤية "__nw_connection_get_connected_socket_block_invoke" كل ثانية مزعجة للغاية ، لذا فإن الإصلاح المؤقت OS_ACTIVITY_MODE مفيد للغاية.

رؤية هذا أيضا. لقد كان لفترة من الوقت. لقد تجاهلت ذلك لفترة من الوقت ، لكنها وصلت إلي :).

RN 0.44 ، Xcode 8.3.3

لتوسيع الشرح من javache ، يكون هذا الخطأ من مقبس الويب المدمج في رد الفعل الأصلي للاتصال بأدوات رد الفعل. إذا كنت لا تقوم بتشغيل أدوات devtools الخاصة بالتفاعل أثناء تصحيح الأخطاء ، فستحصل على هذا الخطأ ، كما أنه يضخ مجموعة من الرسائل عبر الجسر تشكو من عدم القدرة على فتح مقبس الويب (سترى هذه الأخطاء فقط إذا كنت تستخدم شيء مثل rn-snoopy ).

سيتوقف الخطأ بمجرد التثبيت وفتح أدوات devtools الخاصة بالتفاعل. راجع هذه التعليمات لمعرفة كيفية القيام بذلك:
https://github.com/facebook/react-devtools/blob/master/packages/react-devtools/README.md

emusgrave ،

  1. لم يقم javache ولا أي شخص من facebook بأي شيء لشرح المشكلة في هذا الموضوع :-(
  2. رد فعل devtools جيد عندما يعمل :-) ولكن في معظم الأوقات ستواجه أخطاء (على سبيل المثال. مصحح الأخطاء البسيط لا يعمل في RN 0.45.1 ، لماذا يعمل devtools؟)
  3. هل حصلت على رد فعل-devtools تعمل عند تشغيل التطبيق على جهاز iOS حقيقي؟

تضمين التغريدة
فيما يتعلق برقم 3 الخاص بك ، تمكنت من الحصول على أدوات devtools للتفاعل من جهاز iOS حقيقي ، لكن الرسالة في وحدة التحكم xcode لا تزال تظهر. أعتقد أن هذا بسبب طريقة حلها ، على النحو التالي:

في الجزء العلوي من نقطة الدخول الخاصة بي في JS ، أضفت الخطاف التالي إلى أدوات devtools التفاعلية:

   require('react-devtools-core').connectToDevTools({
     host: '192.168.2.115',
     port: '8097',
   });

(من الواضح استبدال IP بعنوان IP الخاص بمحطة العمل الخاصة بك).

يؤدي ذلك إلى إنشاء اتصال بأدوات devtools الخاصة بالتفاعل ، ولكن يبدو أن الكود الداخلي للتفاعل الأصلي لا يزال يحاول الاتصال الخاص به ، وبالتالي تستمر الرسالة في الظهور في وحدة تحكم xcode.

لم أتوصل بعد إلى كيفية استخدام الحل المشروط require('react-devtools-core') فقط عند استخدام جهاز مادي دون التعليق يدويًا على الرمز.

سأوافق على أن هذه كانت مشكلة أدوات تطوير رد الفعل بالنسبة لي. بمجرد تثبيتها ، توقفت جميع الرسائل على الفور. فيما يلي تعليمات التثبيت: https://github.com/facebook/react-devtools/blob/master/packages/react-devtools/README.md

إنها مشكلة indead-devtools التفاعلية ، بمجرد بدء تشغيلها ، تتوقف السجلات المزعجة.

لذلك كان رد الفعل- devtools طوال الوقت ؟؟ يجب أن يضعوا ذلك بأحرف سوداء ضخمة!

fgaleano SOLUTION = تثبيت أدوات التفاعل
؛)

https://github.com/facebook/react-native/commit/878b7e42fae990df745af2db6ac50cbac8a8ce1c يزيل رسالة السجل هذه قيد التطوير عن طريق إعادة توجيه وظيفة سجل Apple الداخلية.

إنه حل بديل معقول. سيكون من الجيد جدًا أيضًا أن يكون لديك أدوات اختيارية وظيفية للتفاعل-devtools.

جعله اختياريًا سيجعل التجربة أسوأ بشكل عام. أنا أؤمن بشدة بكون أدوات التصحيح أساسية لما يجعل التطوير باستخدام التفاعل الأصلي رائعًا.

بعد بعض التفكير ، هذه فكرة سيئة على الإطلاق.

  1. انها بالفعل تضيع المزيد من العمل من الإصلاح المناسب
  2. يستخدم أسلوبًا مشكوكًا فيه ويصعب تصحيحه لإخفاء التحذيرات الحقيقية ("التحذير الحقيقي" هنا ليس nw_connection ... سطر في السجلات نفسها ، ولكن الأعداد اللانهائية لهذه السطور)
  3. إنها تجلب إلى أداة الخطر المشروع مثل التبعية
  4. تخفي كل هذه التحذيرات (ليس فقط من اتصال رد فعل-devtools المصمم بشكل سيئ ، ولكنه مفيد إذا ارتكب مطور التطبيق نفس الخطأ)
  5. تخفي دورة إعادة الاتصال اللانهائية على جهاز حقيقي

أعتقد اعتقادًا راسخًا أن تجربة المطور مع التفاعل الأصلي ستكون أفضل مع كود وسلوك أكثر شفافية ووضوحًا ، وليس مع المزيد والمزيد من طبقات الحلول.

إنه خطأ أن التحذير يظهر حتى في إصدارات iOS الأحدث. لذلك هذا لا يخفي في الواقع أي شيء مفيد. لا تحدث إعادة توصيل المقبس إلا عند إنشاءات التصحيح وليس عند إنشاءات الإصدار. يتم تجميع كل ذلك اختياريًا باستخدام علامة RCT_DEV.

إذا تسبب هذا التغيير في أي مشاكل فأنا على أتم استعداد لإزالته ولكنه يخفي حاليًا مشكلة كانت تزعج الكثير من المطورين.

matthiasdilger ** حصلت على العمل على الجهاز والمحاكاة الآن من خلال إعادة تعيين جميع شهادات التوقيع والاستحقاقات في المشروع.

Xcode 8.0 ، ios10 ، iphone 5s ** كيف فعلت ذلك من فضلك ؛ شكرا لك

ما زلت أرى هذا الخطأ اعتبارًا من 0.48.3. تجاهل الأخطاء هو اختراق وليس حلاً!

لقد حصلت على السجلات اللازمة للذهاب بعيدًا عن طريق إعداد أدوات devtools للتفاعل. فيما يلي الخطوات (باستخدام React v0.48):

  1. ثبِّت أدوات تفاعل devtools: npm install -g react-devtools
  2. تشغيل أدوات التفعيل: react-devtools
  3. في مشروعك ، قم بتحرير node_modules / رد فعل أصلي / Libraries / Core / Devtools / setupDevtools.js عن طريق استبدال "localhost" بعنوان IP الخاص بجهاز التطوير.
  4. قم ببناء وتشغيل مشروعك في Xcode.

takameyer شكرا. ملحوظة: مجرد تشغيل أدوات رد الفعل بالنسبة لي ، لا داعي لتعديل setupDevtools.js .

lrettig إنه مطلوب بالفعل عند تصحيح الأخطاء على جهاز حقيقي.

يوجد طلب سحب لجعل كود IOS الأصلي يملأ عنوان IP المحلي (لجهاز تصحيح الأخطاء):
https://github.com/facebook/react-native/issues/14431

يبدو من الغباء أن تطلب تحرير رمز وحدة JS لمنع تلوث السجل هذا. أصبح حل OS_ACTIVITY_MODE عديم الفائدة مع IOS 11 ، لأنه يحظر جميع عبارات NSLog ، وليس فقط سجلات النظام. في حالتنا ، لم يعد هناك سجل - والذي كان لدي صعوبة في ربط هذا الاختراق الذي وضعته من قبل!
كما قال شخص آخر ، الاختراق ليس جيدًا. مطلوب إصلاح مناسب. هذا أكثر من مجرد إزعاج عند محاولة تصحيح أخطاء:

لقد أكدت نفس المشكلة في الصورة التالية:
iOS: 10.3.3 (جهاز حقيقي)
رد الفعل الأصلي: 0.48
Xcode: 9.0
ويعمل التطبيق ببطء شديد. (لم يكن)

ومع ذلك ، عندما تكون في Xcode -> المنتج -> المخطط -> تحرير المخطط -> علامة تبويب المعلومات -> إنشاء التكوين -> اضبط من تصحيح الأخطاء إلى "إصدار"
قم بتشغيل التطبيق مرة أخرى ، واختفت رسالة الخطأ ، ويعمل التطبيق كما هو متوقع.
بالطبع ، هذا ليس حلاً من أي نوع ، لكني أريد فقط مشاركة هذا وربما إعطاء دفعة صغيرة للحل الحقيقي.
ترميز سعيد!

المشكلة نفسها.
آكانيوز: 0.49.3
يعمل بنظام iOS 11
Xcode 9
جهاز حقيقي

المشكلة نفسها

آكانيوز: 0.49.0
iOS 11 و iPhone 5s
Xcode 9

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

لا يزال يحدث لي أيضًا ... لا يمكن تشغيله على الجهاز ، لكن المحاكاة تعمل.

آكانيوز: 0.49.0
iOS 11 و iPhone 7
Xcode: 9.0.1

هذه القضية لا تزال حول. تساءلت عن أوقات بدء التشغيل الطويلة أثناء اختبار الجهاز. لقد عمل تغيير تكوين البناء مثل kawashimaken بالنسبة لي. التطوير وتصحيح الأخطاء أمر مستحيل في الوقت الحالي.

شكرا لك @ تكاميير. الخطوات التي ذكرتها أصلحت المشكلة.

takameyer رائع

takameyer باستخدام react-devtools quiets لسجلات XCode ، لكن لدي مشكلة أعتقد أنها ذات صلة. أستمر في الحصول على مخرجات شبكة لا نهاية لها في React Native Debugger بمكالمة تسمى callbacks_poll والتي تحدث فقط عندما يكون التصحيح عن بُعد نشطًا. أرى نفس الشيء في مصحح أخطاء Chrome. كما أنه يؤدي إلى حدوث تسرب للذاكرة. لكنني لست متأكدًا مما إذا كانت نفس المشكلة. يبدو أنه ظهر مؤخرًا. أنا على RN0.49.5

screen shot 2017-11-24 at 17 11 55

لا تزال هذه مشكلة في React Native 0.50.4 و Xcode 9.1 و iOS 11.1 و macOS High Sierra

TCP Conn 0x1c03627c0 Failed : error 0:61 [61]
[] nw_connection_get_connected_socket 164 Connection has no connected handler
مرارًا وتكرارًا ، تغرق كل السجلات الأخرى ...

أواجه نفس المشكلة على جهاز iPhone 6s و iOS 10. قمت بتجميع مشروع iOS من Xcode وفقًا لتعليمات wiki ويتجمد التطبيق في شاشة البداية. هذا هو السجل الذي أحصل عليه:

2017-12-05 13:20:06.849 [info][tid:main][RCTBatchedBridge.m:75] Initializing <RCTBatchedBridge: 0x1c01ba080> (parent: <RCTBridge: 0x1c00d0450>, executor: RCTJSCExecutor)
2017-12-05 13:20:06.854783-0300 StatusIm[1755:195391] Initializing <RCTBatchedBridge: 0x1c01ba080> (parent: <RCTBridge: 0x1c00d0450>, executor: RCTJSCExecutor)
2017-12-05 13:20:09.213 [info][tid:com.facebook.react.JavaScript] There was an error collecting entropy from the browser:
2017-12-05 13:20:09.213595-0300 StatusIm[1755:195564] There was an error collecting entropy from the browser:
2017-12-05 13:20:09.216 [info][tid:com.facebook.react.JavaScript] { [TypeError: undefined is not an object (evaluating 'sjcl.random')]
  line: 61724,
  column: 28,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:09.215912-0300 StatusIm[1755:195564] { [TypeError: undefined is not an object (evaluating 'sjcl.random')]
  line: 61724,
  column: 28,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:09.305 [info][tid:com.facebook.react.JavaScript] There was an error collecting entropy from the browser:
2017-12-05 13:20:09.305135-0300 StatusIm[1755:195564] There was an error collecting entropy from the browser:
2017-12-05 13:20:09.306 [info][tid:com.facebook.react.JavaScript] { [Error: Requiring module "629", which threw an exception.]
  line: 136,
  column: 15,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:09.305704-0300 StatusIm[1755:195564] { [Error: Requiring module "629", which threw an exception.]
  line: 136,
  column: 15,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:09.526 [info][tid:main][RCTRootView.m:284] Running application StatusIm ({
    initialProps =     {
    };
    rootTag = 1;
})
2017-12-05 13:20:09.526001-0300 StatusIm[1755:195391] Running application StatusIm ({
    initialProps =     {
    };
    rootTag = 1;
})
2017-12-05 13:20:09.530 [info][tid:com.facebook.react.JavaScript] Running application "StatusIm" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
2017-12-05 13:20:09.530103-0300 StatusIm[1755:195564] Running application "StatusIm" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
2017-12-05 13:20:09.587 [info][tid:com.facebook.react.JavaScript] Loading Closure base.
2017-12-05 13:20:09.587179-0300 StatusIm[1755:195564] Loading Closure base.
2017-12-05 13:20:09.588 [info][tid:com.facebook.react.JavaScript] Shimming require
2017-12-05 13:20:09.587855-0300 StatusIm[1755:195564] Shimming require
2017-12-05 13:20:10.377936-0300 StatusIm[1755:195547] [] nw_connection_get_connected_socket 3 Connection has no connected handler
2017-12-05 13:20:10.377975-0300 StatusIm[1755:195547] TCP Conn 0x1c0164a40 Failed : error 0:61 [61]
2017-12-05 13:20:10.709350-0300 StatusIm[1755:195547] TIC TCP Conn Failed [4:0x1c4162340]: 1:61 Err(61)
2017-12-05 13:20:10.709579-0300 StatusIm[1755:195547] Task <6BA6D0FB-6F5F-459F-8D6A-AB299AF9D169>.<1> HTTP load failed (error code: -1004 [1:61])
2017-12-05 13:20:10.710073-0300 StatusIm[1755:195537] Task <6BA6D0FB-6F5F-459F-8D6A-AB299AF9D169>.<1> finished with error - code: -1004
2017-12-05 13:20:10.716 [error][tid:com.facebook.react.JavaScript] { [TypeError: Network request failed]
  line: 6335,
  column: 29,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:10.716440-0300 StatusIm[1755:195564] { [TypeError: Network request failed]
  line: 6335,
  column: 29,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:10.828 [warn][tid:com.facebook.react.JavaScript] Possible Unhandled Promise Rejection (id: 0):
error is not a function. (In 'error()', 'error' is an instance of TypeError)
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:129458:21
tryCallOne<strong i="6">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:3829:14
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:3915:25
callTimer<strong i="7">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2142:17
callImmediatesPass<strong i="8">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2228:36
callImmediates<strong i="9">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2238:48
guard<strong i="10">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1860:7
__callImmediates<strong i="11">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2008:12
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1897:31
guard<strong i="12">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1860:7
callFunctionReturnFlushedQueue<strong i="13">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1895:12
callFunctionReturnFlushedQueue@[native code]
2017-12-05 13:20:10.828779-0300 StatusIm[1755:195564] Possible Unhandled Promise Rejection (id: 0):
error is not a function. (In 'error()', 'error' is an instance of TypeError)
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:129458:21
tryCallOne<strong i="14">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:3829:14
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:3915:25
callTimer<strong i="15">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2142:17
callImmediatesPass<strong i="16">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2228:36
callImmediates<strong i="17">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2238:48
guard<strong i="18">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1860:7
__callImmediates<strong i="19">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2008:12
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1897:31
guard<strong i="20">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1860:7
callFunctionReturnFlushedQueue<strong i="21">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1895:12
callFunctionReturnFlushedQueue@[native code]
2017-12-05 13:20:13.504143-0300 StatusIm[1755:195547] [] nw_connection_get_connected_socket 6 Connection has no connected handler
2017-12-05 13:20:13.504274-0300 StatusIm[1755:195547] TCP Conn 0x1c0167f80 Failed : error 0:61 [61]

2017-12-05 13:20:16.618225-0300 StatusIm[1755:195543] [] nw_connection_get_connected_socket 7 Connection has no connected handler
2017-12-05 13:20:16.618266-0300 StatusIm[1755:195543] TCP Conn 0x1c0167800 Failed : error 0:61 [61]
2017-12-05 13:20:19.735413-0300 StatusIm[1755:195537] [] nw_connection_get_connected_socket 8 Connection has no connected handler
2017-12-05 13:20:19.735505-0300 StatusIm[1755:195537] TCP Conn 0x1c0167d40 Failed : error 0:61 [61]
2017-12-05 13:20:22.848930-0300 StatusIm[1755:195543] [] nw_connection_get_connected_socket 9 Connection has no connected handler
2017-12-05 13:20:22.848997-0300 StatusIm[1755:195543] TCP Conn 0x1c01663c0 Failed : error 0:61 [61]

وتطول وتطول...

يمكن لأي شخص أن يبلغ إذا تم إصلاح RN 0.51.0 هذا؟ أشك في ذلك ولكني لم أتمكن من اختباره بعد.

للأسف لا يزال موجودًا.

~/Documents/Development/ReactNative/AwesomeProject$ react-native -v
react-native-cli: 2.0.1
react-native: 0.51.0

Xcode:

2017-12-07 09:19:17.996487+0000 AwesomeProject[1887:905415] TCP Conn 0x1c016c600 Failed : error 0:61 [61]
2017-12-07 09:19:20.199010+0000 AwesomeProject[1887:905411] [] nw_connection_get_connected_socket 22 Connection has no connected handler
2017-12-07 09:19:20.199120+0000 AwesomeProject[1887:905411] TCP Conn 0x1c416a140 Failed : error 0:61 [61]
2017-12-07 09:19:22.329654+0000 AwesomeProject[1887:905417] [] nw_connection_get_connected_socket 23 Connection has no connected handler
2017-12-07 09:19:22.329713+0000 AwesomeProject[1887:905417] TCP Conn 0x1c016c600 Failed : error 0:61 [61]
2017-12-07 09:19:24.472388+0000 AwesomeProject[1887:905417] [] nw_connection_get_connected_socket 24 Connection has no connected handler

تعطيل OS_ACTIVITY_MODE ليس طريقة جيدة.

في البداية ، قمت بتشغيل yarn start على جذر React الأصلي. يختفي السجل المجنون في جهاز محاكاة ، لكنه لا يزال يظهر في الجهاز الحقيقي.

بعد عدة ساعات من العمل ، اقرأ كل التعليقات مرارًا وتكرارًا. وجدت أخيرًا أن emilsjolander 878b7e4 يعمل بشكل مثالي.

أتخلص من هذا السجل المجنون عن طريق التعليق على الكود في الوظيفة - (void)reconnect ، والتي تكون في React/RCTWebSocket/RCTReconnectingWebSockect.m .
السجل المجنون يذهب بعيدا. لكنها مجرد حل بديل. لن ترغب في القيام بذلك في كل مرة.

بالنسبة للآخرين ، أعتقد أن ترقية React-native إلى 0.51.0 قد تحل هذه المشكلة ، ويبدو أن 878b7e4 موجود في هذا الفرع.

لا يزال موجودًا.
"رد فعل": "16.2.0"،
"تفاعل أصلي": "0.52.0"،

x كود:

2018-01-10 15: 54: 15.635865 backgroundexample [3900: 1884257] [] __nw_connection_get_connected_socket_block_invoke 146 الاتصال ليس له معالج متصل
2018-01-10 15: 54: 17.134563 backgroundexample [3900: 1884258] [] __nw_connection_get_connected_socket_block_invoke 147 لا يحتوي الاتصال على معالج متصل
2018-01-10 15: 54: 17.629791 backgroundexample [3900: 1884329] [] __nw_connection_get_connected_socket_block_invoke 148 الاتصال ليس له معالج متصل

أي شخص حصل على حل ؟؟ لا يزال يحدث على جهاز iOS الخاص بي.

أنا فقط نفذت الحل الجزئي لهذا. راجع https://github.com/facebook/react-native/pull/17617
يضيف إعداد تمكين / تعطيل DevTools إلى قائمة المطور داخل التطبيق.

لكن من المؤسف أن هذا لا يكفي. خاصة وأن مقبس ويب آخر تم إنشاؤه في RCTPackagerConnection (funcition socketForLocation ) وكما أرى لا يمكن تعطيله من AppDelegate :-(

ربما يمكنني إضافة عنصر آخر إلى قائمة المطور داخل التطبيق لتمكين / تعطيل الاتصال بالحزمة. ماذا يفكر الناس؟ ربما أكون في عداد المفقودين شيء؟

أفهم هذه المشكلة .....
لن يظهر الخطأ "nw_connection_get_connected_socket" إذا قمت بتحديث الإعداد الخاص بك ( https://github.com/facebook/react-native/issues/10027#issuecomment -261608678).

ولكن ، لا يزال يتعذر عليك الاتصال ، تحقق من اتصال هاتفك الذكي وسطح المكتب على نفس الشبكة ...

هل هناك أي تحرك على هذا الخطأ؟ ما زلت أتلقى الأخطاء التالية ، وأتساءل عما إذا كان لها أي تأثير على الاتصال لإطار العمل المضمن الخاص بي؟

أُنتج على RN: 51، 52 & 53 ، في مشروع جديد ، تم إخراجه على الفور

2018-02-26 10:35:30.461406+0000 AwesomeProject[1116:328205] NSURLConnection finished with error - code -1001
2018-02-26 10:35:30.475292+0000 AwesomeProject[1116:328202] Task <B8745B69-267D-47AB-BCE2-B4DD3C525418>.<0> HTTP load failed (error code: -999 [1:89])
2018-02-26 10:35:30.479 [info][tid:main][RCTCxxBridge.mm:210] Initializing <RCTCxxBridge: 0x1c41c6540> (parent: <RCTBridge: 0x1cc0cdc10>, executor: (null))
2018-02-26 10:35:30.483170+0000 AwesomeProject[1116:328126] Initializing <RCTCxxBridge: 0x1c41c6540> (parent: <RCTBridge: 0x1cc0cdc10>, executor: (null))
2018-02-26 10:35:30.554 [warn][tid:main][RCTBridge.m:120] Class RCTCxxModule was not exported. Did you forget to use RCT_EXPORT_MODULE()?
2018-02-26 10:35:30.554183+0000 AwesomeProject[1116:328126] Class RCTCxxModule was not exported. Did you forget to use RCT_EXPORT_MODULE()?
2018-02-26 10:35:30.578 [warn][tid:main][RCTModuleData.mm:69] Module RCTImageLoader requires main queue setup since it overrides `init` but doesn't implement `requiresMainQueueSetup`. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of.
2018-02-26 10:35:30.577913+0000 AwesomeProject[1116:328126] Module RCTImageLoader requires main queue setup since it overrides `init` but doesn't implement `requiresMainQueueSetup`. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of.
2018-02-26 10:35:30.657 [info][tid:main][RCTRootView.m:302] Running application AwesomeProject ({
    initialProps =     {
    };
    rootTag = 1;
})
2018-02-26 10:35:30.657524+0000 AwesomeProject[1116:328526] [] nw_connection_get_connected_socket 2 Connection has no connected handler
2018-02-26 10:35:30.657537+0000 AwesomeProject[1116:328526] TCP Conn 0x1d0360d80 Failed : error 0:61 [61]
2018-02-26 10:35:30.790 [info][tid:com.facebook.react.JavaScript] Running application "AwesomeProject" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF

لا يزال هذا موجودًا مع RN 0.52.0 و 0.54.0-rc.3.
لاحظت أيضًا أن تطبيق وضع التصحيح يسقط في حلقة حيث يتم إلقاء الكثير من السجلات المتعلقة بـ `` الدعائم المذكرة '' (شيء من هذا القبيل) إلى عرض سجل Xcode ، وارتفاع درجة حرارة الجهاز (iphone 7) ، ثم تعطل التطبيق.

حسنا ، هذا حتى قضية. iOS 11 ، رد فعل 0.54.

لا يبدو أن رمز إعادة الربط يعمل على الجهاز ، ولم يتم استدعاء أي من طرق الاستبدال. يزعجني أيضًا وجود مآخذ ويب تحاول الاتصال بالمضيف المحلي على الرغم من تشغيله على الجهاز.

fetch () لا يزال لا يعمل

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات