Xamarin.Forms IOS 断点未命中

问题描述 投票:0回答:7

我最近升级到了新的 Xamarin for Visual Studio,从那时起,我在 IOS 调试过程中不再能够命中断点。 Android 运行得很好,奇怪的是。

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

我读过数十篇类似的投诉,但这些解决方案对我不起作用。

ios visual-studio xamarin.forms breakpoints
7个回答
13
投票

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

通过更改 Mac 或 iOS 构建选项上的 nothing 使其正常工作;相反,将 Windows 中 Visual Studio 2017 中生成的 调试信息 类型从“完整”或“仅 Pdb”更改为 “可移植”。

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

此后,共享项目和 iOS 平台项目中都开始出现断点。美好时光。


2
投票
另一种解决方案是禁用 iOS 项目(而不是 PCL 项目)中的链接。这对我有用。

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

1
投票

Xamarin.iOS

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

有一个临时的

解决方法,对我有用:

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

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

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

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

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

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

this:

长话短说,如果您手动删除“bin”和“obj”文件夹 对于您切换到的每个项目

portable

,
  从测试设备上卸载应用程序,然后清理并重建
  解决方案,这应该有望允许 
portable
 模式与
  安卓也一样。一旦执行了这些清理步骤一次,您
  理论上应该不需要再次执行它们,除非您切换
  再次调试类型。

编辑

在Android上我仍然有

问题,所以这不是完美的方法。


0
投票
转到 Visual Studio for Mac、解决方案资源管理器并选择项目, Project->Option->Compiler->Debug information,在下拉列表中选择“Full”。

您需要为要调试的解决方案中的每个项目设置“完整”,否则断点将不会启动。


0
投票
Xamarin 表单:确保您的视图与绑定上下文绑定,否则断点将不会命中。并且断点显示为未加载的符号。

示例:

public ExamplePage() { InitializeComponent(); BindingContext = App.Resolve<ExampleViewModel>(); }
这解决了我的问题:)


0
投票
对我有用的是取消选中

Strip native debugging symbols

选项。清理并重建解决方案。

Strip native debugging symbols


-2
投票
经过大量挖掘终于找到了解决方案,请查看随附的屏幕简短内容。

在 VS 2019 社区版中。

© www.soinside.com 2019 - 2024. All rights reserved.