Вопрос по macos, cocoa – Диалог CrashReporter не отображается при сбое Mac-приложения

4

У меня есть приложение для магазина приложений Mac, которое просто молча исчезает при сбое. Он не показывает диалоговое окно CrashReporter, чтобы дать пользователю возможность сообщить о сбое в Apple.

Я вижу одинаковое поведение на нескольких машинах. Есть ли известная причина, по которой это может произойти?

В соответствии сTN2123:

In addition, if the program that crashed is running as a logged in GUI user, CrashReporter will present the user with a dialog asking them whether they want to submit a bug report to Apple

Что "работает как пользователь, вошедший в систему с графическим интерфейсом"? имею в виду? Должно ли окно быть видимым?

Update:

Я читалman-страница для ReportCrashи обнаружил следующее:

For application crashes (but not background process crashes) ReportCrash will display a dialog notifying the user that the application unexpectedly quit and offering to reopen the application or send the report to Apple. For developers, the behavior of this dialog can be adjusted using /Developer/Applications/Utilities/CrashReporterPrefs.app which is installed as part of the developer tools.

Я запустил CrashReporterPrefs и изменил мой режим CrashReporter на Разработчик. Когда я запустил приложение и вызвал сбой, диалоговое окно CrashReporter было показано!

Итак, я думаю, что вопрос сейчас:What's the difference between an "application" crash and a "background process" crash?

@PeterHosey - это когда приложение запускается из Finder pepsi
@KenThomases - это определенно сбой, потому что генерируются отчеты о сбоях. Системный журнал показывает, что отчет о сбое также сохраняется. Проблема, с которой я сталкиваюсь, заключается в том, что диалоговое окно CrashReporter не отображается, что означает, что пользователь никогда не получает возможность отправить отчет. pepsi
Приложение звонитexit() или же_exit()? Может ли это быть на самом деле само по себе, так что это контролируемое отключение, а не сбой? Когда это происходит, что-нибудь записывается в консольный журнал? Ken Thomases
Это происходит только тогда, когда вы запускаете его под XCode, или это также когда вы сами запускаете приложение из Finder? Peter Hosey
@pepsi: есть ли в вашем приложенииLSUIElement или жеLSBackgroundOnly включено, или это обычное приложение для пользователя? Peter Hosey

Ваш Ответ

1   ответ
2

Если ваше приложение использует LSUIElement или LSBackgroundOnly, оно является фоновым процессом & # x201D; с целью определения, показывать ли Crash Reporter. (Другие (# x201C; фоновые процессы) включают в себя демоны UNIX-земель, такие как веб-сервер Apache, и процессы, запускаемые из соединений SSH или telnet.)

Похожие вопросы