无法在 Visual Studio for Mac 中的 iPhone 模拟器上运行 Xamarin 应用程序

8
简而言之:我无法在iPhone模拟器中运行我的应用程序。 没有“播放按钮”(三角形),只有调试器按钮(锤子)。

enter image description here

如上图所示,我有一个“通用模拟器”。当我点击它时,没有各种iPhone/iPad可供选择的列表: enter image description here 如果我选择Android,我就可以运行这个应用程序:

enter image description here

我已安装XCode。我曾运行过XCode。 我还安装了命令行工具。 在此输入图像描述 我创建了一个新的Xamarin Forms应用程序: 在此输入图像描述 在此输入图像描述 这是我的iOS构建选项: 在此输入图像描述 我能够单独运行模拟器:

enter image description here

在XCode中创建应用程序并在模拟器中运行是有效的: 输入图像描述

info.plist: enter image description here

首选项 -> SDK 位置 -> Apple 在此输入图像描述

构建 -> 配置: 在此输入图像描述 在此输入图像描述

然而,这里有一个关键问题。如果我在 Windows 计算机上使用 Mac 上的 iPhone 模拟器运行 Xamarin 应用程序,它可以正常工作! 在此输入图像描述 我需要做什么才能在 Visual Studio for Mac 中运行我的应用程序模拟器?


1
将 info.plist 中的部署目标更改为较低版本并进行检查。 - Ranjit
嗨@Ranjit,我已经添加了我的info.plist的图像。我没有看到部署目标。 - adinas
1
最低系统版本被称为部署目标。您已经设置了8.0,所以这不应该是一个问题。请检查Apple SDK路径是否正确设置(首选项-> SDK位置-> Apple)。它应该有绿色的勾号,带有Xcode版本和SDK路径位置。 - Ranjit
1
请尝试以下操作。右键单击解决方案->选项->配置->配置管理器->应该勾选ProjectName.iOS与Debug|iPhoneSimulator,如果没有"ProjectName.iOS with Debug|iPhoneSimulator"这个配置,则需要从常规选项卡中添加。 - Ranjit
1
是的,您需要添加模拟器配置。我已经在我的回答中发布了图片,请查看。 - Ranjit
显示剩余2条评论
3个回答

4

有几个选项值得检查。@WorldOfBasti建议了以下选项:

  1. 配置

右键点击解决方案 -> 选项 -> 配置 -> 配置管理器 -> 应该选中 ProjectName.iOS with Debug|iPhoneSimulator,如果配置“ProjectName.iOS with Debug|iPhoneSimulator”不可用,则从“常规”选项卡中添加。

enter image description here

  1. Apple SDK路径

检查Apple SDK路径是否正确设置(偏好设置 -> SDK位置 -> Apple)。它应该有绿色的勾号,带有Xcode版本和SDK路径位置。 enter image description here

  1. 最低系统版本(部署目标)

将部署目标更改为最低版本(即低于您的模拟器版本)

  1. 切换调试 <-> 发布

今天我也遇到了您所面临的相同问题。我将调试切换到发布,iOS切换到Android。然后从顶部设备选择状态栏中的调试返回到iOS。然后模拟器选项出现了。因此,在Visual Studio for Mac中可能存在UI更新问题。请尝试一下。

enter image description here


1
感谢您的所有努力,但似乎它仍然无法正常工作。这台电脑肯定有问题。我将尝试在另一台电脑上运行。我已经添加了我的配置图像。它们看起来和你的一样。 - adinas
1
在另一台电脑上,一切都立即正常工作了。因此,尽管这台计算机是操作系统的全新安装,但我认为可能是因为它非常老(2012年的27英寸iMac),只能运行Catalina MacOS,所以即使XCode工作正常也会出现问题。不过,我会给你答案,因为我相信这对其他人可能有帮助。 - adinas
1
听起来很奇怪。也许你可以尝试去技术支持:https://visualstudio.microsoft.com/vs/support/mac/ - WorldOfBasti
1
我在最近更新VS-Mac后注意到了这种行为。对我来说,第3个方法解决了问题。 - Patrick Boyd Hesser III

1
查看Visual Studio for Mac日志,特别是IDE日志,我发现这一行...“无法添加目标模拟设备名称,因为它已经被缓存”。
您可以阅读所有内容,但您可能只想转到附录2(最终版本?)并查看是否适用于您...它最终比我找到的任何其他方法都更简单和快速。
所以,起初,我使用终端中的“xcrun simctl erase all”命令清除缓存,并且当我启动Visual Studio for Mac时,我可以运行Xamarin应用程序,但启动模拟器需要相当长的时间。
因此,这是我发现的一些有效方法,您可能想要尝试...
  • 关闭Mac上的iOS模拟器(如果有)。
  • 关闭所有连接到Mac的Visual Studio副本...无论是在Mac本身上还是在连接到Mac的另一台计算机上(如果有)。
  • 启动Visual Studio for Mac。
  • 如果无法运行Xamarin应用程序,请关闭Visual Studio for Mac。
  • 手动启动模拟器(我将其放在Dock中,所以我只需单击它)...等待其完全启动。
  • 现在关闭模拟器(从模拟器菜单中)。
  • 现在重新启动Visual Studio for Mac。
  • 如果仍然无法看到要运行的模拟器设备...请再尝试以上步骤一次(这次您只需要关闭Visual Studio for Mac,然后手动启动模拟器,等待其启动,然后退出模拟器,最后重新启动Visual Studio for Mac)。

