From 536d5da21ad81634d019b03284bca80b3a3ff4fc Mon Sep 17 00:00:00 2001 From: Itay Brenner Date: Mon, 3 Aug 2026 12:48:56 -0300 Subject: [PATCH 1/2] impr: remove mergeable-library metadata from dynamic xcframework Remove the `-Wl,-make_mergeable` linker flag from the xcframework build script. This flag added LC_ATOM_INFO metadata (~7.6 MB per arm64 slice, ~71% of the binary) that is only useful when consumers link with `-merge_framework`, which SPM does not support. --- CHANGELOG.md | 4 ++++ scripts/build-xcframework-slice.sh | 6 ------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2c25bd394..f035f9d88c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ - Add `SentrySDK.feedback.enableOnShake()` and `disableOnShake()` to toggle the shake-to-report gesture at runtime (#8591) +### Improvements + +- Reduce Sentry-Dynamic.xcframework binary size by ~7.6 MB per arm64 slice by removing unused mergeable-library metadata (LC_ATOM_INFO) (#8342) + ### Fixes - Fix incorrect `duration` sent for active sessions (#8612) diff --git a/scripts/build-xcframework-slice.sh b/scripts/build-xcframework-slice.sh index 289dab9a2a..37fe8391a9 100755 --- a/scripts/build-xcframework-slice.sh +++ b/scripts/build-xcframework-slice.sh @@ -83,12 +83,6 @@ fi rm -rf XCFrameworkBuildPath/DerivedData -## watchos and watchsimulator don't support make_mergeable: ld: unknown option: -make_mergeable -## For other dynamic frameworks, add -make_mergeable (append to existing flags) -if [[ "$sdk" != "watchos" && "$sdk" != "watchsimulator" ]] && [ "$MACH_O_TYPE" != "staticlib" ]; then - OTHER_LDFLAGS="$OTHER_LDFLAGS -Wl,-make_mergeable" -fi - slice_id="${scheme}${suffix}-${sdk}" output_xcarchive_path="XCFrameworkBuildPath/archive/${scheme}${suffix}" From 6f3e930f5dbf09fa94e19a954288afe7e440fdee Mon Sep 17 00:00:00 2001 From: Itay Brenner Date: Mon, 3 Aug 2026 12:51:45 -0300 Subject: [PATCH 2/2] fix: use PR number in changelog entry --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f035f9d88c..7ba760e628 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ ### Improvements -- Reduce Sentry-Dynamic.xcframework binary size by ~7.6 MB per arm64 slice by removing unused mergeable-library metadata (LC_ATOM_INFO) (#8342) +- Reduce Sentry-Dynamic.xcframework binary size by ~7.6 MB per arm64 slice by removing unused mergeable-library metadata (LC_ATOM_INFO) (#8658) ### Fixes