我有一个Mac应用商店应用程序,当它崩溃时会静默消失。它不会显示CrashReporter对话框,让用户有机会向Apple报告崩溃情况。
我在多台机器上看到了相同的行为。这可能是由于什么原因引起的?
根据TN2123:
如果崩溃的程序正在以已登录的GUI用户身份运行,CrashReporter将向用户呈现一个对话框,询问他们是否要向Apple提交错误报告
“作为已登录的GUI用户运行”是什么意思?窗口必须可见吗?
更新:
我正在阅读ReportCrash手册页,发现了以下内容:
对于应用程序崩溃(但不包括后台进程崩溃),ReportCrash将显示一个对话框,通知用户应用程序意外退出,并提供重新打开应用程序或将报告发送给Apple的选项。对于开发人员,可以使用/Developer/Applications/Utilities/CrashReporterPrefs.app来调整此对话框的行为,该应用程序是作为开发工具的一部分安装的。
我运行了CrashReporterPrefs并将我的CrashReporter模式更改为Developer。当我运行应用程序并触发崩溃时,CrashReporter对话框会显示出来!
所以我想现在的问题是:“应用程序崩溃”和“后台进程崩溃”之间有什么区别?
我在多台机器上看到了相同的行为。这可能是由于什么原因引起的?
根据TN2123:
如果崩溃的程序正在以已登录的GUI用户身份运行,CrashReporter将向用户呈现一个对话框,询问他们是否要向Apple提交错误报告
“作为已登录的GUI用户运行”是什么意思?窗口必须可见吗?
更新:
我正在阅读ReportCrash手册页,发现了以下内容:
对于应用程序崩溃(但不包括后台进程崩溃),ReportCrash将显示一个对话框,通知用户应用程序意外退出,并提供重新打开应用程序或将报告发送给Apple的选项。对于开发人员,可以使用/Developer/Applications/Utilities/CrashReporterPrefs.app来调整此对话框的行为,该应用程序是作为开发工具的一部分安装的。
我运行了CrashReporterPrefs并将我的CrashReporter模式更改为Developer。当我运行应用程序并触发崩溃时,CrashReporter对话框会显示出来!
所以我想现在的问题是:“应用程序崩溃”和“后台进程崩溃”之间有什么区别?
exit()
还是_exit()
?它可能会自行退出,这样就是一种受控制的关闭而不是崩溃吗?当发生这种情况时,是否有任何内容写入控制台日志? - Ken ThomasesLSUIElement
或LSBackgroundOnly
,还是一个普通的用户界面应用程序? - Peter Hosey