Skip to main content

네이티브 코드 디버깅

로그 확인하기

앱이 실행 중일 때 터미널에서 다음 명령어를 사용해 iOS 또는 Android 앱의 네이티브 로그를 확인할 수 있다:

shell
# Android:
npx react-native log-android
# iOS:
npx react-native log-ios

iOS 시뮬레이터에서는 Debug > Open System Log…를 통해 로그에 접근할 수 있다. Android 앱이 디바이스나 에뮬레이터에서 실행 중일 때는 터미널에서 adb logcat "*:S" ReactNative:V ReactNativeJS:V 명령어를 실행해 로그를 확인할 수 있다.

💡 커스텀 네이티브 로그

네이티브 모듈을 작성 중이고 디버깅을 위해 모듈에 커스텀 로그를 추가하려면 다음 방법을 사용할 수 있다:

Android (Java/Kotlin)

네이티브 모듈에서 Log 클래스를 사용해 Logcat에서 확인할 수 있는 로그를 추가한다:

java
import android.util.Log;

private void log(String message) {
Log.d("YourModuleName", message);
}

이 로그를 Logcat에서 보려면 다음 커맨드를 사용한다. YourModuleName을 커스텀 태그로 바꿔야 한다:

shell
adb logcat "*:S" ReactNative:V ReactNativeJS:V YourModuleName:D

iOS (Objective-C/Swift)

네이티브 모듈에서 커스텀 로그를 남기려면 NSLog를 사용한다:

objective-c
NSLog(@"YourModuleName: %@", message);

Swift에서는 다음과 같이 작성한다:

swift
print("YourModuleName: \(message)")

이 로그들은 앱을 실행할 때 Xcode 콘솔에 표시된다.

네이티브 IDE에서 디버깅하기

네이티브 모듈을 작성할 때와 같이 네이티브 코드를 작업하는 경우, 안드로이드 스튜디오나 Xcode에서 앱을 실행하고 표준 네이티브 앱을 빌드할 때와 마찬가지로 네이티브 디버깅 기능(중단점 설정 등)을 활용할 수 있다.

다른 방법으로는 React Native CLI를 사용해 애플리케이션을 실행한 후, 네이티브 IDE(안드로이드 스튜디오나 Xcode)의 네이티브 디버거를 프로세스에 연결하는 것이다.

Android Studio

Android Studio에서 이 작업을 수행하려면, 메뉴 바의 "Run" 옵션을 클릭한 후 "Attach to Process..."를 선택하고 실행 중인 React Native 앱을 선택하면 된다.

Xcode

Xcode에서 상단 메뉴 바의 "Debug"를 클릭한 후, "Attach to process" 옵션을 선택하고 "Likely Targets" 목록에서 해당 애플리케이션을 선택한다.