Pin Runner DEBUG_INFORMATION_FORMAT=dwarf so archive validation skips dSYMs - #364
Merged
Merged
Conversation
Setting DEBUG_INFORMATION_FORMAT=dwarf on pod targets (PR #363) was not enough — archive validation runs against Runner's own setting, and Runner still defaults to dwarf-with-dsym. Xcode therefore still expects a dSYM for every linked framework, including objective_c.framework (transitive Flutter dep, ships precompiled without one). Result: "The archive did not include a dSYM for the objective_c.framework with the UUIDs [...]" and the archive can't be distributed. Apply the same setting to Runner's build configs via the post_install hook. Runner's debug info is then inlined in its binary rather than emitted as Runner.app.dSYM. Crash reports symbolicate against Runner approximately; Dart stacks resolve via the embedded VM symbol map regardless of dSYM presence.
theoden8
force-pushed
the
claude/fix-objective-c-dsym-archive
branch
from
May 20, 2026 10:56
d8e1410 to
63d5cb4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Symptom
Archiving on iOS/macOS for App Store distribution fails validation:
objective_cis a transitive Flutter dep (pulled in viapath_provider/ similar) and ships its precompiled.frameworkwithout a.dSYMcompanion. Xcode's archive validation step refuses to distribute when any linked framework is missing a dSYM.Why PR #363's fix wasn't enough
That PR set
DEBUG_INFORMATION_FORMAT = dwarfon pod targets, which stops the pod project from emitting separate dSYMs. But the archive validation step inspects Runner's settings and Runner still defaults todwarf-with-dsym, so Xcode still requests dSYMs for every linked framework.Fix
Apply the same
DEBUG_INFORMATION_FORMAT = dwarfto Runner's build configurations via the existing post_install hook inios/Podfileandmacos/Podfile. Runner's debug info is then inlined in its binary rather than emitted as a separateRunner.app.dSYM; Xcode no longer expects dSYMs for any linked framework and the archive validates.Trade-off
Crash reports against Runner code symbolicate approximately. Dart stack traces are unaffected — they resolve against the embedded VM symbol map regardless of dSYM presence.
How to verify
Then Archive → Distribute in Xcode. Validation completes without the
objective_c.frameworkdSYM complaint.