Приложение Xamarin вылетает после запуска экрана iOS 12 - PullRequest
0 голосов
/ 22 февраля 2020

Итак, я создал приложение, используя Xamarin.Forms v3.4.0, протестировал устройство android и на своем iPhone (SE, iOS 13.3), и оно отлично работает. В качестве теста я запустил его на старом устройстве (iPhone 6, iOS 12.4), и он вылетает сразу после синего экрана запуска.

Проблема в том, что он даже не запускает отладчик , Сбои настолько рано, что отладчик еще даже не запускается, поэтому я понятия не имею, как определить причину взлома sh. Попытка установки точек останова в первой строке Main.cs и AppDelegate.cs и, опять же, отладчик на этом не останавливается.

После этого я подумал, что это как-то связано с процессором устройства, поэтому я настроил симулятор для iPhone SE с iOS 12.4 (то же устройство, более старая ОС), и он вылетает точно так же. Так что да, это должно быть что-то в версии ОС.

Другая моя идея заключается в том, что, возможно, это связано с темным режимом (извините, я просто подбрасываю идеи). Я реализовал режим Dark, используя это руководство

Я понятия не имею, с чего начать, любую помощь, которую он приветствует.

Редактировать:
Только что обновил Xamarin.Forms до 4.4.x и у меня все та же проблема.

1 Ответ

0 голосов
/ 24 февраля 2020

Проблема была на самом деле в пользовательском рендерере страниц, который я использую для обработки темного режима. Очевидно, аргумент previousTraitCollection TraitCollectionDidChange() равен нулю в iOS 12.

Так что это просто NullReferenceException очень легко исправить:

if (previousTraitCollection == null)
    return;

Понятия не имею почему отладчик не начал вовремя идентифицировать ошибку, но по счастливой случайности я обнаружил ее, изменив Linker Behavior на Link Framework SDKs Only

...