From ac04d159d29946f66c942d8619cbbda608e48be4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82az=CC=87ej=20Pankowski?= <86720177+pblazej@users.noreply.github.com> Date: Thu, 15 Oct 2026 10:21:18 +0200 Subject: [PATCH 1/2] Ship dSYMs in the Swift xcframework again 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 Co-authored-by: omnigent --- .changeset/uniffi_swift_dsyms.md | 5 +++++ livekit-uniffi/Makefile.toml | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 .changeset/uniffi_swift_dsyms.md diff --git a/.changeset/uniffi_swift_dsyms.md b/.changeset/uniffi_swift_dsyms.md new file mode 100644 index 000000000..d224650c3 --- /dev/null +++ b/.changeset/uniffi_swift_dsyms.md @@ -0,0 +1,5 @@ +--- +livekit-uniffi: patch +--- + +Embed per-slice `.dSYM` bundles in the Swift `RustLiveKitUniFFI.xcframework` again so Xcode archives and crash symbolication can resolve Rust frames (livekit/client-sdk-swift#1149). diff --git a/livekit-uniffi/Makefile.toml b/livekit-uniffi/Makefile.toml index c4154862f..627565d54 100644 --- a/livekit-uniffi/Makefile.toml +++ b/livekit-uniffi/Makefile.toml @@ -331,9 +331,10 @@ SPM_PLATFORMS = { value = "macos ios maccatalyst visionos tvos", condition = { e [tasks.swift-xcframework] private = true install_crate = { crate_name = "cargo-swift", binary = "cargo-swift", test_arg = "--help" } -# Multi-crate framework fix, on the fork's `fix/multi-crate-framework` branch -# (open upstream as antoniusnaumann/cargo-swift#101). -install_crate_args = ["--git", "https://github.com/livekit/cargo-swift.git", "--rev", "439269c4ff5097bcca7a0a7588f1adebd95edc06"] +# Multi-crate framework fix (`fix/multi-crate-framework`, open upstream as +# antoniusnaumann/cargo-swift#101) plus `--debug-symbols` (`feature/dsyms` +# rebased on top, livekit/cargo-swift `blaze/dsyms-on-multi-crate`). +install_crate_args = ["--git", "https://github.com/livekit/cargo-swift.git", "--rev", "c92be034d15129321fb08da0416df4b376930748"] script_runner = "@shell" script = """ export IPHONEOS_DEPLOYMENT_TARGET=13.0 @@ -355,7 +356,8 @@ $platform_flags \ --lib-type dynamic \ --privacy-manifest ${SUPPORT_DIR}/swift/PrivacyInfo.xcprivacy \ --exclude-arch x86_64-apple-tvos \ -${SWIFT_RELEASE_FLAG} +${SWIFT_RELEASE_FLAG} \ +${SWIFT_DSYMS_FLAG} """ # Format the generated bindings with swiftformat's default rules. UniFFI's From d768d75661548b2fdf69a166f49abae793d81625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82az=CC=87ej=20Pankowski?= <86720177+pblazej@users.noreply.github.com> Date: Thu, 15 Oct 2026 10:58:06 +0200 Subject: [PATCH 2/2] Install cargo-swift by rev, not by probe 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 Co-authored-by: omnigent --- livekit-uniffi/Makefile.toml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/livekit-uniffi/Makefile.toml b/livekit-uniffi/Makefile.toml index 627565d54..9e368c3ef 100644 --- a/livekit-uniffi/Makefile.toml +++ b/livekit-uniffi/Makefile.toml @@ -330,13 +330,16 @@ SPM_PLATFORMS = { value = "macos ios maccatalyst visionos tvos", condition = { e [tasks.swift-xcframework] private = true -install_crate = { crate_name = "cargo-swift", binary = "cargo-swift", test_arg = "--help" } -# Multi-crate framework fix (`fix/multi-crate-framework`, open upstream as -# antoniusnaumann/cargo-swift#101) plus `--debug-symbols` (`feature/dsyms` -# rebased on top, livekit/cargo-swift `blaze/dsyms-on-multi-crate`). -install_crate_args = ["--git", "https://github.com/livekit/cargo-swift.git", "--rev", "c92be034d15129321fb08da0416df4b376930748"] script_runner = "@shell" script = """ +# Not cargo-make's install_crate: that only probes `cargo-swift --help`, so a +# cached binary from an older rev passes. `cargo install` compares the recorded +# source+rev: fast no-op on a match, reinstall on a mismatch. +# Multi-crate framework fix (`fix/multi-crate-framework`, open upstream as +# antoniusnaumann/cargo-swift#101) plus `--debug-symbols` (`feature/dsyms` +# rebased on top, livekit/cargo-swift#4). +cargo install --git https://github.com/livekit/cargo-swift.git --rev c92be034d15129321fb08da0416df4b376930748 --locked cargo-swift + export IPHONEOS_DEPLOYMENT_TARGET=13.0 export MACOSX_DEPLOYMENT_TARGET=10.15 export TVOS_DEPLOYMENT_TARGET=17.0