fix: v1.0.1 fix
This commit is contained in:
+2
-2
@@ -4,11 +4,11 @@
|
|||||||
<title>Meetingnotes</title>
|
<title>Meetingnotes</title>
|
||||||
<item>
|
<item>
|
||||||
<title>1.0.1</title>
|
<title>1.0.1</title>
|
||||||
<pubDate>Mon, 14 Jul 2025 18:29:29 -0400</pubDate>
|
<pubDate>Mon, 14 Jul 2025 18:59:45 -0400</pubDate>
|
||||||
<sparkle:version>6</sparkle:version>
|
<sparkle:version>6</sparkle:version>
|
||||||
<sparkle:shortVersionString>1.0.1</sparkle:shortVersionString>
|
<sparkle:shortVersionString>1.0.1</sparkle:shortVersionString>
|
||||||
<sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
|
<sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
|
||||||
<enclosure url="https://github.com/owengretzinger/meetingnotes/releases/download/v1.0.1/Meetingnotes-1.0.1.dmg" length="9243996" type="application/octet-stream" sparkle:edSignature="DdOajgRdCWz+am3/caB7iy2KMfR9zFVxRkoZGCM4m+wQCRECTo2b46NLZYzzZNhaetYuQKht2dFAdflcWDDVDg=="/>
|
<enclosure url="https://github.com/owengretzinger/meetingnotes/releases/download/v1.0.1/Meetingnotes-1.0.1.zip" length="9452933" type="application/octet-stream" sparkle:edSignature="PtT6DZ3tLLRpi4QO2jj0Gho/MDMvKfY13ts+0n/x7q1kG0l3alclnWrB5tOfyYm1On2VdlcSbqbfq0gvbobgBw=="/>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<title>1.0.0</title>
|
<title>1.0.0</title>
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
+28
-13
@@ -173,6 +173,19 @@ create-dmg \
|
|||||||
|
|
||||||
echo "✅ DMG created: $RELEASES_DIR/$DMG_NAME"
|
echo "✅ DMG created: $RELEASES_DIR/$DMG_NAME"
|
||||||
|
|
||||||
|
# 🔖 -------------------------------------------------
|
||||||
|
# NEW: Create a ZIP archive for Sparkle auto-updates
|
||||||
|
# --------------------------------------------------
|
||||||
|
ZIP_NAME="${APP_NAME}-${VERSION}.zip"
|
||||||
|
|
||||||
|
echo "📦 Creating ZIP archive for Sparkle auto-updates..."
|
||||||
|
# Keep parent so the archive extracts directly to the app bundle
|
||||||
|
# ditto preserves resource forks and extended attributes that Gatekeeper expects
|
||||||
|
|
||||||
|
ditto -c -k --keepParent "$APP_PATH" "$RELEASES_DIR/$ZIP_NAME"
|
||||||
|
|
||||||
|
echo "✅ ZIP created: $RELEASES_DIR/$ZIP_NAME"
|
||||||
|
|
||||||
# 📡 Notarization (required for all production builds)
|
# 📡 Notarization (required for all production builds)
|
||||||
echo "📡 Starting notarization process..."
|
echo "📡 Starting notarization process..."
|
||||||
|
|
||||||
@@ -198,24 +211,25 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Generate appcast with signatures - only process current version to avoid URL corruption
|
# Generate appcast with signatures - only process current version to avoid URL corruption
|
||||||
echo "📡 Generating appcast with EdDSA signatures..."
|
# -----------------------------------------------------------------------------
|
||||||
|
# We only want the .zip in our appcast. Move DMGs out temporarily so they are
|
||||||
|
# not picked up by generate_appcast.
|
||||||
|
|
||||||
# Temporarily move old DMGs to avoid URL corruption
|
echo "📡 Generating appcast with EdDSA signatures (ZIP only)..."
|
||||||
echo "📦 Temporarily moving old DMGs to preserve their URLs..."
|
|
||||||
mkdir -p "$RELEASES_DIR/temp_old"
|
echo "📦 Temporarily moving DMGs so generate_appcast only sees ZIP archives..."
|
||||||
find "$RELEASES_DIR" -name "*.dmg" ! -name "$DMG_NAME" -exec mv {} "$RELEASES_DIR/temp_old/" \;
|
mkdir -p "$RELEASES_DIR/temp_dmg"
|
||||||
|
find "$RELEASES_DIR" -name "*.dmg" -exec mv {} "$RELEASES_DIR/temp_dmg/" \;
|
||||||
|
|
||||||
# Generate appcast (will only see current DMG + existing appcast.xml)
|
|
||||||
/opt/homebrew/Caskroom/sparkle/2.7.1/bin/generate_appcast "$RELEASES_DIR" \
|
/opt/homebrew/Caskroom/sparkle/2.7.1/bin/generate_appcast "$RELEASES_DIR" \
|
||||||
--download-url-prefix "https://github.com/owengretzinger/meetingnotes/releases/download/v${VERSION}/" \
|
--download-url-prefix "https://github.com/owengretzinger/meetingnotes/releases/download/v${VERSION}/" \
|
||||||
-o "appcast.xml"
|
-o "appcast.xml"
|
||||||
|
|
||||||
# Move old DMGs back
|
echo "📦 Restoring DMGs..."
|
||||||
echo "📦 Restoring old DMGs..."
|
if [ -d "$RELEASES_DIR/temp_dmg" ] && [ "$(ls -A "$RELEASES_DIR/temp_dmg")" ]; then
|
||||||
if [ -d "$RELEASES_DIR/temp_old" ] && [ "$(ls -A "$RELEASES_DIR/temp_old")" ]; then
|
mv "$RELEASES_DIR/temp_dmg"/* "$RELEASES_DIR/"
|
||||||
mv "$RELEASES_DIR/temp_old"/* "$RELEASES_DIR/"
|
|
||||||
fi
|
fi
|
||||||
rmdir "$RELEASES_DIR/temp_old"
|
rmdir "$RELEASES_DIR/temp_dmg"
|
||||||
|
|
||||||
echo "📝 Note: Make sure to upload the DMG to GitHub releases with the correct tag (v${VERSION})"
|
echo "📝 Note: Make sure to upload the DMG to GitHub releases with the correct tag (v${VERSION})"
|
||||||
|
|
||||||
@@ -225,10 +239,11 @@ echo "✅ Appcast generated: appcast.xml"
|
|||||||
echo ""
|
echo ""
|
||||||
echo "📊 Release Summary:"
|
echo "📊 Release Summary:"
|
||||||
echo " Version: $VERSION"
|
echo " Version: $VERSION"
|
||||||
|
echo " ZIP: $ZIP_NAME ($(du -h "$RELEASES_DIR/$ZIP_NAME" | cut -f1))"
|
||||||
echo " DMG: $DMG_NAME ($(du -h "$RELEASES_DIR/$DMG_NAME" | cut -f1))"
|
echo " DMG: $DMG_NAME ($(du -h "$RELEASES_DIR/$DMG_NAME" | cut -f1))"
|
||||||
echo " Location: $RELEASES_DIR/$DMG_NAME"
|
echo " Location: $RELEASES_DIR"
|
||||||
echo " Code Signing: ✅ Production (Owen's Developer ID)"
|
echo " Code Signing: ✅ Production (Owen's Developer ID)"
|
||||||
echo " Notarization: ✅ Complete"
|
echo " Notarization (DMG): ✅ Complete"
|
||||||
echo ""
|
echo ""
|
||||||
echo "🎉 Production release ready! Next steps:"
|
echo "🎉 Production release ready! Next steps:"
|
||||||
echo " 1. Test the DMG on another Mac"
|
echo " 1. Test the DMG on another Mac"
|
||||||
|
|||||||
Reference in New Issue
Block a user