Xamarin.Forms IOS断点没有命中

Ste*_*cus 15 breakpoints visual-studio ios xamarin.forms

我最近升级到Visual Studio的新Xamarin,从那时起,我在IOS调试期间无法再遇到断点.Android工作正常,很奇怪.

我卸载并重新安装了Visual Studio Community Edition 2017并保留了所有默认设置.以前,这已经解决了像这样的奇怪问题.

我已经阅读过几十个类似的投诉,但这些解决方案对我没用.

小智 8

我在 Windows 上的 Visual Studio 2017 和在远程 Mac 上使用 iOS 模拟器的最新 Xamarin 遇到了同样的问题。调试开始,但未命中断点。

通过在 Mac 或 iOS 构建选项上不做任何更改来使其工作;而是将Windows 中 Visual Studio 2017 中生成的调试信息类型从 "Full" 或 "Pdb-only" 更改为"Portable"

Visual Studio 2017 项目属性中的调试信息设置

我为 iOS 平台项目以及共享的 Xamarin.Forms 项目 (.NET Standard 2.0) 执行了此操作。

在此之后,断点开始在共享项目和 iOS 平台项目中受到攻击。美好时光。


tes*_*ing 1

中存在一个错误Xamarin.iOS,该错误将在 中修复Xamarin.iOS 10.12.0.12 (494fcbc),应该可以在 beta 通道中使用。该问题似乎仅发生在 PCL 中,如果您在可移植项目(Xamarin.Forms 代码)中设置断点,就会出现这种情况。

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

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

  1. 在文本编辑器中打开可移植类库 .csproj 文件。例如,在解决方案资源管理器中右键单击该项目并选择“卸载项目”,然后再次右键单击该项目并选择“编辑...”。

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

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

  4. 再次构建、部署并开始调试 iOS 应用程序项目。

如果您执行上述步骤,Android 上会出现问题。为了能够再次在 Android 上命中断点,您必须执行以下操作

长话短说,如果您手动删除已切换到的每个项目的“bin”和“obj”文件夹portable,从测试设备卸载应用程序,然后清理并重建解决方案,这应该会允许该portable模式也可以与 Android 一起使用。一旦您执行了一次这些清理步骤,理论上您应该不需要再次执行它们,除非您再次切换调试类型。

编辑

在 Android 上我仍然遇到麻烦,所以这不是完美的方法。