跳到主要内容

React Native

使用 Proxyman 抓取 React Native 和 Expo 应用的 HTTPS 流量,支持 iOS 真机、iOS 模拟器、Android 真机和 Android 模拟器。

视频​

在 iOS 模拟器和 Android 模拟器上抓取 React Native Expo 应用的 HTTPS 流量

1. React Native - iOS​

  • 如果你的 iOS 应用使用 React Native 开发,请参照 iOS 指南操作,与原生 iOS 应用没有区别。
  • 支持 Expo 和 Metro bundler

2. React Native - Android​

React Native 的 Android 应用抓取 HTTP/HTTPS 流量的方式与原生 Android 应用相同。请参照 Android 设置指南操作:

注意

请确保完整按照指南中的所有步骤操作,尤其是第 5 步,即添加 res/xml/network_security_config.xml 和 AndroidManifest.xml。

否则,Proxyman 无法解密 SSL 连接。

3. 故障排查 - Android​

3.1 Metro bundle 错误​

在 Android 设备上将 HTTP Proxy 设置为 Proxyman 后,由于 Metro bundler 无法连接到其本地服务器,你可能会遇到以下错误。

Android 上 React Native 的红屏错误:Unable to load script, make sure you're running Metro

Metro bundle 错误

解决方法如下:

Android 模拟器​

  1. 打开 Proxyman -> Certificate 菜单 -> Install Certificate on Android -> Emulators… -> 点击 “Revert All Changes”
  2. 打开 Android 模拟器,进入 Settings 应用 -> Network -> Wi-Fi -> 打开代理设置
  3. 使用 Proxyman IP & Port 手动设置 HTTP Proxy。如果不知道 IP 和端口,请打开 Certificate 菜单 -> Install Certificate on Android -> Physical Devices…,并在第 2 步中找到 Server IP & Port。
  4. 保存之前,在绕过代理列表(bypass proxy list)中输入 localhost ✅

Android Wi-Fi 代理设置,包含 Proxyman IP 和端口,以及绕过代理列表中的 localhost

  1. 完成
  2. The Bridge Was shutdown 警告和 Metro bundle 错误已消失 ✅

Android 真机​

  1. 在 Android 真机上打开 Settings 应用 -> Network -> Wi-Fi -> 打开代理设置
  2. 使用 Proxyman IP & Port 手动设置 HTTP Proxy。如果不知道 IP 和端口,请打开 Certificate 菜单 -> Install Certificate on Android -> Physical Devices…,并在第 2 步中找到 Server IP & Port。
  3. 保存之前,在绕过代理列表中输入 your IP ✅
  4. 完成

更多内容请见:https://github.com/ProxymanApp/Proxyman/issues/1407#issuecomment-1497235102

了解更多​