← Blog

How to collect iPhone app logs for a bug report

By Edward Harker

To collect iPhone app logs for a bug report, connect the test iPhone to a Mac, select it in Console and click Start before you reproduce the issue. Note the time the failure appears, then copy the messages around that time into the ticket with the app build and reproduction steps. If the app crashes, look for the crash report as well. Apple’s device log and crash report guide

Which iPhone logs do you need?

What you sawWhat to collect
A save stalls and the app stays openDevice console messages around the tap and any retry
The app quits during the testThe failure time and the matching crash report, if available
Text is clipped on one screenA screenshot and the settings that reproduce it

Console shows messages from the iPhone’s operating system and apps. A crash report describes how a process terminated. For a stalled save, a log excerpt can help engineering match the tap to an operation in the app. For a layout issue, the screenshot and the device’s text size may give the developer everything they need. Apple’s guide to diagnosing issues with logs

How do you capture the failing run in Console?

  1. Connect the iPhone. Unlock it and use a USB cable that supports data. If macOS asks whether to allow the accessory, choose Allow. If the phone asks whether to trust the computer, approve the prompt on a Mac you’re authorised to use for testing. Apple’s connection guide
  2. Start the stream. Open Console on the Mac, choose the iPhone under Devices and click Start. Check that messages are arriving from the phone before starting the test. Apple’s Console guide
  3. Reproduce on the build you’re investigating. If the issue happened on a TestFlight build, leave that build installed. Write down the time and time zone when you see the failure. Note when you retry if the retry behaves differently.
  4. Find the relevant messages. Pause the stream and look around the failure time. Search for the process or subsystem name if engineering has given it to you. Copy the lines from the action through to the failure so the developer can see what happened in between. Apple’s guide to searching Console
  5. Check the excerpt. Select the messages and press Command-C. Paste them into a text file and check that the timestamps came across. Write the failure time above the excerpt if you need to record it separately. Apple’s Console keyboard shortcuts

If your search comes back empty, remove the filter and check the same time again. The process name may differ from the name under the app icon. If the build emits very little, ask the developer whether it has diagnostic logging and which messages to look for. Save the test details before swapping builds. Apple’s unified logging documentation

What can you send if you don’t have a Mac?

If the app crashed, open Settings → Privacy & Security → Analytics & Improvements → Analytics Data. Find the report by the app’s binary name and the incident time, then share it through your team’s approved channel. Ask engineering to help identify the file if you’re unsure which one matches. Apple’s instructions for finding crash reports on the device

If the app stayed open, check whether your test build offers a way to export its own diagnostics. Otherwise, send the screenshot or recording, the exact time and the build number while you still have them. For a beta build, you can also use the TestFlight feedback workflow.

What should go in the bug report with the logs?

If the first save hung and the second worked, mark both attempts in the ticket. For example, “Build 312 on iPhone 15. Reconnect to Wi-Fi and tap Save on an offline draft. The spinner stayed up after the first tap at 14:37:22 UTC. The same draft saved on retry at 14:38:01 UTC. The excerpt covers both taps.”

App version and build
iPhone model and iOS version
Setup and steps to reproduce
Expected and actual result
Failure time and time zone
Retry time and result, if applicable
Process or subsystem filter, if used
Reviewed log excerpt or restricted file link
Screenshot or recording, if useful

Check the excerpt and attachments for account details, tokens and message contents before sharing. Keep timestamps and the order of events when you remove sensitive values. If engineering needs a wider capture, use a restricted file link in the ticket.

Use the Environment field for the build and device details when you turn these notes into a tracker issue. Bug report template generator

Frequently asked questions

Do I need Xcode to see iPhone app logs?

The Console app that comes with macOS can stream logs from a connected iPhone. You can use it with the test build that is already installed on the phone.

Can I get a crash report directly on my iPhone?

Yes. Open Settings → Privacy & Security → Analytics & Improvements → Analytics Data. Look for the app's binary name and the time of the crash, then share the matching file through your team's approved channel.

What if Console shows no messages from the app?

Clear the search and check for messages around the failure time. If the stream is running, ask the developer which process, subsystem and log level the test build uses.