diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 80ecf60..eb1347c 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -29,64 +29,13 @@ jobs: run: npm install working-directory: simpliplay - # This step creates the DMG for all three architectures. - # The output DMGs are typically in 'dist/' but let's not assume. - - name: Create unsigned DMGs with UI for all architectures + - name: Create DMGs run: npx electron-builder --mac --x64 --arm64 --universal working-directory: simpliplay - # This is the key step that signs and converts all three DMGs. - # It dynamically finds the DMG files wherever they are. - - name: Sign and finalize DMGs - run: | - # Use a dynamic find command to locate all DMG files in the 'dist' directory. - DMGS=$(find dist -name "*.dmg" -print) - - if [ -z "$DMGS" ]; then - echo "No DMG files found. Check your electron-builder configuration." - exit 1 - fi - - # Loop through each DMG file found - for DMG_PATH in $DMGS; do - echo "Processing DMG: $DMG_PATH" - - # The mount point needs to be a temporary path. - MOUNT_PATH="/Volumes/temp-dmg-mount" - - # Attach the DMG as a read/write volume. - # Using -quiet to reduce verbose output - hdiutil attach "$DMG_PATH" -mountpoint "$MOUNT_PATH" -quiet - - # The app bundle path inside the mounted DMG. - # We hardcode the app name "SimpliPlay.app" because it's a constant. - APP_PATH="$MOUNT_PATH/SimpliPlay.app" - - if [ -d "$APP_PATH" ]; then - # Ad-hoc sign the app bundle inside the mounted DMG. - echo "Ad-hoc signing app bundle at $APP_PATH..." - codesign --force --deep --sign - "$APP_PATH" - else - echo "Error: App bundle not found at $APP_PATH inside the DMG." - hdiutil detach "$MOUNT_PATH" -quiet - exit 1 - fi - - # Unmount the DMG. - hdiutil detach "$MOUNT_PATH" -quiet - - # Define the final output path. - FINAL_DMG_PATH="${DMG_PATH%.dmg}-signed.dmg" - - # Convert the read/write DMG to a final, compressed, read-only DMG. - echo "Converting '$DMG_PATH' to a compressed, read-only DMG: $FINAL_DMG_PATH" - hdiutil convert "$DMG_PATH" -format UDZO -o "$FINAL_DMG_PATH" - done - working-directory: simpliplay - - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: builds # Upload only the final signed DMGs - path: simpliplay/dist/*-signed.dmg + path: simpliplay/dist/*.dmg