Xamarin.Forms Точки прерывания IOS не попадают

Недавно я обновился до новой Xamarin для Visual Studio, и с тех пор я больше не могу ударять точки останова во время отладки IOS. Android работает нормально, странно.

Я удалил и переустановил Visual Studio Community Edition 2017 и оставил все неиспользуемые по умолчанию. Раньше это устраняло нечетные проблемы, подобные этой.

Я читал десятки подобных жалоб, но эти решения не сработали для меня.

Ответ 1

Альтернативное решение - отключить привязку в проекте iOS (а не в проекте PCL). Это сработало для меня.

  • Перейдите в настройки проекта iOS
  • iOS Build
  • Поведение компоновщика: не связывайтесь.

Ответ 2

Перейдите в Visual Studio для Mac, Solution explorer и выберите проект, Project- > Option- > Compiler- > Debug information, выберите "Full" в раскрывающемся меню.

Вам нужно установить этот "Полный" для КАЖДОГО из тех проектов в решении, которое вы хотите отлаживать, иначе точка останова не будет входить.

Ответ 3

В Xamarin.iOS есть ошибка, которая будет зафиксирована в Xamarin.iOS 10.12.0.12 (494fcbc), которая должна быть доступна в бета-канале. Проблема, похоже, встречается только в PCL, что может быть, если вы установите контрольную точку в своем переносном проекте (код Xamarin.Forms).

Существует временный обходной путь, который работал у меня:

Возможное временное обходное решение: переключить переносимую библиотеку классов проект для вывода "портативных" файлов PDB, а не "полных" PDB файлов

  • Откройте файл переносимой библиотеки классов .csproj в текстовом редакторе. Например, щелкните правой кнопкой мыши проект в Обозревателе решений и выберите Разгрузите проект, а затем щелкните его правой кнопкой мыши и выберите "Изменить...".

  • В разделе PropertyGroup для конфигурации "Отладка | AnyCPU" измените DebugType на: portable

  • Сохраните изменения и перезагрузите проект.

  • Создайте, разверните и снова запустите отладку проекта приложения iOS.

Существует проблема на Android, если вы выполните вышеуказанные шаги. Чтобы снова ударить точки останова на Android, вы должны сделать this:

Короче говоря, если вы вручную удалите папки "bin" и "obj" для каждого из проектов, которые вы переключили на portable, удалите приложение из тестового устройства, а затем очистите и перестройте решение, которое, мы надеемся, позволит режиму portable работать с Android тоже. Как только вы выполнили эти шаги по очистке один раз, вы теоретически не нужно выполнять их снова, если вы не переключите DebugType снова.

Edit

На Android у меня все еще есть проблемы , поэтому это не идеальный способ.