Не удается запустить приложение Xamarin.iOS на устройстве

Я разрабатываю приложение iPad с Xamarin.iOS и MVVMcross. Поэтому у меня есть PCL с моей моделью просмотра и моей моделью, а также проект iOS с представлением. Я использую Visual Studio.

Раньше я использовал бета-версию Xamarin.iOS 6.3.6, и когда я попытался запустить приложение на устройстве, был создан файл .app, и я получил его с помощью Ipad, я мог запустить приложение (невозможно запустить непосредственно из Visual Studio).

Вчера я загрузил Xamarin.iOS в 6.4.1. На симуляторе все в порядке. Когда я пытаюсь запустить приложение на устройстве, теперь приложение устанавливается непосредственно, но остановка сборки и следующая ошибка появляются на выходе отладки:

Failed to load AOT module '<my PCL>' while running in aot-only mode: doesn't match assembly. 

И если я нажму на значок своего приложения на устройстве, появится черный экран и исчезнет.

Кто-нибудь знает, почему эта ошибка появляется?

Ответ 1

Похоже, что что-то было где-то кэшировано или не обновлено правильно.

Вот несколько идей, которые нужно попробовать:

  • Удалите приложение с устройства.
  • Очистите и перестройте приложение.
  • Создайте и установите из Xamarin Studio на вашем Mac.
  • Скопируйте конфигурацию Debug в новую конфигурацию (например, DebugTest) и запустите эту конфигурацию.

Ответ 2

Я регулярно получаю ту же проблему.

Обходной путь, который я использую, заключается в том, чтобы переключить платформу в Visual Studio Build Configuration Manager на "iPhoneSimulator", запустить быстрый сеанс отладки, затем переключить платформу обратно на "iPhone", и проблема на некоторое время исчезнет.

К сожалению, у меня нет разумных причин, почему это работает. Кажется, он лучше справляется с "Чистым и перестроенным".

Ответ 3

После прочтения аналогичной ошибки я обнаружил, что очистка папки mtbs на хосте OS X, которая находится в $HOME/Library/Caches/Xamarin/mtbs/, устраняет эту проблему для меня.

Мне нужно делать это так часто. Я просто открываю сеанс PuTTY на моем ящике Windows, чтобы очистить папку. Надеюсь, что Xamarin скоро устранит эту проблему.

Ответ 4

Убедитесь, что для параметра Linker Behavior установлено значение Don't Link

Очистить, перестроить, удалить старую версию из приложения.

Работал для меня, по крайней мере.

Ответ 5

Это случилось со мной после того, как я обновился до XCode 5/iOS7. Я заметил предупреждение о том, что я не установил инструменты командной строки XCode. После того, как я это сделал, я восстановил приложение и теперь он запускается.

Ответ 6

У меня возникла эта проблема, и она снова заработала, открыв свойства проекта Apple и изменив идентификатор профиля подключения с "Распространение" на "Разработчик".

Ответ 7

Мое обходное решение для Mac -

  • Закрыть решение в XS
  • Закройте XS. Command-Q
  • Верните его и снова откройте.

После этого он обычно работает снова.