虽然不是很好,但这对我总是有效的。并且模拟器的启动速度比我从终端执行“xcrun simctl erase all”命令要快得多。

补充说明:大多数情况下,以上方法都有效。但偶尔我仍然需要使用“xcrun simctl erase all”命令从终端清除缓存。

此外:我还发现(虽然可能只是我的想象)清除在“T”文件夹中写入的Visual Studio for Mac临时.binlog文件有时可以解决问题(如果您查看来自Visual Studio for Mac的IDE日志;在“目标模拟设备名称无法添加,因为它已经被缓存”的消息之后,您应该会看到一些.tmp文件被创建。它们被创建的目录就是我所说的“T”文件夹)。在使用“xcrun simctl erase all”命令尝试回到Visual Studio for Mac将看到iOS模拟器设备之前,我有时会删除tmp * .binlog和tmp * .tmp作为最后的努力。

最后: 这似乎真的是Visual Studio for Mac启动时(或者在iOS项目加载期间)的一个bug。我这么说的原因是,只要我能连接到Mac,我总能从Windows的Visual Studio中看到iOS设备列表。此外,我可以让Visual Studio for Mac保持运行状态(即使隐藏),并从Windows上的iOS模拟器测试应用程序,然后将iOS模拟器保持运行状态,在Visual Studio for Mac上运行应用程序。如果真的存在模拟器的“缓存问题”,那么在从Windows使用iOS模拟器后,在Mac上运行任何东西都应该出现问题,但它总是能够正常工作。目前,我只在Mac上工作单个Xamarin项目(我不会在Mac上使用其他任何东西),所以我只需让Visual Studio for Mac“在登录时打开”(Dock设置)并自动“在启动时加载上一个解决方案”(Visual Studio for Mac设置),隐藏Visual Studio for Mac(Dock设置),如果需要,Visual Studio for Mac已经加载并且能够通过单击Dock图标查看iOS设备来运行应用程序。 附录2(最终版?):我现在发现,如果我只是关闭一个显示“通用模拟器”的已打开的解决方案,并在不退出Visual Studio for Mac的情况下重新打开它(有时我必须多次这样做...我想我已经数了5次才终于成功),它将开始显示设备列表,我可以在模拟器中运行iOS应用程序。如果模拟器已经运行,我甚至不必关闭它,这节省了大量时间。

对我来说,它仍然感觉像是一个bug,我不明白为什么我要关闭/打开多次解决方案才能列出iOS设备并能够运行iOS应用程序。真正让我困扰的是,如果我重新启动Mac,在不打开模拟器的情况下启动Visual Studio for Mac,然后打开一个解决方案,我仍然需要进行关闭/重新打开解决方案的步骤......有时需要多次。模拟器没有设置为自动启动或类似的东西。但是,至少现在更简单,花费更少的时间就可以运行iOS应用程序了。


1
我假设你已经尝试了像重新启动Mac这样的基础操作。这里有一些可能解决你的问题的方法:
  • 检查你的构建配置,这里有一个不错的视频
  • 关闭VS for Mac,在Xcode中创建一个测试项目并在模拟器上运行。如果可以工作,请再次尝试在VS for Mac中运行
  • 关闭VS for Mac,转到Xcode -> Preferences -> Accounts并下载您的开发人员帐户的手动配置文件。然后在VS for Mac中再次尝试
  • 清理你的项目:在VS for Mac中,转到Build -> Clean All。然后关闭VS for Mac,进入你的项目文件夹并删除"yourprojectname"和"yourprojectname".iOS所有bin和obj文件夹。然后再次尝试

如果所有这些都没有用,我建议你重新安装它(如果你有任何重要的项目,请备份):

  • 卸载VS for Mac和Xcode
  • 从App Store重新安装Xcode
  • 安装Visual Studio for Mac

希望能解决你的问题。


谢谢你的建议,但它们都没有起作用。我看了詹姆斯的视频,构建配置看起来没问题(可以看到截图)。我在XCode中运行了一个应用程序(添加了一张截图)。清空所有并没有改变任何东西。关于重新安装,实际上,在发布这个问题之前,我已经重新格式化了硬盘并重新安装了操作系统,以尝试解决这个问题,所以这台计算机是原始的 + XCode + Visual Studio。 - adinas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接