Ошибка "Main Thread Checker: интерфейс пользовательского интерфейса вызывается в фоновом потоке" в iPhone Xs, отлично работает в симуляторе

Я работаю с Xcode 10.2.1 (последний стабильный выпуск), на MacOS 10.15 Catalina Beta (19A50501i), использую Swift 5. iPhone Xs имеет iOS 12.3.1

Я проверил несколько вопросов, связанных с "API пользовательского интерфейса, вызываемого в фоновом потоке", но ни один из них, похоже, не решает мою проблему.

У меня есть сложное приложение, в котором я работаю более 8 месяцев, и несколько обновлений AppStore. Я недавно перенес свое устройство с iPhone 8 на iPhone Xs, и теперь я получаю это сообщение об ошибке при начальной загрузке. Я не могу точно определить код, который вызывает проблему.

  • Компилируем из Xcode в iPhone 8 ---- Все ок
  • Компилировать в симуляторе iPhone Xs ---- ОК
  • Установить в моем устройстве (iPhone Xs) из TestFlight ---- ОК. (Проблема никогда не возникала раньше, потому что все мои тестеры с iPhone X получают приложение через TestFlight).

Только при компиляции из Xcode в iPhone Xs или iPhone XR он сообщает сообщение "Проверка основного потока: API пользовательского интерфейса вызывается в фоновом потоке", а затем после 5-секундной задержки (блокируя пользовательский интерфейс) все происходит как обычно.

Единственный код пользовательского интерфейса в начальной выборке связан с отображением HUD. Я отключил его с тем же результатом

Я попробовал ответ из этого поста: Main Thread Checker: API пользовательского интерфейса вызвал в фоновом потоке: -[UIApplication applicationState], чтобы попытаться получить строку кода, делая паузу в проблемах:

Но это делает паузу в ответной строке вызова ассемблера

Информация трассировки стека не полезна. Единственный код, который я могу просмотреть, - это слушатель области (который я тоже отключил)

Кроме метода класса в расширении UIScreen для проверки абсолютной высоты экрана и пары ограничений, связанных с безопасной областью iPhone X (или более новой), нет другого специфического кода iPhone Xs.

Кроме того, я не использую код CoreMotion.

Наконец, я использую "DispatchQueue.main.async { }" во многих областях проекта, учитывая ограничения Realm при использовании других очередей, а также для управления пользовательским интерфейсом.

Любая помощь будет оценена

0 ответов

Другие вопросы по тегам