Reputation: 9071
I'm sending beta builds of a Mac Catalyst app by distributing them to beta testers with a developer ID, and the beta testers are emailing me back crash logs. I can drag iOS crash logs into the View Device Logs window of Xcode to symbolicate them, but when I try that with the macOS crash logs, the window doesn't highlight and doesn't receive the dragged file.
While following a tutorial to symbolicate manually from the command line, I realized there are no dSYM files in my build archives. If I click a build in the Xcode organizer, select Show In Finder, then navigate into the archive's dSYMs folder, it is empty.
Actually, recent versions of my app use an AppKit bundle for multiple window support, and those builds do have an AppKitBridge.bundle.dSYM file in the dSYMs folder. I don't think this is blocking the creation of the dSYM file for the main app, because I can look back at the archives for older versions and it wasn't generated for those, either.
According to Apple's Xcode documentation, I need to have the Debug Information Format build setting set to DWARF with dSYM File, and I do:
Does this sound like the reason Xcode won't let me drag the logs in, and if so, what else do I need to generate the dSYM files?
Upvotes: 1
Views: 735
Reputation: 933
As of Xcode 13.2.1, re-setting the Debug Information Format
build option adds ENABLE_STDEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
lines to project.pbxproj
, forcing Xcode to generate appropriate *.xcarchive/dSYMs/
content for both macOS and iOS.
Upvotes: 0
Reputation: 9071
Based on the settings shown in the screen shots above, it looked like both the iOS and macOS versions were using the DWARF with dSYM File value. But just to make sure, I added separate values for the macOS platform, as shown here:
That doesn't seem necessary, but maybe it makes sense to someone who understands projects and targets better. Anyway, now Xcode generates a dSYM file when building the macOS version.
However, crash logs generated from a new build still won't drop into the View Device Logs window for symbolication. I tried using symbolicatelog
from the command line and got the error "Unsupported crash log version: 12." This even happens with a crash log that was generated on the same macOS version as my computer, so I don't know why my local symbolicatelog
tool wouldn't handle it. I ended up using the atos
tool as described in this SO answer to symbolicate the log one line at a time. It's tedious but it works.
Upvotes: 2