Ответ 1
Попробовать ниже процесс
Меню Xcode → Продукт → Изменить схему...
Переменные среды → Добавить → Имя: "OS_ACTIVITY_MODE", Значение: отключить
Запустите приложение снова
Я создал новый проект реагирования, и когда я запускаю его на 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);
Попробовать ниже процесс
Меню Xcode → Продукт → Изменить схему...
Переменные среды → Добавить → Имя: "OS_ACTIVITY_MODE", Значение: отключить
Запустите приложение снова
Я разобрался с решением:
Отключить Verbose для OS Activity Mode
Run
слева, а затем выберите вкладку " Arguments
" справа.Environment Variables
добавьте имя OS_ACTIVITY_MODE
и значение как disable
.Или смотрите картинку ниже.
Примечание: кредит за изображение переходит к Рамкришна Шарма
Эта ошибка, скорее всего, связана с websocket, встроенным в native-native для подключения к response-devtools. Если вы не используете response-devtools во время отладки, вы получите эту ошибку, а также набросите кучу сообщений через мост, жалуясь на невозможность открыть веб-сайт (вы увидите только эти ошибки, если используете что-то вроде rn-snoopy).
Ошибка будет прекращена, как только вы установите и откройте action-devtools. Инструкции см. В следующих инструкциях: https://github.com/facebook/react-devtools/blob/master/packages/react-devtools/README.md
Чтобы отключить потоки 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, так как оно не скрывает и не предотвращает какие-либо другие средства отладки.
В моем случае это произошло из-за использования брандмауэра (Little Snitch), который никогда не запрашивает доступ при запуске из приложения, отвечающего за реакцию. Шаги, которые работают для меня:
react-native log-ios
Это должно помочь.
У меня была та же проблема, и запуск моего приложения был значительно отложен из-за этой проблемы. Фактическое исправление для меня подробно описано здесь, но я перепишу его в случае разрыва ссылки:
Product
на верхней панелиScheme
, прокрутите вниз, чтобы Edit Scheme
Run
на левой панели, Info
на верхней вкладкеBuild Configuration
с Debug
на Release
Теперь приложение не только больше не содержит ошибок, но и запускается намного быстрее. Другие "исправления" только скрывают ошибку.
Вышеуказанные решения не работали с тестированием на реальных устройствах ios, поэтому я делюсь своим решением. Это очень странно, и я не знаю, зачем мне это делать, но когда я включил debug j remote
, он начал работать.