其他调试方法
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
本文介绍传统的 JavaScript 调试方法。如果您正在开发新的 React Native 或 Expo 应用,我们推荐使用 React Native DevTools。
Safari 开发者工具(直接 JSC 调试)
当应用使用 JavaScriptCore(JSC)作为运行时,您可以使用 Safari 调试 iOS 版本的应用。
-
仅限物理设备:打开设置应用,进入 Safari > 高级,确保开启 "Web Inspector"。
-
在 Mac 上打开 Safari,启用开发菜单:通过 Safari > 设置... > 高级选项卡,勾选"为网页开发者显示功能"。
-
在开发菜单中找到您的设备,选择子菜单中的 "JSContext" 项。这将打开 Safari 的 Web Inspector,其中包含类似 Chrome DevTools 的控制台和源代码面板。

每次应用重新加载时都会创建新的 JSContext。勾选"自动为 JSContext 显示 Web 检查器"可避免手动选择最新 JSContext。
远程 JavaScript 调试(已弃用)
远程 JavaScript 调试已在 React Native 0.73 中弃用,将在未来版本中移除。
远程 JavaScript 调试将外部浏览器(Chrome)连接到您的应用,并在网页中运行 JavaScript 代码。这样您可以像调试网页应用一样使用 Chrome 调试器。请注意浏览器环境可能存在显著差异,且并非所有 React Native 模块在此调试方式下都能正常工作。
环境准备
从 React Native 0.73 开始,必须手动启用远程 JavaScript 调试,使用 NativeDevSettings 模块。
import NativeDevSettings from 'react-native/Libraries/NativeModules/specs/NativeDevSettings';
function MyApp() {
// Assign this to a dev-only button or useEffect call
const connectToRemoteDebugger = () => {
NativeDevSettings.setIsDebuggingRemotely(true);
};
}
调用 NativeDevSettings.setIsDebuggingRemotely(true) 后,将在 http://localhost:8081/debugger-ui 打开新标签页。
在该页面中,通过以下方式打开 Chrome DevTools:
-
视图 > 开发者 > 开发者工具
-
⌥ Option + Cmd ⌘ + I(macOS)/ Ctrl + Shift + I(Windows 和 Linux)。
控制台和源代码面板将允许您检查 React Native 代码。

在远程 JavaScript 调试模式下,Chrome 中的网页版 React DevTools 无法与 React Native 协同工作。请参阅 React Native DevTools 指南了解如何在集成调试器中使用 React DevTools。
在 Android 上,如果调试器与设备时间不同步,动画和事件行为可能无法正常工作。可通过执行 adb shell "date `date +%m%d%H%M%Y.%S%3N`" 修复。使用物理设备时需要 root 权限。
在物理设备上调试
如果你使用的是 Expo CLI,此配置已经自动完成。
- Android
- iOS
On iOS devices, open the file RCTWebSocketExecutor.mm and change "localhost" to the IP address of your computer.
On Android 5.0+ devices connected via USB, you can use the adb command line tool to set up port forwarding from the device to your computer:
adb reverse tcp:8081 tcp:8081
如果遇到任何问题,可能是某个 Chrome 扩展程序与调试器发生了意料之外的交互。请尝试禁用所有扩展程序,然后逐一重新启用,直到找到有问题的扩展程序。