在开发 React Native(RN)项目时,真机调试是必备技能。下面我从 iOS / Android 真机调试步骤 + 常见问题排查 给你一套实战指南(偏工程经验总结)。
一、iOS 真机调试
1. 基本前提
-
必须使用 Xcode
-
需要 Apple ID(免费也行)
-
iPhone 用数据线连接 Mac
2. 配置步骤
✅ 第一步:信任设备
- iPhone 上点击"信任此电脑"
✅ 第二步:Xcode 配置签名
打开:
ios/xxx.xcworkspace
设置:
-
Targets → Signing & Capabilities
-
勾选 Automatically manage signing
-
选择你的 Apple ID Team
✅ 第三步:运行到真机
npx react-native run-ios --device
或在 Xcode 里直接 Run
✅ 第四步:启动 Metro
npx react-native start
3. 常用调试方式
🔍 控制台日志
console.log()
🔍 使用 Safari 调试 JS
步骤:
-
iPhone → 设置 → Safari → 高级 → 打开 Web Inspector
-
Mac Safari → Develop → 选择你的设备
🔍 使用 Flipper(推荐)
-
查看网络请求
-
查看布局
-
AsyncStorage
二、Android 真机调试
1. 基本前提
-
安装 Android Studio
-
打开 USB 调试(开发者选项)
2. 配置步骤
✅ 第一步:开启 USB 调试
手机:
-
设置 → 关于手机 → 连点版本号 7 次
-
开启「开发者选项」→ USB 调试
✅ 第二步:连接设备
adb devices
能看到设备说明成功
✅ 第三步:运行项目
npx react-native run-android
✅ 第四步:端口转发(关键)
adb reverse tcp:8081 tcp:8081
👉 不然真机访问不到 Metro
3. 常用调试方式
🔍 打开开发菜单
摇一摇 或:
adb shell input keyevent 82
🔍 使用 Chrome DevTools
chrome://inspect
🔍 使用 Flipper(强烈推荐)
支持:
-
Network
-
Layout
-
Logs
三、常见问题排查(重点🔥)
🚨 1. 真机无法连接 Metro(最常见)
现象:
- 红屏:Could not connect to development server
解决:
iOS:
-
确保手机和电脑同一 WiFi
-
手动设置 IP:
RCTBundleURLProvider.sharedSettings().jsLocation = "你的IP:8081"
Android:
adb reverse tcp:8081 tcp:8081
🚨 2. 端口被占用
lsof -i :8081
kill -9 xxx
🚨 3. iOS 编译失败(签名问题)
报错:
-
No provisioning profile
-
Signing error
解决:
-
Xcode → 自动签名
-
换 Bundle Identifier(唯一)
🚨 4. Android 编译失败
常见原因:
-
JDK 版本不对(建议 11 或 17)
-
Gradle 缓存问题
解决:
cd android
./gradlew clean
🚨 5. 热更新失效 / 不刷新
# 重启 Metro
npx react-native start --reset-cache
🚨 6. 白屏 / 卡死
排查顺序:
-
JS 报错(看 Metro)
-
Native 崩溃(看 Xcode / Logcat)
-
网络请求失败
🚨 7. iOS 运行后闪退
常见:
- 权限未配置(相机、定位)
👉 在 Info.plist 添加:
<key>NSCameraUsageDescription</key>
<string>需要使用相机</string>
🚨 8. Android 网络请求失败(HTTP)
Android 9+ 限制 HTTP
👉 解决:
android:usesCleartextTraffic="true"
🚨 9. 设备连接不上 adb
adb kill-server
adb start-server
四、实战调试建议(高级经验)
✅ 建议你这样配置
-
调试工具:Flipper + Chrome DevTools
-
日志工具:
react-native-logs -
网络抓包:Charles / Proxyman
✅ 推荐调试组合
-
JS 调试 → Chrome
-
Native 问题 → Xcode / Logcat
-
网络问题 → Flipper
五、总结(重点记住)
👉 真机调试核心就 3 件事:
-
设备连接(adb / Xcode)
-
Metro 连接(8081 端口)
-
调试工具(Flipper / Chrome)