Skip to main content

OpenClaw macOS リリース(Sparkle)

このアプリは現在 Sparkle による自動アップデートを提供しています。リリースビルドは Developer ID で署名し、zip 化し、署名済みの appcast エントリーとともに公開する必要があります。 このアプリは現在 Sparkle による自動アップデートを提供しています。リリースビルドは Developer ID で署名し、zip 化し、署名済みの appcast エントリーとともに公開する必要があります。 リリース ビルドは、開発者ID、署名された appcast エントリを含む、zipped およびパブリッシュされる必要があります。

Prereq

  • Developer ID Application 証明書がインストールされていること(例: Developer ID Application: <Developer Name> (<TEAMID>))。
  • Sparkle の秘密鍵パスが環境変数として SPARKLE_PRIVATE_KEY_FILE に設定されていること(Sparkle ed25519 秘密鍵へのパス。公開鍵は Info.plist に埋め込まれています)。見つからない場合は ~/.profile を確認してください。 見つからない場合は、~/.profile を確認してください。 見つからない場合は、~/.profile を確認してください。
  • Gatekeeper 対応の DMG / zip 配布を行う場合は、xcrun notarytool 用の Notary 資格情報(キーチェーンプロファイルまたは API キー)があること。
    • App Store Connect API キーの環境変数をシェルプロファイルに設定して作成した、openclaw-notary という名前のキーチェーンプロファイルを使用しています:
      • APP_STORE_CONNECT_API_KEY_P8, APP_STORE_CONNECT_KEY_ID, APP_STORE_CONNECT_ISSUER_ID
      • echo "$APP_STORE_CONNECT_API_KEY_P8" | sed 's/\\n/\n/g' > /tmp/openclaw-notary.p8
      • xcrun notarytool store-credentials "openclaw-notary" --key /tmp/openclaw-notary.p8 --key-id "$APP_STORE_CONNECT_KEY_ID" --issuer "$APP_STORE_CONNECT_ISSUER_ID"
  • pnpm の依存関係がインストールされていること(pnpm install --config.node-linker=hoisted)。
  • Sparkle ツールは SwiftPM により apps/macos/.build/artifacts/sparkle/Sparkle/bin/ で自動取得されます(sign_update, generate_appcast など)。

ビルドとパッケージング

注記:
  • APP_BUILDCFBundleVersion/sparkle:version にマッピングされます。数値かつ単調増加(-beta なし)にしてください。そうしないと Sparkle が同一と比較します。
  • デフォルトは現在のアーキテクチャ ($(uame -m)) です。 デフォルトは現在のアーキテクチャ ($(uame -m)) です。 デフォルトでは現在のアーキテクチャ($(uname -m))を使用します。リリース / ユニバーサルビルドの場合は BUILD_ARCHS="arm64 x86_64"(または BUILD_ARCHS=all)を設定してください。
  • リリースアーティファクト(zip + DMG + 公証)には scripts/package-mac-dist.sh を使用してください。ローカル / 開発用のパッケージングには scripts/package-mac-app.sh を使用します。 local/devパッケージにはscripts/package-mac-app.shを使用します。 local/devパッケージにはscripts/package-mac-app.shを使用します。

Appcast エントリー

Sparkle が整形された HTML リリースノートをレンダリングできるよう、リリースノート生成ツールを使用してください:
これは scripts/changelog-to-html.sh を介して CHANGELOG.md から HTML リリースノートを生成し、appcast エントリーに埋め込みます。 公開時には、更新された appcast.xml をリリースアセット(zip + dSYM)とともにコミットしてください。 公開時に、更新された appcast.xml をリリースアセット (zip + dSYM) と一緒にコミットします。 公開時に、更新された appcast.xml をリリースアセット (zip + dSYM) と一緒にコミットします。

公開と検証

  • OpenClaw-2026.2.9.zip(および OpenClaw-2026.2.9.dSYM.zip)をタグ v2026.2.9 の GitHub リリースにアップロードしてください。
  • 生の appcast URL がビルド時に組み込まれたフィードと一致していることを確認してください: https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml
  • 簡易チェック:
    • curl -I https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml が 200 を返すこと。
    • アセットのアップロード後に curl -I <enclosure url> が 200 を返すこと。
    • 以前の公開ビルドで、「Check for Updates…」を About タブから実行し、Sparkle が新しいビルドを問題なくインストールすることを確認してください。
完了の定義: 署名済みアプリと appcast が公開され、古いインストール済みバージョンからのアップデートフローが正常に動作し、リリースアセットが GitHub リリースに添付されていること。