From 9bdd928469f1f4e37b16aef40f4f7f19514a5b2c Mon Sep 17 00:00:00 2001 From: Alan Wizemann Date: Thu, 16 Apr 2026 18:59:41 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20release=20script=20=E2=80=94=20rename=20?= =?UTF-8?q?scarf.app=20=E2=86=92=20Scarf.app=20after=20export?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Xcode exports the bundle as scarf.app because PRODUCT_NAME = $TARGET_NAME and the target is lowercase "scarf". Users expect Scarf.app in their /Applications folder. Renaming the bundle wrapper preserves the signature (codesign signs contents, not the wrapper directory name). Caught during a build+sign+verify dry run before the first notarized release. Co-Authored-By: Claude Opus 4.6 --- scripts/release.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/release.sh b/scripts/release.sh index 4b4eaab..c2d1e47 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -106,8 +106,15 @@ xcodebuild \ -exportPath "$EXPORT_DIR" \ -exportOptionsPlist "$EXPORT_OPTIONS" +# Xcode exports as scarf.app (PRODUCT_NAME = $TARGET_NAME = "scarf"). Rename the +# wrapper to Scarf.app so users see properly-cased app in /Applications. Renaming +# the bundle directory does NOT invalidate the signature (codesign signs contents, +# not the wrapper folder name). +if [[ -d "$EXPORT_DIR/scarf.app" && ! -d "$EXPORT_DIR/Scarf.app" ]]; then + mv "$EXPORT_DIR/scarf.app" "$EXPORT_DIR/Scarf.app" +fi APP_PATH="$EXPORT_DIR/Scarf.app" -[[ -d "$APP_PATH" ]] || die "exported app not found at $APP_PATH (expected Scarf.app — confirm PRODUCT_NAME)" +[[ -d "$APP_PATH" ]] || die "exported app not found at $APP_PATH" # ---------- verify signature ---------- log "Verify signature"