VS 2017 Xamarin远程iOS模拟器卡顿无响应问题求助
解决VS 2017 Enterprise远程iOS模拟器Windows端无响应问题
我之前维护老Xamarin项目的时候,刚好碰到过和你一模一样的问题——Win10上完全更新的VS2017 Enterprise,Mac端构建运行都正常,本地iOS模拟器也能启动,但一勾选“Remote Simulator to Windows”启动调试,PC端模拟器窗口就卡着无响应,最后进程直接终止。结合自己踩过的坑和社区里的方案,给你整理几个亲测有效的解决办法:
重置VS的iOS模拟器相关配置
先把VS和Mac上的Xcode、iOS模拟器全关掉,然后在VS里走这几步:- 打开
工具 > 选项 > Xamarin > iOS 设置 - 点击
重置所有iOS模拟器内容和设置按钮 - 重启VS,重新连接Mac后再尝试启动远程模拟器
这个操作能清掉模拟器里的旧缓存和配置冲突,我当时就是靠这个解决了大半问题。
- 打开
排查Windows和Mac的网络通信稳定性
远程模拟器完全依赖两台机器的网络通信,偶尔会因为防火墙、无线波动导致卡顿:- 尽量把Mac和Win10机器连到同一局域网的有线网络上,无线信号不稳定很容易丢包
- 临时关掉两边的防火墙(或者给VS、Xamarin相关进程添加防火墙例外)
- 去Mac的
系统偏好设置 > 共享里,确认“远程登录”已经开启,并且Win10的IP地址在允许访问的列表里
同步Mac端Xcode和Xamarin.iOS的兼容版本
虽然你说VS是完全更新的,但Mac端的Xcode版本如果和VS2017不兼容,也会出问题:- VS2017对Xcode的支持上限大概是Xcode 10.x,别装太新的Xcode版本(比如Xcode 11+可能会有兼容问题),去App Store找对应稳定版本安装
- 在VS里打开
工具 > NuGet包管理器 > 管理解决方案的NuGet包,把Xamarin.iOS相关的包更新到和VS、Xcode兼容的版本
清理项目和VS的缓存目录
老项目的缓存堆积很容易出各种奇怪问题:- 关闭VS,删掉项目目录下的
bin和obj文件夹 - 删掉VS的缓存目录:
C:\Users\<你的用户名>\AppData\Local\Xamarin和C:\Users\<你的用户名>\AppData\Local\Microsoft\VisualStudio\15.0_*\ComponentModelCache(把<你的用户名>换成自己的账号名,15.0_*是VS2017的版本目录) - 重新打开项目,先清理解决方案,再重新构建调试
- 关闭VS,删掉项目目录下的
手动结束异常进程后重试
如果启动后模拟器一直无响应,先结束相关进程再试:- 打开Win10任务管理器,找到
iossimulator.exe和Xamarin.Simulator.Server.exe这两个进程,强制结束 - 回到VS里重新启动调试,大概率能正常加载模拟器
- 打开Win10任务管理器,找到
调整VS的调试启动选项
有时候调试配置的优化选项会导致模拟器卡顿:- 右键项目 > 属性 > iOS调试
- 取消勾选
启用调试优化,然后再启动远程模拟器试试 - 也可以换个不同型号的iOS模拟器目标(比如从iPhone 12换成iPhone 8),老模拟器的兼容性往往更好
小补充:如果以上方法都没用,可以在Mac上打开
Console.app,查看Windows远程模拟器启动时的系统日志,里面经常能找到更具体的错误信息,比如端口被占用、权限不足之类的,能帮你精准定位问题。
内容的提问来源于stack exchange,提问作者BigTFromAZ




