调试原生代码
访问日志
您可以使用以下命令在终端中显示 iOS 或 Android 应用的原生日志(在应用运行时)
shell
# For Android:
npx react-native log-android
# Or, for 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 中调试
当处理原生代码时,例如在编写原生模块时,您可以从 Android Studio 或 Xcode 启动应用程序,并利用原生调试功能(设置断点等),就像构建标准原生应用一样。
另一种选择是使用 React Native CLI 运行您的应用程序,并将原生 IDE(Android Studio 或 Xcode)的原生调试器附加到该进程。
Android Studio
在 Android Studio 上,您可以通过转到菜单栏上的 “Run” 选项,点击 “Attach to Process…” 并选择正在运行的 React Native 应用来完成此操作。
Xcode
在 Xcode 上,点击顶部菜单栏上的 “Debug”,选择 “Attach to process” 选项,并在 “Likely Targets” 列表中选择应用程序。