From 9c5b6d33bd02c01819005a64304b89d53f16d937 Mon Sep 17 00:00:00 2001 From: ledhed2222 Date: Sat, 6 Dec 2025 23:37:19 -0500 Subject: [PATCH 1/2] Fix macOS signing: add hardened runtime and prevent jpackage recursion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Build app bundle first with jpackage --type app-image - Sign all nested binaries with hardened runtime (required for notarization) - Create DMG from pre-signed app bundle using hdiutil - Add cleanup step to prevent infinite recursion in jpackage - Improve notarization error reporting with detailed logs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/build-installers.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-installers.yaml b/.github/workflows/build-installers.yaml index 22fc740..9014e69 100644 --- a/.github/workflows/build-installers.yaml +++ b/.github/workflows/build-installers.yaml @@ -61,6 +61,9 @@ jobs: CERT_IDENTITY=$(security find-identity -v -p codesigning | grep "Developer ID Application" | head -1 | sed -n 's/.*"\(.*\)"/\1/p') echo "Using certificate: $CERT_IDENTITY" + # Remove any existing app bundle to prevent recursion + rm -rf target/EWItool.app + # First create just the app-image (app bundle), not DMG yet jpackage \ --type app-image \ From 1c7c63391447ed5783d6b1766c923f4cd032f9ce Mon Sep 17 00:00:00 2001 From: ledhed2222 Date: Sat, 6 Dec 2025 23:57:09 -0500 Subject: [PATCH 2/2] Use clean input directory for jpackage to prevent recursion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create jpackage-input directory with only the JAR file - Prevents jpackage from including cached artifacts from target directory 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/build-installers.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-installers.yaml b/.github/workflows/build-installers.yaml index 9014e69..4dc9f17 100644 --- a/.github/workflows/build-installers.yaml +++ b/.github/workflows/build-installers.yaml @@ -61,14 +61,19 @@ jobs: CERT_IDENTITY=$(security find-identity -v -p codesigning | grep "Developer ID Application" | head -1 | sed -n 's/.*"\(.*\)"/\1/p') echo "Using certificate: $CERT_IDENTITY" - # Remove any existing app bundle to prevent recursion + # Create clean input directory with only the JAR file + rm -rf jpackage-input + mkdir -p jpackage-input + cp target/EWItool-${{ steps.version.outputs.version }}.jar jpackage-input/ + + # Remove any existing app bundle rm -rf target/EWItool.app # First create just the app-image (app bundle), not DMG yet jpackage \ --type app-image \ --name EWItool \ - --input target \ + --input jpackage-input \ --main-jar EWItool-${{ steps.version.outputs.version }}.jar \ --main-class com.github.ledhed2222.ewitool.Main \ --dest target \