Repository navigation
Ship dSYMs in the Swift xcframework again - #1525
Merged
Merged
Conversation
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>
Contributor
Changeset ✓This PR includes a changeset covering all affected packages:
|
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
marked this pull request as ready for review
October 15, 2026 18:28
Contributor
Author
|
May need alignment with WebRTC - bundling them inside xcframeworks resolves the warnings but 4x the download size (vs separate artefacts). |
cloudwebrtc
approved these changes
Oct 19, 2026
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.
Restores embedded dSYMs in the published
RustLiveKitUniFFI.xcframework.Tracking issue: livekit/client-sdk-swift#1149
Why
#1034 moved the cargo-swift pin from
feature/dsymstofix/multi-crate-frameworkfor the multi-crate framework fix. That branch never had--debug-symbols, so${SWIFT_DSYMS_FLAG}was dropped from thecargo swift packagecall and every UniFFI release since has shipped without dSYMs. TheCARGO_PROFILE_RELEASE_DEBUG=limited/SPLIT_DEBUGINFO=packedenv was kept, so CI has been running dsymutil and throwing the result away.What
livekit-uniffi/Makefile.toml: bump the cargo-swift--revtoc92be034(feat(xcframework): --debug-symbols on top of the multi-crate framework fix cargo-swift#4:feature/dsymsrebased ontofix/multi-crate-framework, a strict superset of the current pin) and pass${SWIFT_DSYMS_FLAG}again.livekit-uniffi/Makefile.toml: install cargo-swift withcargo install --revin the task script instead of cargo-make'sinstall_crate, whose--helpprobe accepts a stale cached binary;cargo installcompares 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-xcframeworkalready 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.ziprelease asset like WebRTC.