我有一个Mac应用程序商店应用程序,它崩溃时会默默地消失。它没有显示CrashReporter对话框,让用户有机会向Apple报告崩溃。
我在多台机器上看到了相同的行为。有没有任何已知的原因可能会发生这种情况?
根据TN2123:
此外,如果崩溃的程序作为登录的GUI运行 用户,CrashReporter将向用户显示询问他们的对话框 他们是否想向Apple提交错误报告
“以登录GUI用户身份运行”是什么意思?窗户是否必须可见?
更新
我正在阅读manpage for ReportCrash,并发现以下内容:
对于应用程序崩溃(但不是后台进程崩溃) ReportCrash将显示一个通知用户的对话框 应用程序意外退出并提供重新打开应用程序 或将报告发送给Apple。对于开发人员来说,这个行为 对话框可以使用调整 /Developer/Applications/Utilities/CrashReporterPrefs.app是 作为开发人员工具的一部分安装。
我运行了CrashReporterPrefs并将我的CrashReporter模式更改为Developer。当我运行应用程序并触发崩溃时,显示了CrashReporter对话框!
所以我想现在的问题是:“应用程序”崩溃和“后台进程”崩溃之间有什么区别?
答案 0 :(得分:2)
如果您的应用使用LSUIElement或LSBackgroundOnly,则为了确定是否显示Crash Reporter,它是一个“后台进程”。 (其他“后台进程”包括UNIX-land守护进程,例如Apache Web服务器,以及从SSH或telnet连接启动的进程。)