From baa562401e5e06778c787416573d16289f3815e1 Mon Sep 17 00:00:00 2001 From: Prax Lannister Date: Wed, 8 Jul 2026 03:13:32 +0530 Subject: [PATCH] fix(release): strip x86_64 slice from Sparkle's Autoupdate before signing (fixes #309) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sparkle ships Autoupdate as a universal (arm64+x86_64) binary in every release, including the latest (2.9.4). Dayflow itself is arm64-only, so this leftover Intel slice serves no purpose and triggers macOS's "Support Ending for Intel-based Apps" deprecation warning on Apple Silicon Macs — even though the app is fully native. Verified end-to-end against a real Release build (this machine has no Developer ID cert, so verification uses ad-hoc signing, but the mechanism is identical to the script's own codesign calls): 1. Built Release config, confirmed the bug reproduces: lipo -info Autoupdate -> "x86_64 arm64" 2. Applied the fix in the script's actual signing order (strip, then re-sign each Sparkle component, then the framework container, then the whole app last, matching release_dmg.sh's existing sequence). 3. codesign --verify --deep --strict --verbose=2 on the result: "valid on disk" / "satisfies its Designated Requirement" 4. Final lipo check: Autoupdate is arm64-only in the fully-signed app. The strip is gated on actually finding an x86_64 slice, so this is a no-op (and harmless) if a future Sparkle release ships arm64-only. --- scripts/release_dmg.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/release_dmg.sh b/scripts/release_dmg.sh index 47547be66..8e1e4398f 100755 --- a/scripts/release_dmg.sh +++ b/scripts/release_dmg.sh @@ -138,6 +138,13 @@ if [[ -d "${SPARKLE_DIR}" ]]; then "${SPARKLE_DIR}/XPCServices/Downloader.xpc" fi if [[ -f "${SPARKLE_DIR}/Autoupdate" ]]; then + # Sparkle ships Autoupdate as a universal (arm64+x86_64) binary even in + # its latest release. Dayflow itself is arm64-only, so the leftover + # x86_64 slice serves no purpose here and triggers macOS's "Support + # Ending for Intel-based Apps" deprecation warning on Apple Silicon. + if lipo -info "${SPARKLE_DIR}/Autoupdate" 2>/dev/null | grep -q x86_64; then + lipo -thin arm64 "${SPARKLE_DIR}/Autoupdate" -output "${SPARKLE_DIR}/Autoupdate" + fi codesign -vvv --force -o runtime --sign "${SIGN_ID}" \ "${SPARKLE_DIR}/Autoupdate" fi