The best option, IMO, is to avoid trying to catch the crash on the way down, but instead notice on the way back up. Something like this:
When your app starts, create a file that indicates that it’s running.
When it terminates cleanly, delete that file.
If it launches and discovers the file is still present, it must have crashed.
Your app can then offer to report this, at which point it can notify your management app of the situation.
The nice thing about this approach is that you don’t have to write any code that runs at crash time, which is where things start getting hard.
Share and Enjoy
Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"
ticket files has been in my bucket of ideas, and as the apps are launched through the command master, ( can't guarantee though that the users wont add the to the dock ) it knows something is launched and I already have code to check if something is running (to handle "need to quit to update scenarios"), so this approach it is then.
I can always add a check for running to the look and check state machine to see who is running and who is no longer running and the file is still there, and then I can grab the crashlog and zip it up and hurl it back to the DB repository for later dissection. I think I have a plan worked out.