Ответ 1
Мне как-то удалось заставить его работать без создания нового проекта, удалив приложение проекта в симуляторе на первом экране iOS. Теперь он отлично работает.
Я запускаю команду react-native run-ios
и покажу свое приложение в течение 3 секунд, прежде чем показывать это. Я работаю на симуляторе ios
ExceptionsManager.js: 76 Подключение к http://localhost:8081/debugger-proxy?role=client. Ты запуск node прокси? Если вы работаете на устройстве, проверьте, имеют правильный IP-адрес в
RCTWebSocketExecutor.m
.
Мне как-то удалось заставить его работать без создания нового проекта, удалив приложение проекта в симуляторе на первом экране iOS. Теперь он отлично работает.
Я часто получаю эту проблему. Обычно, когда я работаю с удаленным отладчиком, и я сохраняю код-код ошибки.
Попробуйте перезагрузить... Если это не исправить: crlt + cmd + z. затем прекратите удаленную отладку, а затем обновите. Это исправит, но теперь вы потеряли свой отладчик. Так что идите снова... crlt + cmd + z. на этот раз запустите удаленную отладку, а затем снова обновите. Ваш проект должен быть верным и хорошим.
Это работает для меня, но это очень раздражает и занимает много времени. Я желаю, чтобы кто-то сделал лучший способ.
Для удаленной отладки оба ваших устройства должны быть подключены к одной и той же сети Wi-Fi.
Это, казалось бы, происходило со мной, потому что я перезапустил агент, отвечающий за реакцию, в то время как у меня все еще был отладчик Chrome, который был прикреплен к предыдущему экземпляру пакета/эмулятора.
Убивание этой вкладки Chrome отладки и попытка run-ios
снова, казалось, решили ее, без каких-либо перезапусков или другой skulduggery.
Проблема может быть с вашим маршрутизатором. Попробуйте подключиться к Wi-Fi через точку доступа iPhone.
В github Я нашел обходное решение, как настроить DNS для решения этой ошибки на вашем Mac и iPhone:
Для меня это произошло, когда я попытался отладить реальное устройство. Проблема заключалась в том, что мой компьютер и мое реальное устройство не были в одном и том же WiFi.
У меня была эта ошибка, когда я забыл переключиться обратно на использование индексного файла вместо jsbundle после сборки выпуска.
я имел
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
Вместо
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
Перешел на индексный файл и собрал заново и все заработало.
В моем случае я был в другой сети, чем телефон. Никакой SIM-карты не требуется, мне нужно было только убедиться, что я был в одной сети (здесь есть рабочие и гостевые сети). В документации для RN есть некоторые примечания, которые вы можете проверить (в середине вниз есть розовый ящик с проблемой прокси, с которой мы столкнулись):
http://facebook.github.io/react-native/docs/running-on-device.html
Я исправил добавление скрипта на вкладке "Этапы сборки собственного кода и изображений" основной цели. Я просто добавил export DISABLE_XIP=NOTHANKS
Проблема была в том, что реальное устройство пыталось подключиться к моему ip в домене xip.io
Я думаю, что этот сценарий необходим, когда мы собираемся добавить ресурсы пользовательских изображений в проект xCode, но вы можете проверить, что URL-адрес ip неверен на вкладке Навигатор отчетов.
Моя установка react: 16.3.1, react-native-cli: 2.0.1 react-native: 0.55.4 xCode 9.4.1
Здесь оригинальная документация о xip.io (глава по поиску и устранению неисправностей). Https://facebook.github.io/react-native/docs/running-on-device
Здесь есть возможность отключить XIP. https://github.com/facebook/metro/commit/079dcaed990abb6754c03113362e4f537cd32a24
Вот подсказка, которую я нашел, чтобы попробовать это решение https://github.com/facebook/react-native/issues/12786
#if DEBUG
jsCodeLocation = [NSURL URLWithString:@"http://192.168.11.21:8081/index.bundle?platform=ios&dev=true"];
#else
#warning "PRODUCTION DEVICE"
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#endif
Вы можете найти свой IP-адрес по этой ссылке https://kb.wisc.edu/page.php?id=6526
Это происходило и со мной. Я как-то исправил его перезагрузкой... иди цифрой. Я предполагаю, что Metro Bundler не смог запустить из-за того, что порт 8081 уже был взят другим процессом. После перезагрузки я снова запустил react-native run-ios
, и на этот раз симулятор запустился правильно без ошибки.
Помните, что это происходило со мной в совершенно новом проекте.
Я столкнулся с той же проблемой для iOS.
Ниже уловки помогли мне:
OS_ACTIVITY_MODE
с disable
значением.Надеюсь, это кому-нибудь поможет.
Я много пробовал и наконец исправил это, добавив NSAllowsArbitraryLoads
в info.plist.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
Я получил ту же ошибку, хотя это то же самое для сети.
Удалите приложение с вашего устройства и соберите его снова. Буду работать.
Человек, ваше устройство подключиться к другой сети Wi-Fi, не как ПК? Нужно подключить оба устройства к одному Wi-Fi.
Для меня это работает:
-stop удаленная отладка js,
-close страница удаленного отладчика js в браузере,
-run React Native Debugger,
-press ctrl + t и введите React Native pakager port и подтвердите,
-on симулятор нажмите Ctrl + M и активная удаленная отладка js,
и хорошо идти!
Если появляется сообщение "Другой отладчик уже подключен": это может звучать глупо, но не забудьте проверить наличие фоновых окон Chrome, которые могут быть "другим отладчиком".
Когда вы нажимаете "Начать отладку JS", React Native открывает новое окно Chrome с отладчиком. Если у вас в MacOS открыто несколько окон Chrome (не вкладок), вы не увидите визуальной индикации того, что существует более одного окна, поэтому вы можете посмотреть на переднем плане окно "Другой отладчик уже подключен" и не Не понимаю, что другой отладчик - это окно Chrome на заднем плане.