IOS 8.0 - "не удалось выполнить обновление сцены во времени"

Я столкнулся с следующим сбоем во время работы на iOS 8.0. Это первый раз, когда я вижу это, поэтому любое наблюдение будет полезно:

Incident Identifier: C39AF13A-D02B-40B1-8FC3-CFED8226D6FA
CrashReporter Key:   dace0b0fe53a1661c59ffa598b3a139a6177d713
Hardware Model:      iPhone7,2
Process:             Vieu [435]
Path:                /private/var/mobile/Containers/Bundle/Application/36CE6BFB-F90E-452B-8A4F-2B352F95DE48/Vieu.app/Vieu
Identifier:          com.vieu.mobile
Version:             140929 (1.0)
Code Type:           ARM-64 (Native)
Parent Process:      launchd [1]

Date/Time:           2014-09-29 17:12:47.878 -0700
Launch Time:         2014-09-29 15:39:55.349 -0700
OS Version:          iOS 8.0.2 (12A405)
Report Version:      105

Exception Type:  00000020
Exception Codes: 0x000000008badf00d
Highlighted Thread:  0

Application Specific Information:
com.vieu.mobile failed to scene-update in time

Elapsed total CPU time (seconds): 15.910 (user 15.910, system 0.000), 77% CPU 
Elapsed application CPU time (seconds): 1.039, 5% CPU
  • Что означает "не удалось изменить сцену во времени"?
  • Как я могу воспроизвести эти типы сценариев?
  • Какой лучший подход к их решению в целом?

Ответы

Ответ 1

Ну, вот подсказка. По-видимому, уведомление было изменено с iOS 7.1 на iOS8.1

У меня было такое же поведение/сбой в моем приложении, а также журналы аварийных сбоев для каждой ОС:

7.1 говорит:

Incident Identifier: 1AFAD8D6-50B3-4B5A-8EBE-2A76E4400BDA
CrashReporter Key:   8e228dccf0b7ae7d1127923c96eec86495483eae
Hardware Model:      iPhone5,3
Process:             ProcessName [2967]
Path:                /var/mobile/Applications/key/myApp.app
Identifier:          com.company.app
Version:             5.6.0042 (5.6)
Code Type:           ARM (Native)
Parent Process:      launchd [1]


Date/Time:           2014-11-04 17:32:57.089 -0800
OS Version:          iOS 7.1.1 (11D201)
Report Version:      104


Exception Type:  00000020
Exception Codes: 0x000000008badf00d
Highlighted Thread:  0


Application Specific Information:
com.company.app failed to resume in time

В то время как iOS 8.1 говорит:

Incident Identifier: 960DB688-F165-4DCD-98A1-3F4AEFFB5442
CrashReporter Key:   2022d4aa4b6f69db15c58ae02734fb8172a77bba
Hardware Model:      iPhone7,2
Process:             ProcessName [175]
Path:                /private/var/mobile/Containers/Bundle/Application/key/myApp.app
Identifier:          com.company.app
Version:             5.6.0042 (5.6)
Code Type:           ARM-64 (Native)
Parent Process:      launchd [1]


Date/Time:           2014-11-04 18:05:31.933 -0800
Launch Time:         2014-11-04 17:30:28.408 -0800
OS Version:          iOS 8.1 (12B411)
Report Version:      105


Exception Type:  00000020
Exception Codes: 0x000000008badf00d
Highlighted Thread:  0


Application Specific Information:
com.company.app failed to scene-update in time

Итак, почти все одно и то же, за исключением раздела "Специфическая информация".

В нашем случае был запущен метод, который не выполнялся в основном потоке, поэтому он заставлял остальную часть пользовательского интерфейса застревать, а система его убивала. Как только мы исправили, что проблема исчезла в обеих версиях.

Итак, проверьте, что может привести к зависанию основного потока.