Сбой при выполнении очереди glmtl.telemetry

Ровно через 60 секунд после запуска моего приложения оно вылетает с необработанным исключением:

libc++abi.dynlib: terminating app due to uncaught exception of type NSException 
 *** Terminating app due to uncaught exception of type 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: object cannot be nil (key: BundleVersion)'

Сбойная ветка имеет случайный номер (на приложенном скриншоте это №7) и всегда создается для неизвестной мне очереди glmtl.telemetry.

Сбой происходит только на одном устройстве (iPhone 11 Pro Max) и iOS 14.0 (потом он был воспроизведен с iOS 14.0.1).

Я не использую в проекте нигде ключ BundleVersion. (В info.plist есть CFBundleVersion, но, похоже, это не связано).

Может ли это быть вызвано исходниками проекта?

введите здесь описание изображения


person Greg    schedule 28.09.2020    source источник
comment
У меня была такая же ошибка. Я думал, что это прошло, но потом оно вернулось.   -  person Michael Douma    schedule 29.09.2020
comment
Вы когда-нибудь исправляли это?   -  person dk123    schedule 04.07.2021
comment
@dk123 dk123 Что-то вроде ... Исправление статуса git (исправление всех [?] в навигаторе Xcode) всех файлов и каталогов в проекте волшебным образом решило проблему. Я так и не нашел отношения.   -  person Greg    schedule 09.07.2021


Ответы (2)


Это не объяснение проблемы, но сбой перестал появляться после добавления группы отсутствующих файлов ресурсов в папку (не группу, а папку) в комплекте.

person Greg    schedule 28.09.2020

Исправить

У меня такая же проблема. В моем случае мне нужно было добавить CFBundleVersion к Info.plist проекта, поскольку исключение упоминает ключ "BundleVersion" и потому что я вспомнил, что видел XCode жаловаться на недействительные пакеты, когда этот ключ отсутствует.

Я предполагаю, что те рекомендовали CFBundle* ключа должен быть установлен для основного проекта Info.plist и любых встроенных фреймворков или проектов с их собственными Info.plist. Я просто удивлен, что XCode 12 не вызывает эту ошибку прямо сейчас во время сборки.

Источник проблемы (?)

Используете ли вы OpenGL в своем приложении? Я не смог найти, что такое glmtl, но кажется, что сбой происходит ровно через 1 минуту после создания нового контекста OpenGL. Сбой по-прежнему произойдет через 1 минуту, если я удалю контекст до этого, но он будет отложен еще на минуту, если я создам новый экземпляр между ними.

person agirault    schedule 08.10.2020
comment
Да, я использую OpenGL. Имя очереди gltml предполагает некоторую связь с OpenGL / Metal. Сбой прекратился после исправления проблемы с git — одна папка с активами имела вопросительный знак в навигаторе проекта [?]. Кажется совершенно не связанным, но это помогло. - person Greg; 08.10.2020
comment
В моем проекте CFBundleVersion было установлено значение $(CURRENT_PROJECT_VERSION). После того, как я переписал это значение на реальное число (например 3), вылеты прекратились. Но каждый раз, когда вы устанавливаете версию пакета на вкладке «Проект», он перезаписывает значение в info.plist обратно на $(CURRENT_PROJECT_VERSION), что снова вызывает сбой :((( - person Mike Keskinov; 24.11.2020
comment
@ mike-keskinov да, это раздражает ... Apple / XCode, похоже, хотят применить CURRENT_PROJECT_VERSION как значение CFBundleVersion, хотя вы всегда можете отменить изменение, и оно по-прежнему будет работать с жестко закодированным значением ... Тем не менее, это все равно должно работать пока установлено значение CURRENT_PROJECT_VERSION (которое должно быть в разделе ЦЕЛЕВЫЕ > Ваше приложение > Общее > Идентификация > Сборка). Вы видите, что CURRENT_PROJECT_VERSION равно чему-либо, если вы просматриваете свой файл project.pbxproj? - person agirault; 25.11.2020