React native - соединение не имеет значения ошибки обработчика соединения?

Я создал новый проект реагирования, и когда я запускаю его на iOS из xcode, консоль дает мне следующее:

2017-05-19 23:25:34.119 [info][tid:main][RCTBatchedBridge.m:77] Initializing <RCTBatchedBridge: 0x6100001a6c80> (parent: <RCTBridge: 0x6100000c46e0>, executor: RCTJSCExecutor)
2017-05-19 23:25:51.287 [info][tid:main][RCTRootView.m:295] Running application test ({
    initialProps =     {
    };
    rootTag = 1;
})
2017-05-19 23:25:51.289 [info][tid:com.facebook.react.JavaScript] Running application "test" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
2017-05-19 23:25:51.299771-0400 test[21948:1121429] [] nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler
2017-05-19 23:25:53.335282-0400 test[21948:1121426] [] nw_connection_get_connected_socket_block_invoke 4 Connection has no connected handler
2017-05-19 23:25:55.349190-0400 test[21948:1120112] [] nw_connection_get_connected_socket_block_invoke 5 Connection has no connected handler

Что означают 2017-05-19 23:25:51.299771-0400 test[21948:1121429] [] nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler эти строки и как я могу решить проблему?

Я впервые заметил это, когда попытался использовать fetch в своем приложении и нашел, что он не работает. Я нашел эти сообщения в консоли и позже обнаружил, что эти сообщения происходят со всеми моими приложениями, поэтому я предполагаю, что это проблема с конфигурацией с моей стороны?

Я создал новую тестовую программу для проверки того, что вызвало это, и обнаружил, что это происходит в совершенно новом проекте. Ниже мой код состоит в том, что сгенерирован вывод журнала выше:

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View
} from 'react-native';

export default class test extends Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit index.ios.js
        </Text>
        <Text style={styles.instructions}>
          Press Cmd+R to reload,{'\n'}
          Cmd+D or shake for dev menu
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

AppRegistry.registerComponent('test', () => test);

Ответ 1

Попробовать ниже процесс

Меню Xcode → Продукт → Изменить схему...

Переменные среды → Добавить → Имя: "OS_ACTIVITY_MODE", Значение: отключить

Запустите приложение снова

Ответ 2

Я разобрался с решением:

Отключить Verbose для OS Activity Mode

  1. В меню xcode Проект → Схема → Редактировать схему.
  2. Затем выберите " Run слева, а затем выберите вкладку " Arguments " справа.
  3. В Environment Variables добавьте имя OS_ACTIVITY_MODE и значение как disable.

Или смотрите картинку ниже.

enter image description here

Примечание: кредит за изображение переходит к Рамкришна Шарма

Ответ 3

Эта ошибка, скорее всего, связана с websocket, встроенным в native-native для подключения к response-devtools. Если вы не используете response-devtools во время отладки, вы получите эту ошибку, а также набросите кучу сообщений через мост, жалуясь на невозможность открыть веб-сайт (вы увидите только эти ошибки, если используете что-то вроде rn-snoopy).

Ошибка будет прекращена, как только вы установите и откройте action-devtools. Инструкции см. В следующих инструкциях: https://github.com/facebook/react-devtools/blob/master/packages/react-devtools/README.md

Ответ 4

Чтобы отключить потоки websocket, я сделал следующее:

  • в xcode: Libraries/React.xcodeproj/React/Inspector/RCTInspectorPackagerConnection.m: find - (void)connect { и добавить return; только после этого.

  • в node_modules/реакции-native/Libraries/Core/Devtools/setupDevtools.js: заменить if (__DEV__) на if (false)

это довольно уродливо, но намного лучше, чем решение OS_ACTIVITY, так как оно не скрывает и не предотвращает какие-либо другие средства отладки.

Ответ 5

В моем случае это произошло из-за использования брандмауэра (Little Snitch), который никогда не запрашивает доступ при запуске из приложения, отвечающего за реакцию. Шаги, которые работают для меня:

  • Откройте браузер Safari в симуляторе
  • Посетите google.com или любой домен
  • Убедитесь, что он открывает страницу. Он будет запрашивать доступ и т.д.
  • Перезагрузите приложение в симуляторе
  • Перезапуск журнала react-native log-ios

Это должно помочь.

Ответ 6

У меня была та же проблема, и запуск моего приложения был значительно отложен из-за этой проблемы. Фактическое исправление для меня подробно описано здесь, но я перепишу его в случае разрыва ссылки:

  1. Открыть Xcode
  2. Нажмите Product на верхней панели
  3. Нажмите Scheme, прокрутите вниз, чтобы Edit Scheme
  4. Выберите Run на левой панели, Info на верхней вкладке
  5. Изменить Build Configuration с Debug на Release

Теперь приложение не только больше не содержит ошибок, но и запускается намного быстрее. Другие "исправления" только скрывают ошибку.

Ответ 7

Вышеуказанные решения не работали с тестированием на реальных устройствах ios, поэтому я делюсь своим решением. Это очень странно, и я не знаю, зачем мне это делать, но когда я включил debug j remote, он начал работать.