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

Visual Studio 2022配对Mac后iOS模拟器连接停滞求助

解决VS2022远程iOS模拟器卡在“连接到Mac”且SSH被拒绝的问题

问题背景

此前可正常通过Microsoft Visual Studio 2022(17.5.3版)连接sickcodes Docker镜像中运行的Ventura 13.3版Mac OSX,重装PC后出现以下异常:

  • Windows端iOS模拟器启动后卡在“连接到Mac...”状态
  • 取消VS中“远程模拟器到Windows”选项后,Mac虚拟机上的iOS模拟器可正常加载应用,但来回切换开发不便
  • Xamarin.Simulator日志显示SSH连接被目标机器主动拒绝,但通过PowerShell可正常SSH连接Mac虚拟机,Mac也能反向SSH连接Windows
  • VS终端日志确认已设置正确的SSH端口50922,且VS可正常配对Mac
  • 已排查并关闭Windows和Mac防火墙、添加SSH防火墙规则、配置Docker环境变量、调整WSL2配置等,均未解决问题
  • 确认非VM、Docker或Sickcodes本身问题,此前曾正常运行

解决方案

1. 指定VS的SSH密钥路径

VS可能未正确识别SSH密钥,手动指定密钥:

  • 打开VS2022,进入工具 > 选项 > Xamarin > iOS设置
  • 在“SSH密钥”栏,手动选择本地用户目录下的id_rsa文件(默认路径:C:\Users\<你的用户名>\.ssh\id_rsa)
  • 重启VS后重新配对Mac,尝试启动远程模拟器

2. 清除Xamarin模拟器缓存

删除Xamarin的SSH缓存文件,强制重建连接:

  • 关闭VS2022及所有相关进程
  • 删除以下目录的所有文件:
    • C:\Users\<你的用户名>\AppData\Local\Xamarin\iOS\Simulator
    • C:\Users\<你的用户名>\AppData\Local\Xamarin\Logs
  • 重新打开VS,重新配对Mac并测试远程模拟器

3. 检查WSL2端口转发与Docker集成

由于Docker默认使用Ubuntu WSL2,可能存在端口转发冲突:

  • 打开PowerShell,执行wsl --list --verbose确认默认WSL发行版为Ubuntu
  • 执行wsl --shutdown停止所有WSL实例
  • 重启Docker Desktop,确保Docker的WSL集成功能正常
  • 执行docker ps查看容器端口映射,确认Mac虚拟机的22端口已映射为主机的50922端口(格式为0.0.0.0:50922->22/tcp)

4. 调整Mac虚拟机的SSH配置

手动SSH登录Mac虚拟机,修改SSH服务配置以适配VS的SSH客户端:

  • 编辑/etc/ssh/sshd_config文件:
    sudo nano /etc/ssh/sshd_config
    
  • 确保以下配置项正确设置:
    PasswordAuthentication yes
    PubkeyAuthentication yes
    AllowUsers <你的Mac虚拟机用户名>
    
  • 重启SSH服务:
    sudo launchctl stop com.openssh.sshd && sudo launchctl start com.openssh.sshd
    

5. 重置VS的Xamarin相关设置

重置VS的配置以消除可能的损坏项:

  • 打开VS2022,进入工具 > 导入和导出设置
  • 选择“重置所有设置”,按提示完成配置重置
  • 重新配置Xamarin iOS的Mac连接并测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:03:10