6 Commits

Author SHA1 Message Date
Micha
b570006074 chore: release 26.0.30 2025-12-07 17:48:38 +01:00
Micha
fd0d8d1adb Sparkle fixes 2025-12-07 17:46:59 +01:00
Micha
78d5bd9bd5 chore: release 26.0.29 2025-12-07 17:07:33 +01:00
Micha
091fd4ef38 Sparkle fixes 2025-12-07 17:05:51 +01:00
Micha
656d6403fd chore: release 26.0.28 2025-12-07 17:02:20 +01:00
Micha
db4c2aa930 Sparkle fixes 2025-12-07 16:52:13 +01:00
6 changed files with 59 additions and 35 deletions

View File

@@ -26,6 +26,8 @@ struct InfoCell: View {
.font(monospaced ? .system(.body, design: .monospaced) : .body)
}
}
// if let subtext {
// Text(subtext)
// .font(.caption)

30
Sparkle/appcast.xml vendored
View File

@@ -3,28 +3,28 @@
<channel>
<title>iKeyMon</title>
<item>
<title>26.0.27</title>
<pubDate>Sun, 07 Dec 2025 16:47:33 +0100</pubDate>
<sparkle:version>57</sparkle:version>
<sparkle:shortVersionString>26.0.27</sparkle:shortVersionString>
<title>26.0.30</title>
<pubDate>Sun, 07 Dec 2025 17:48:37 +0100</pubDate>
<sparkle:version>63</sparkle:version>
<sparkle:shortVersionString>26.0.30</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>15.2</sparkle:minimumSystemVersion>
<enclosure url="https://git.24unix.net/tracer/iKeyMon/releases/download/iKeyMon-26.0.27.zip" length="4811492" type="application/octet-stream" sparkle:edSignature="6aEv0ii20pAkIl8kYWNkHM7+8APyDQtsus0SkF3C7/7q2X73HAsrsskNXjiiq0YF6bPVNAEs5y8G8GpwmerrCw=="/>
<enclosure url="https://git.24unix.net/tracer/iKeyMon/releases/download/iKeyMon-26.0.30.zip" length="4811494" type="application/octet-stream" sparkle:edSignature="x+Ot/ksA2mzYThyC0dRpYJEy2bmfYBTiSO0FCtwvyqQ+HibLonO0v6HxZH0bUsStWQkNnbURR6tHYWGkOzO3Bw=="/>
</item>
<item>
<title>26.0.21</title>
<pubDate>Wed, 26 Nov 2025 18:44:41 +0100</pubDate>
<sparkle:version>49</sparkle:version>
<sparkle:shortVersionString>26.0.21</sparkle:shortVersionString>
<title>26.0.29</title>
<pubDate>Sun, 07 Dec 2025 17:07:32 +0100</pubDate>
<sparkle:version>61</sparkle:version>
<sparkle:shortVersionString>26.0.29</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>15.2</sparkle:minimumSystemVersion>
<enclosure url="https://git.24unix.net/tracer/iKeyMon/releases/download/v26.0.21/iKeyMon-26.0.21.zip" length="4802995" type="application/octet-stream" sparkle:edSignature="bYXN15YyKlSmHKNXPizEW2WrVXQSgD5XOgbtzOYNL+maG8DB/jZ08A+cYtGgqUeSRd+X6Z5Ue+Tpdn4/ewsFBw=="/>
<enclosure url="https://git.24unix.net/tracer/iKeyMon/releases/download/v26.0.29/iKeyMon-26.0.29.zip" length="4811507" type="application/octet-stream" sparkle:edSignature="eRH4M8hEYa9gYiyjAVtTpXN3T1o+OGadDRMQu4kHL/dbJ2vj/5pY1+am9/9qG33Qairt3Od/6/WKLyxxs4mWCw=="/>
</item>
<item>
<title>26.0.20</title>
<pubDate>Wed, 26 Nov 2025 18:36:41 +0100</pubDate>
<sparkle:version>47</sparkle:version>
<sparkle:shortVersionString>26.0.20</sparkle:shortVersionString>
<title>26.0.28</title>
<pubDate>Sun, 07 Dec 2025 17:02:18 +0100</pubDate>
<sparkle:version>59</sparkle:version>
<sparkle:shortVersionString>26.0.28</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>15.2</sparkle:minimumSystemVersion>
<enclosure url="https://git.24unix.net/tracer/iKeyMon/releases/download/v26.0.20/iKeyMon-26.0.20.zip" length="4802865" type="application/octet-stream" sparkle:edSignature="hCJu2I1Db/TaU6pCs1gZi9EO5igr49Fjt/VNnyD8+jm45WINuhzGc4lShcLPxUQTy4iNHnVhmOPYwlthVMXPAg=="/>
<enclosure url="https://git.24unix.net/tracer/iKeyMon/releases/download/v26.0.28/iKeyMon-26.0.28.zip" length="4811473" type="application/octet-stream" sparkle:edSignature="tF188T0m/j22MStCVbVkrf2JllyZ9wiEmc++kgF4GTKhoAuHURYvT/Euy+ivEodmQ/LzeFolN4lViqaVa3y+DQ=="/>
</item>
</channel>
</rss>

View File

