Skip to main content
このアプリは Sparkle による自動更新を同梱しています。リリース ビルドは、Developer ID で署名し、zip 化したうえで、署名済みの appcast エントリと一緒に公開する必要があります。

前提条件

  • Developer ID Application 証明書がインストールされていること(例: Developer ID Application: <Developer Name> (<TEAMID>))。
  • Sparkle の秘密鍵パスを SPARKLE_PRIVATE_KEY_FILE として環境変数に設定していること(Sparkle の ed25519 秘密鍵へのパス。公開鍵は Info.plist に組み込まれます)。見つからない場合は ~/.profile を確認してください。
  • Gatekeeper で安全な DMG / zip 配布を行う場合は、xcrun notarytool 用の認証情報(キーチェーン プロファイルまたは API キー)が必要です。
    • 使用しているキーチェーン プロファイル名は openclaw-notary です。これはシェル プロファイル内の App Store Connect API キー環境変数から作成します。
      • 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 ツールは apps/macos/.build/artifacts/sparkle/Sparkle/bin/ に SwiftPM 経由で自動取得されます(sign_updategenerate_appcast など)。

ビルドとパッケージ化

注意:
  • APP_BUILDCFBundleVersion / sparkle:version に対応します。Sparkle の比較が正しく動くよう、数値のみで単調増加にしてください(-beta は不可)。
  • APP_BUILD を省略した場合、scripts/package-mac-app.shAPP_VERSION から Sparkle 安全な既定値を導出します(YYYYMMDDNN 形式。安定版は 90、プレリリースはサフィックス由来のレーンを使用)。その値と git のコミット数を比較し、大きい方を採用します。
  • リリース エンジニアリング上、特定の単調増加値が必要であれば、APP_BUILD を明示的に上書きできます。
  • BUILD_CONFIG=release の場合、scripts/package-mac-app.sh は既定でユニバーサル ビルド(arm64 x86_64)になります。必要であれば BUILD_ARCHS=arm64 または BUILD_ARCHS=x86_64 で上書きできます。ローカル / 開発ビルド(BUILD_CONFIG=debug)では、既定で現在のアーキテクチャ($(uname -m))を使用します。
  • リリース用アーティファクト(zip + DMG + 公証)には scripts/package-mac-dist.sh を使います。ローカル / 開発用のパッケージングには scripts/package-mac-app.sh を使ってください。

appcast エントリ

Sparkle が整形済み HTML のリリース ノートを表示できるよう、リリース ノート生成スクリプトを使用します。
このスクリプトは CHANGELOG.md から HTML リリース ノートを生成し(scripts/changelog-to-html.sh 経由)、appcast エントリへ埋め込みます。公開時には、更新済みの appcast.xml をリリース アセット(zip + dSYM)と一緒にコミットしてください。

公開と検証

  • OpenClaw-2026.3.9.zip(および OpenClaw-2026.3.9.dSYM.zip)を、タグ v2026.3.9 の GitHub リリースへアップロードします。
  • 生の appcast URL がアプリに組み込まれたフィード 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 を返すこと
    • 以前の公開ビルドで About タブから Check for Updates… を実行し、Sparkle が新しいビルドを正常にインストールできること
完了条件: 署名済みアプリと appcast が公開されており、古いインストール済みバージョンから更新フローが正常に動作し、リリース アセットが GitHub リリースへ添付されていることです。