Back to Blog

How to Check iOS Device Logs for Debugging Crashes

BetaDrop Team
8 min read
capture ios device logsmacos console appios debuggingiphone crash logs
How to Capture iOS Device Logs (Console) for Debugging
Share:

"It crashes on startup."

This is the most useless feedback a beta tester can give. To fix the bug, you need the stack trace. But how do you get logs from an iPhone that isn't connected to your debugger? This guide covers three ways to pull real device logs — live streaming over USB, on-device capture with no computer, and embedded crash reporters — plus how to ship the fix once you've found it.

Method 1: Console.app (macOS)

This is the standard way to view real-time logs from any iOS device.

  1. Connect your iPhone to your Mac via USB and tap Trust on the phone if prompted.
  2. Open the Console app (press Cmd+Space and type "Console").
  3. In the sidebar, select your iPhone under "Devices".
  4. Click Start (or verify it's already streaming).

You will see thousands of messages flying by. To narrow it down to your app:

  • Type your app's name in the Search bar, or filter by process:YourApp to only show your executable.
  • Console hides info and debug level messages by default. Enable them from the Action menu (Include Info Messages / Include Debug Messages), or your own os_log and print lines may never appear.
  • Console only shows the live stream — there is no scrollback for events before you opened it, so start capturing before you reproduce the bug.

Prefer the Terminal? With the device connected, run log collect --device-name "iPhone" to save a .logarchive snapshot you can reopen in Console later — handy for scripting or grabbing a capture right after a repro.

Method 2: Sysdiagnose (No Computer)

If a tester is out in the wild, they can trigger a sysdiagnose — a full system-wide capture — with no cable and no Mac.

  1. Press and hold both Volume buttons + Power button for 1-1.5 seconds. You should feel a short vibration.
  2. Wait about 10 minutes (it takes time to gather logs).
  3. Go to Settings > Privacy & Security > Analytics & Improvements > Analytics Data (on older iOS it is listed under Privacy).
  4. Scroll down to find the sysdiagnose_... file.
  5. Tap share and AirDrop/email it to the developer.

That same Analytics Data list also holds per-crash reports named like YourApp-2026-01-20-140233.ips. These are far smaller than a sysdiagnose and usually contain the exact stack trace you need, so grab one of those first before asking a tester for the heavy full-system capture.

Note: a sysdiagnose is heavy and contains logs for the entire system, so treat it as sensitive.

Method 3: In-App Logging Tools

Smart developers embed logging tools into the beta build. Services like Bugsnag, Sentry, or Firebase Crashlytics automatically upload crash reports the next time the app launches. This is far more reliable than asking users to capture logs manually.

Whichever route you take, raw .ips logs arrive full of hex addresses. To make them readable, symbolicate with the build's dSYM: in Xcode open Window > Devices and Simulators, select the device, and click View Device Logs — Xcode maps the addresses back to method names and line numbers automatically when it has the matching dSYM.

After the Fix: Ship the New Build to Testers

Once the logs point you to the bug and you've patched it, testers need the corrected build fast — before the crash context goes stale. Instead of waiting on a fresh TestFlight review cycle, upload the new .ipa to BetaDrop and share the instant over-the-air install link and QR code. Testers reinstall straight from their phone browser and re-run the exact steps that crashed, so you can confirm the fix in minutes. Builds up to 512 MB are supported and the links are ephemeral, so old beta builds don't pile up.

For the tester side of that flow, see how OTA installs work, and if anyone hits a trust prompt on first launch, fix the untrusted developer error.

Frequently Asked Questions

Do I need Xcode to see iOS device logs?

No. The Console app that ships with macOS streams live logs from any connected iPhone without opening the full Xcode IDE. Console still relies on Xcode's device-support components, so install Xcode or the Command Line Tools once, then work entirely from Console.

Can I view iPhone logs on Windows?

Not natively. macOS Console cannot run on Windows, so you need a third-party tool such as iMazing or 3uTools to read the real-time system console of a connected iOS device. For a specific crash, a tester can also AirDrop or email the .ips report straight from the phone.

Where are crash logs stored on an iPhone?

Open Settings, then Privacy & Security, then Analytics & Improvements, then Analytics Data. Crash reports appear as files named after your app and ending in .ips, for example MyApp-2026-01-20-140233.ips. Tap the file, then the share icon, to send it to yourself.

What is the difference between a sysdiagnose and a crash report?

A crash report (.ips) captures the stack trace for a single crash and is small enough to email. A sysdiagnose is a full system-wide capture triggered by pressing both volume buttons and the power button together; it is much larger and includes logs from every process, so reach for it only when a crash report alone does not explain the bug.

Why is my crash log full of hex addresses instead of function names?

The log is unsymbolicated. iOS records raw memory addresses, and you need the matching dSYM file to turn them into readable method names and line numbers. In Xcode, choose Window, then Devices and Simulators, select the device, and click View Device Logs; Xcode symbolicates automatically when the dSYM from that exact build is available.

How do I collect device logs from the Terminal instead of Console?

With the iPhone connected, run log collect --device-name "iPhone" to save a .logarchive that you can open later in Console. This is handy for scripting or for grabbing a snapshot right after reproducing a bug, instead of watching the live stream.

Ready to Distribute Your App?

Upload your IPA or APK file and get a shareable install link in seconds. No account required. Completely free.

iMobile Designs
Developed by iMobile Designs
Made with
in India