When something goes wrong in my Mac OS application, like a NULL pointer exception or something like that, OS X pops up a "problem report" window inviting the user to send a report of the problem to Apple. Is there any way to have the same information displayed in a window that prompts them to report it directly to us, instead?
Also, how do you get access to the reports people send? I assume it involves signing up for the mac OS developer program?
Related
I'm using Hockey app for crash reports for my mac osx application (xamarin.mac).
I need to send handled error message (or stacktrace) from the application.
I found solution for android with sending feedback programmatically, but when I look at BITFeedbackActivity.h here is not such possibility
https://github.com/bitstadium/HockeySDK-iOS/blob/develop/Classes/BITFeedbackActivity.h
is there any solution?
How does one obtain crash reports uploaded to Apple for OS X apps? A user reported a crash with one of my OS X apps, and said he shared the report with Apple. Using XCode 8, I do not see any crash reports for that version or any version of my macOS app. I do see crash reports for an iOS app in XCode.
In iTunes connect, if I navigate to the current version of the OS X app, under the "App Store" tab there is a link for "Crash Reports" at the bottom of the page, but clicking this navigates to a generic FAQ for crash reports, and this has a link which explains how to view crash report in XCode for iOS apps.
I have searched the web for an answer, without success. Is it not possible to get macOS app crash reports?
I may have found my answer in Apple Technical Note TN2123: https://developer.apple.com/library/content/technotes/tn2004/tn2123.html
CrashReporter currently has a number of limitations.
There is currently no way for third party developers to access the reports submitted via CrashReporter. Apple is aware that there is strong demand for such a facility (r. 3356232). In fact, various third party developers have implemented their own crash reporting mechanisms: these range from the simple (have the application look at its own crash log file at launch time; if it has changed, offer to submit it to the developer) to the exceeding complex (completely reimplement CrashReporter).
This was last updated in 2008.
We've observed that when attaching a device to Windows, all USB messages come and go as expected. However under Mac OS X, a device returning the same data as the last message will be 'swallowed' and not passed on to the calling App. On our device, we've taken to toggling a bit on every message we send back to ensure that these duplicates are not summarily deleted by the OS. The device is NOT a mouse/keyboard however is using HID.
Have others had similar experiences?
Why does Mac OS X do this?
Is there a way for the Mac OS X app to turn this 'de-duplication feature' off?
I have a Mac app store app that just silently disappears when it crashes. It doesn't show the CrashReporter dialog to give the user a chance to report the crash to Apple.
I see the same behavior on multiple machines. Is there any known reason why this might happen?
According to 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
What does "running as a logged in GUI user" mean? Does a window have to be visible?
Update:
I was reading the manpage for ReportCrash, and found the following:
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.
I ran CrashReporterPrefs and changed my CrashReporter mode to Developer. When I ran the app and triggered the crash, the CrashReporter dialog was shown!
So I guess the question now is: What's the difference between an "application" crash and a "background process" crash?
If your app uses LSUIElement or LSBackgroundOnly, it's a “background process” for the purpose of determining whether to show the Crash Reporter. (Other “background processes” include UNIX-land daemons, such as the Apache web server, and processes started from SSH or telnet connections.)
Since CrashReporterPrefs no longer comes with developer tools, you can change the behavior to show the dialog for daemons by running this command in the Terminal:
defaults write com.apple.CrashReporter DialogType Developer
I have created Perl/Tk application for OS X compiled using ActiveState PDK PerlApp 8.2.1. The application requires X11 to work properly on OS X, and everything works fine on my own computer (OS X 10.4.11) and others report it working well on OS X 10.5 and 10.6.
But, I have also received several reports from users, for example on 10.4.11 and 10.6.7, that after starting the application, the program seems to run but no main window appears.I have created Perl/Tk application for OS X compiled using ActiveState PDK PerlApp 8.2.1. The application requires X11 to work properly on OS X, and everything works fine on my own computer (OS X 10.4.11) and others report it working well on OS X 10.5 and 10.6.
But, I have also received several reports from users, for example on 10.4.11 and 10.6.7, that after starting the application, the program seems to run but no main window appears.
(Just to clarify the meaning of "seems to run", users can launch X11 (so it's installed!). Also, after launching my application, a new X11 menu bar appears and they can click "About..." and can see the "About..." window for my application.)
I cannot replicate the bug here and the users say that no errors appear on the Terminal command line when they launch the application.
Has anybody experienced a similar problem and know a way to fix it? It seems to be an issue with X11, but I am happy to change my own code to avoid this issue.
I guess the first thing to check is that they are launching from the X11 terminal, rather than the normal one. (and that they have X11 installed).
PerlTK might be hiding the errors in that case?