When you file a radar for a bug on one of Apple’s platforms, you should (usually) always attach a sysdiagnose. A sysdiagnose provides a lot of helpful information for the person who is trying to understand how the bug happened. Amongst other things, it contains logs from various parts of the OS, and all recent crash logs. Without it, the person on the other end of your report inside Apple may not be of much help. On macOS running sysdiagnose is somewhat common, but what about iOS?

Update 09 February 2018

Apparently the direct links to the instructions below are not working, even if you are logged-in to your Apple developer account. You can find all sysdiagnose instructions on the official Bug Reporting page.

Update 05 January 2019

Many thanks to Michael Prentice for pointing out that you can also run sysdiagnose on the iOS simulator. To do this, run xcrun simctl diagnose and the output will be placed in /private/tmp/.

sysdiagnose on macOS

On macOS, sysdiagnose is fairly well-documented. You can run it from the command line via sudo sysdiagnose, which will place the resulting .tar.gz file in /var/tmp/. Alternatively you can use the keyboard shortcut: control + option + command + shift + . — which will trigger a flash on your screen and when the report is finished generating, Finder.app will open the enclosing folder (/var/tmp/). It can take up to 10 minutes to complete and there are no visual indicators that anything is happening. Be patient and continue with whatever work you were doing. The report will contain tons of logs, system statistics, and other diagnostic information. You can find official instructions for macOS here.

Note: On all systems, the device will become unresponsive during parts of generating the sysdiagnose and the generated .tar.gz will usually be around 200-300 MB.

sysdiagnose on iOS

What about sysdianogse iOS? A friend recently told me this was possible. After some searching, I did find official developer instructions for running sysdiagnose on iOS. To trigger a sysdiagnose on iOS, simultaneously press both volume buttons and the power button. You’ll feel a short vibration or haptic feedback if successfully triggered. Like macOS, it will take up to 10 minutes to generate. After waiting, you’ll find the .tar.gz by navigating to Settings.app > Privacy > Analytics > Analytics Data. It’s a bit obscure. There will be a large list of files and logs here in alphabetical order. Scroll toward the bottom until you find the “sysdiagnose…” file. Tap the file, then tap the “share” button in the top right and you can AirDrop it to your Mac. Then attach the file to your bug report. Like I mentioned earlier, this file will be around 200-300 MB, so don’t try sending it via email or iMessage.

sysdiagnose for tvOS and watchOS

I was surprised to learn that you can even run sysdiagnose on tvOS and watchOS.

sysdiagnose for specific apps

Some macOS applications have their own sysdiagnose. For Xcode, you can run sudo sysdiagnose Xcode. For Mail.app you can run sudo sysdiagnose Mail. Next time you’re having an issue with Xcode, file a radar and attach a sysdiagnose.

Writing better bug reports

Peter Steinberger already wrote a great guide to writing good bug reports. In addition to all of his excellent advice, often attaching a sysdiagnose can be a huge help — even if you have reliable steps to reproduce or a specific crash report. A sysdiagnose contains additional helpful information. It’s easy to do and available on all platforms.