@@ -3,9 +3,11 @@ set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
REMOTE_NAME="${1:-origin}"
QUIET_RELEASE="${QUIET_RELEASE:-1}"
RELEASE_LOG="${RELEASE_LOG:-$ROOT_DIR/build/release.log}"
if [[ -n "${SKIP_RELEASE:-}" ]]; then
echo "⚙️ SKIP_RELEASE set — skipping automated release build."
echo "release: skipped (SKIP_RELEASE=1)"
exit 0
fi
@@ -34,29 +36,49 @@ if [[ "$should_release" != true ]]; then
exit 0
fi
echo "🚀 Detected push to master — bumping version and building release..."
NEW_VERSION="$("$ROOT_DIR/scripts/bump_version.sh")"
echo "🔢 marketing_version -> ${NEW_VERSION}"
"$ROOT_DIR/scripts/sync_version.sh"
if [[ "$QUIET_RELEASE" == "1" ]]; then
mkdir -p "$(dirname "$RELEASE_LOG")"
: >"$RELEASE_LOG"
fi
run_logged() {
if [[ "$QUIET_RELEASE" == "1" ]]; then
"$@" >>"$RELEASE_LOG" 2>&1
else
"$@"
fi
}
if [[ "$QUIET_RELEASE" == "1" ]]; then
NEW_VERSION="$("$ROOT_DIR/scripts/bump_version.sh" 2>>"$RELEASE_LOG" | tee -a "$RELEASE_LOG")"
else
NEW_VERSION="$("$ROOT_DIR/scripts/bump_version.sh")"
fi
run_logged "$ROOT_DIR/scripts/sync_version.sh"
git -C "$ROOT_DIR" add "$ROOT_DIR/version.json" "$ROOT_DIR/iKeyMon.xcodeproj/project.pbxproj"
"$ROOT_DIR/scripts/build_release.sh"
echo "release: building v${NEW_VERSION}..."
if ! run_logged "$ROOT_DIR/scripts/build_release.sh"; then
echo "release: failed (log: $RELEASE_LOG)"
exit 1
fi
git -C "$ROOT_DIR" add "$ROOT_DIR/version.json" "$ROOT_DIR/iKeyMon.xcodeproj/project.pbxproj" "$ROOT_DIR/Sparkle/appcast.xml"
if git -C "$ROOT_DIR" diff --cached --quiet; then
echo "⚠️ No release changes detected; skipping release commit."
echo "release: no changes detected; skipping commit"
else
git -C "$ROOT_DIR" commit -m "chore: release ${NEW_VERSION}"
echo "📝 Committed release ${NEW_VERSION}."
run_logged git -C "$ROOT_DIR" commit -m "chore: release ${NEW_VERSION}" || {
echo "release: commit failed (log: $RELEASE_LOG)"
exit 1
}
fi
echo "📤 Pushing release commit..."
if SKIP_RELEASE=1 git -C "$ROOT_DIR" push "$REMOTE_NAME" "${release_local_ref:-refs/heads/master}:${release_remote_ref:-refs/heads/master}"; then
echo "✅ Release ${NEW_VERSION} pushed. Original push cancelled (already done)."
if SKIP_RELEASE=1 git -C "$ROOT_DIR" push --quiet "$REMOTE_NAME" "${release_local_ref:-refs/heads/master}:${release_remote_ref:-refs/heads/master}"; then
echo "release: success v${NEW_VERSION}"
exit 1
else
echo "❌ Failed to push release ${NEW_VERSION}. Please resolve manually."
echo "release: push failed (log: $RELEASE_LOG)"
exit 1
fi

View File

@@ -310,7 +310,7 @@
CODE_SIGN_ENTITLEMENTS = iKeyMon.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 57;
CURRENT_PROJECT_VERSION = 63;
DEVELOPMENT_ASSET_PATHS = "\"Preview Content\"";
DEVELOPMENT_TEAM = Q5486ZVAFT;
ENABLE_HARDENED_RUNTIME = YES;
@@ -325,7 +325,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 26.0.27;
MARKETING_VERSION = 26.0.30;
PRODUCT_BUNDLE_IDENTIFIER = net.24unix.iKeyMon;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -341,7 +341,7 @@
CODE_SIGN_ENTITLEMENTS = iKeyMon.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 57;
CURRENT_PROJECT_VERSION = 63;
DEVELOPMENT_ASSET_PATHS = "\"Preview Content\"";
DEVELOPMENT_TEAM = Q5486ZVAFT;
ENABLE_HARDENED_RUNTIME = YES;
@@ -356,7 +356,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 26.0.27;
MARKETING_VERSION = 26.0.30;
PRODUCT_BUNDLE_IDENTIFIER = net.24unix.iKeyMon;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;

View File

@@ -32,8 +32,8 @@ generate_appcast() {
local download_prefix=""
if [[ -n "${SPARKLE_DOWNLOAD_BASE_TEMPLATE:-}" ]]; then
download_prefix="${SPARKLE_DOWNLOAD_BASE_TEMPLATE//\{\{VERSION\}\}/$VERSION}"
else
download_prefix="${SPARKLE_DOWNLOAD_BASE_URL:-}"
elif [[ -n "${SPARKLE_DOWNLOAD_BASE_URL:-}" ]]; then
download_prefix="${SPARKLE_DOWNLOAD_BASE_URL%/}/v${VERSION}"
fi
if [[ -z "$generator" || -z "${SPARKLE_EDDSA_KEY_FILE:-}" || -z "$download_prefix" ]]; then

View File

@@ -1,3 +1,3 @@
{
"marketing_version": "26.0.27"
"marketing_version": "26.0.30"
}