Skip to content

Ship dSYMs in the Swift xcframework again - #1525

Merged
pblazej merged 2 commits into
mainfrom
blaze/uniffi-dsyms
Oct 19, 2026
Merged

pblazej merged 2 commits into
mainfrom
blaze/uniffi-dsyms

Conversation

@pblazej

@pblazej pblazej commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Restores embedded dSYMs in the published RustLiveKitUniFFI.xcframework.

Tracking issue: livekit/client-sdk-swift#1149

Why

#1034 moved the cargo-swift pin from feature/dsyms to fix/multi-crate-framework for the multi-crate framework fix. That branch never had --debug-symbols, so ${SWIFT_DSYMS_FLAG} was dropped from the cargo swift package call and every UniFFI release since has shipped without dSYMs. The CARGO_PROFILE_RELEASE_DEBUG=limited / SPLIT_DEBUGINFO=packed env was kept, so CI has been running dsymutil and throwing the result away.

What

  • livekit-uniffi/Makefile.toml: bump the cargo-swift --rev to c92be034 (feat(xcframework): --debug-symbols on top of the multi-crate framework fix cargo-swift#4: feature/dsyms rebased onto fix/multi-crate-framework, a strict superset of the current pin) and pass ${SWIFT_DSYMS_FLAG} again.
  • livekit-uniffi/Makefile.toml: install cargo-swift with cargo install --rev in the task script instead of cargo-make's install_crate, whose --help probe accepts a stale cached binary; cargo install compares the recorded source+rev, so an old rev is reinstalled and a matching rev is a fast no-op (both paths verified locally).
  • .changeset/uniffi_swift_dsyms.md: livekit-uniffi: patch.

No workflow change: swift-zip-xcframework already zips the whole xcframework, which now contains <slice>/dSYMs/RustLiveKitUniFFI.framework.dSYM; Xcode archives pick embedded dSYMs up automatically. The size gate measures the framework binary only, so it is unaffected.

Verified locally (cargo make --profile release swift-package, macOS + iOS): a dSYM per slice, UUIDs match the framework binaries, real Rust DWARF. Zip grows ~3.3 MB per arch (~40 MB for all 11 archs); if that is too big, the alternative is a separate *.dSYMs.zip release asset like WebRTC.

Bump the cargo-swift pin to `feature/dsyms` rebased onto
`fix/multi-crate-framework` (livekit/cargo-swift#4) and pass
`${SWIFT_DSYMS_FLAG}` to `cargo swift package` again. #1034 moved the
pin for the multi-crate fix and dropped the flag with it, so every
release since has run dsymutil and discarded the result.

Closes the UniFFI half of livekit/client-sdk-swift#1149.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: omnigent <noreply@omnigent.ai>
@github-actions

Copy link
Copy Markdown
Contributor

Changeset ✓

This PR includes a changeset covering all affected packages:

Package Bump
livekit-uniffi patch

cargo-make's `install_crate` only checks that `cargo-swift --help` runs,
so a binary cached from an older rev (rust-cache keeps ~/.cargo/bin)
passes the probe and then rejects `--debug-symbols`. Run `cargo install
--rev` directly: it compares the recorded source+rev and is a no-op on a
match and a reinstall on a mismatch.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: omnigent <noreply@omnigent.ai>
@pblazej
pblazej marked this pull request as ready for review October 15, 2026 18:28
@pblazej
pblazej requested a review from ladvoc as a code owner October 15, 2026 18:28

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

@pblazej

pblazej commented Oct 15, 2026

Copy link
Copy Markdown
Contributor Author

May need alignment with WebRTC - bundling them inside xcframeworks resolves the warnings but 4x the download size (vs separate artefacts).

@pblazej
pblazej merged commit e127cc5 into main Oct 19, 2026
40 of 42 checks passed
@pblazej
pblazej deleted the blaze/uniffi-dsyms branch October 19, 2026 08:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants