You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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里走这几步:

    1. 打开工具 > 选项 > Xamarin > iOS 设置
    2. 点击重置所有iOS模拟器内容和设置按钮
    3. 重启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,删掉项目目录下的binobj文件夹
    • 删掉VS的缓存目录:C:\Users\<你的用户名>\AppData\Local\XamarinC:\Users\<你的用户名>\AppData\Local\Microsoft\VisualStudio\15.0_*\ComponentModelCache(把<你的用户名>换成自己的账号名,15.0_*是VS2017的版本目录)
    • 重新打开项目,先清理解决方案,再重新构建调试
  • 手动结束异常进程后重试
    如果启动后模拟器一直无响应,先结束相关进程再试:

    • 打开Win10任务管理器,找到iossimulator.exeXamarin.Simulator.Server.exe这两个进程,强制结束
    • 回到VS里重新启动调试,大概率能正常加载模拟器
  • 调整VS的调试启动选项
    有时候调试配置的优化选项会导致模拟器卡顿:

    • 右键项目 > 属性 > iOS调试
    • 取消勾选启用调试优化,然后再启动远程模拟器试试
    • 也可以换个不同型号的iOS模拟器目标(比如从iPhone 12换成iPhone 8),老模拟器的兼容性往往更好

小补充:如果以上方法都没用,可以在Mac上打开Console.app,查看Windows远程模拟器启动时的系统日志,里面经常能找到更具体的错误信息,比如端口被占用、权限不足之类的,能帮你精准定位问题。

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

火山引擎 最新活动