netinfo - react native run ios-- simulator
Reaccionar nativo: ¿la conexión no tiene un error de controlador de conexión? (6)
Creé un nuevo proyecto de reacción y cuando lo ejecuto en iOS desde xcode, la consola me da esto:
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
¿Qué 2017-05-19 23:25:51.299771-0400 test[21948:1121429] [] nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler
que significan estas líneas y cómo 2017-05-19 23:25:51.299771-0400 test[21948:1121429] [] nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler
el problema?
Noté esto por primera vez cuando intenté usar fetch en mi aplicación y descubrí que no funcionaba. Encontré estos mensajes en la consola y luego descubrí que estos mensajes están ocurriendo con todas mis aplicaciones, así que asumo que eso significa que es un problema de configuración de mi parte.
Creé un nuevo programa de prueba para probar lo que estaba causando esto y descubrí que sucedía en un proyecto completamente nuevo. A continuación se muestra mi código que generó la salida de registro anterior:
/**
* 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);
En mi caso, se debió a una aplicación de firewall (Little Snitch) que nunca solicita acceso cuando se ejecuta desde una aplicación nativa de reacción. Pasos que me funcionan:
- Abre el navegador Safari en el simulador.
- Visita google.com o cualquier dominio
- Asegúrese de que abre la página. Se pedirá acceso, etc
- Reinicia tu aplicación en el simulador
- Reinicie el registro
react-native log-ios
Eso debería ayudar.
Este error es muy probable que provenga de un websocket integrado en react-native para conectarse a react-devtools. Si no está ejecutando react-devtools mientras realiza la depuración, obtendrá este error y también enviará un montón de mensajes a través del puente quejándose de no poder abrir el websocket (solo verá esos errores si está usando algo como rn-snoopy ).
El error se detendrá tan pronto como instale y abra react-devtools. Consulte estas instrucciones para saber cómo hacerlo: https://github.com/facebook/react-devtools/blob/master/packages/react-devtools/README.md
Me di cuenta de la solución:
Para desactivar Verbose para el modo de actividad OS
- Desde el menú de xcode, Proyecto -> Esquema -> Editar esquema.
- Luego seleccione
Run
a la izquierda y luego seleccione la pestañaArguments
a la derecha. - En
Environment Variables
agregue el nombreOS_ACTIVITY_MODE
y el valor comodisable
.
O vea la imagen de abajo.
Nota: el crédito por la imagen va a Ramkrishna Sharma
Para deshabilitar las secuencias de websocket hice lo siguiente:
en xcode: Libraries / React.xcodeproj / React / Inspector / RCTInspectorPackagerConnection.m: find
- (void)connect {
y agregareturn;
justo después de esoen node_modules / react-native / Libraries / Core / Devtools / setupDevtools.js: reemplace
if (__DEV__)
conif (false)
Esto es bastante feo pero mucho mejor que la solución OS_ACTIVITY, ya que no oculta ni impide otras herramientas de depuración.
Trate abajo del proceso
Menú Xcode -> Producto -> Editar esquema ...
Variables de entorno -> Agregar -> Nombre: "OS_ACTIVITY_MODE", Valor: "deshabilitar"
Ejecuta tu aplicación de nuevo
Tuve el mismo problema, y el inicio de mi aplicación se retrasó significativamente debido al problema. La solución real para mí se detalla here , pero la reescribiré en caso de que el enlace se rompa:
- Abrir Xcode
- Haga clic en
Product
en la barra superior - Haga clic en
Scheme
, desplácese hacia abajo paraEdit Scheme
- Seleccione
Run
en la barra izquierda,Info
en la pestaña superior - Cambie la
Build Configuration
deDebug
aRelease
Ahora la aplicación no solo ya no tiene los errores, sino que también se inicia mucho más rápido. Las otras "correcciones" solo ocultan el error.