You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS模拟器添加至Xcode后数分钟内无法被Charles/Proxyman监听问题求助

问题成因分析
  1. 系统自动重置模拟器代理配置:Mac OS Ventura的网络守护进程会定期刷新设备(包括模拟器)的网络设置,一旦Mac网络环境变动(比如切换Wi-Fi/有线、休眠唤醒),就会覆盖手动配置的代理参数,导致流量不再走代理工具。
  2. 应用网络会话缓存未更新:iOS应用会复用URLSession这类网络会话实例,当代理连接中断或证书状态变化后,应用不会主动重建代理连接,而是一直用缓存的无代理会话,自然就没流量被拦截了。
  3. 模拟器证书信任被系统回收:Ventura的安全机制会周期性校验模拟器里的第三方证书,要是检测到证书没通过系统级信任更新,会自动撤销它的信任权限,代理工具就没法解密HTTPS流量,看起来就像没流量一样。
  4. Xcode模拟器进程冲突:Xcode后台的simctl管理进程维护模拟器状态时,可能会重置网络相关配置,尤其是模拟器闲置超过一段时间后,会触发默认网络配置恢复。
解决办法

临时快速恢复(不用重装应用)

  • 重置模拟器网络配置:打开模拟器的「设置」→「Wi-Fi」,点当前连接网络右侧的i图标,先关代理,再重新开启并填代理工具的IP和端口(一般是127.0.0.1加对应端口,比如Charles默认8888)。
  • 强制重启应用:在模拟器里双击Home键(或用手势划开多任务),彻底划掉目标应用再重新打开,触发应用重建网络会话。

长期根治方案

  1. 锁定模拟器代理配置

    • 打开终端,执行命令强制固定模拟器的代理:
      xcrun simctl spawn booted networksetup -setwebproxy Wi-Fi 127.0.0.1 8888
      xcrun simctl spawn booted networksetup -setsecurewebproxy Wi-Fi 127.0.0.1 8888
      
    • 要关闭代理的话,执行:
      xcrun simctl spawn booted networksetup -setwebproxystate Wi-Fi off
      xcrun simctl spawn booted networksetup -setsecurewebproxystate Wi-Fi off
      

    (注意:把8888换成你的代理工具实际端口)

  2. 强化证书信任持久化

    • 打开模拟器,进「设置」→「通用」→「VPN与设备管理」,找到代理工具的根证书,点「信任」并确认。
    • 终端执行命令,强制把证书标记为系统信任:
      xcrun simctl spawn booted security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/Desktop/CharlesProxy.pem
      

    (注意:把~/Desktop/CharlesProxy.pem换成你的代理证书实际路径)

  3. 减少Xcode对模拟器的自动干预

    • 打开Xcode,进「Preferences」→「Locations」,点「Derived Data」右侧的箭头,删掉当前的Derived Data文件夹,避免缓存的配置干扰模拟器。
    • 关掉Xcode的「Automatically manage signing」功能,手动管理证书和配置文件,减少Xcode自动修改模拟器配置的概率。
  4. 调整代理工具设置

    • 在Charles/Proxyman里开启「Keep-Alive」功能,确保代理连接不会被系统主动断开。
    • 开启「Auto-Proxy Configuration」,让代理工具自动给模拟器推送代理配置,避免手动配置被系统覆盖。

内容的提问来源于stack exchange,提问作者bodich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 09:10:32