React Native, native logs quirks

Isaías Chávez
August 2023
2 min read

Summary

Cuando estoy depurando en React Native, a veces me encuentro con que los logs nativos no aparecen donde deberían. En iOS descubrí que el proyecto viene con NSLog prácticamente silenciado y tuve que reactivarlo desde el esquema. En Android me ha pasado algo similar, así que prefiero usar directamente las funciones de RN para asegurarme de que mis mensajes lleguen. Este post es solo una nota rápida de esas pequeñas cosas que siempre se olvidan cuando uno cambia entre plataformas.

iOS

En iOS, la salida por defecto (NSLog) viene deshabilitada en el proyecto. Para volver a activarla, abre el scheme que estés usando y entra a la pestaña Arguments. Ahí verás la variable OS_ACTIVITY_MODE. Borra su valor y automáticamente volverás a ver todos los logs.

Si no quieres depender de NSLog (o print en Swift), puedes usar las funciones de logging de React Native:

#import <React/RCTLog.h>

// Your code
RCTLogWarn(@"Your message");

Android

En Android puedes usar las funciones de RN directamente:

import com.facebook.react.util.RNLog;

// Your code
RNLog.a("Your message");