Xamarin.Forms IOS断点没有命中

我最近升级到新的Visual Studio的Xamarin,从那以后,我不能在IOSdebugging期间打断点。 Android很好,奇怪。

我卸载并重新安装了Visual Studio Community Edition 2017,并保留了所有的默认值。 以前,这已经解决了这个问题。

我已经读了几十个类似的投诉,但这些解决scheme并没有为我工作。

另一种解决方法是禁用iOS项目(不是PCL项目)中的链接。 这对我有效。

  1. 转到iOS项目设置
  2. iOS构build
  3. 链接器行为:不要链接。

转到Visual Studio for Mac,解决scheme资源pipe理器,然后selectProject-> Option-> Compiler-> Debug信息,在下拉列表中select“Full”。

您需要在您要debugging的解决scheme中为这些项目中的每个项目设置“Full”,否则断点将无法启动。

Xamarin.iOS有一个bug,它将在Xamarin.iOS 10.12.0.12 (494fcbc)Xamarin.iOS 10.12.0.12 (494fcbc) ,它应该在testing版本中提供。 这个问题似乎只发生在PCL中,如果你在你的可移植项目(Xamarin.Forms代码)中设置了一个断点的话。

有一个临时的解决方法 ,这对我有用:

可能的临时解决方法:将便携式类库项目切换为输出“便携式”PDB文件而不是“完整”PDB文件

  1. 在文本编辑器中打开可移植类库.csproj文件。 例如,右键单击解决scheme资源pipe理器中的项目,然后select“卸载项目”,然后再次右键单击它并select“编辑…”。

  2. 在“Debug | AnyCPU”configuration的PropertyGroup下,将DebugType更改为:portable

  3. 保存更改并重新加载项目。

  4. 再次构build,部署并开始debuggingiOS应用程序项目。

如果您执行上述步骤,则Android上存在问题。 为了能够在Android上再次出现断点,你必须这样做:

长话短说,如果您手动删除已经切换到portable每个项目的“bin”和“obj”文件夹,请从testing设备上卸载应用程序,然后清理并重新构build解决scheme, portable模式与Android一起工作。 一旦执行了一次这些清理步骤,理论上不需要再次执行它们,除非再次切换DebugType。

编辑

在Android上我仍然有麻烦 ,所以这不是一个完美的方式。