OpenClawSkills
GitHub
プラットフォーム • 5分で読める

macOS Release

OpenClaw macOS release checklist (Sparkle feed, packaging, signing)

このアプリは現在 Sparkle 自動更新を提供しています。リリースビルドは Developer ID で署名され、圧縮され、署名された appcast エントリで公開する必要があります。

Tutorial.step

Prereqs

- Developer ID Application cert installed (example: ''Developer ID Application: <Developer Name> (<TEAMID>)'').

- Sparkle 秘密鍵のパスが ''SPARKLE_PRIVATE_KEY_FILE'' として環境変数に設定されています(Sparkle ed25519 秘密鍵へのパス;公開鍵は Info.plist に組み込まれています)。欠落している場合は、''~/.profile'' を確認してください。

- Gatekeeper セーフな DMG/zip 配布を行う場合、''xcrun notarytool'' の認証情報(キーチェーンプロファイルまたは 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'' など)。

Tutorial.step

ビルドとパッケージ化

Notes:

- ''APP_BUILD'' は ''CFBundleVersion''/''sparkle:version'' にマップされます。数値と単調(''-beta'' なし)に保ってください。そうしないと、Sparkle はそれを等しいと比較します。

- デフォルトは現在のアーキテクチャ(''$(uname -m)'')です。リリース/ユニバーサルビルドの場合、''BUILD_ARCHS="arm64 x86_64"'' を設定します(または ''BUILD_ARCHS=all'')。

- リリースアーティファクト(zip + DMG + 認証)には ''scripts/package-mac-dist.sh'' を使用します。ローカル/開発パッケージ化には ''scripts/package-mac-app.sh'' を使用します。

Bash
BUNDLE_ID=bot.molt.mac \
APP_VERSION=2026.1.27-beta.1 \
APP_BUILD="$(git rev-list --count HEAD)" \
BUILD_CONFIG=release \
SIGN_IDENTITY="Developer ID Application: '<Developer Name>' ('<TEAMID>')" \
scripts/package-mac-app.sh


ditto -c -k --sequesterRsrc --keepParent dist/OpenClaw.app dist/OpenClaw-2026.1.27-beta.1.zip


scripts/create-dmg.sh dist/OpenClaw.app dist/OpenClaw-2026.1.27-beta.1.dmg




NOTARIZE=1 NOTARYTOOL_PROFILE=openclaw-notary \
BUNDLE_ID=bot.molt.mac \
APP_VERSION=2026.1.27-beta.1 \
APP_BUILD="$(git rev-list --count HEAD)" \
BUILD_CONFIG=release \
SIGN_IDENTITY="Developer ID Application: '<Developer Name>' ('<TEAMID>')" \
scripts/package-mac-dist.sh


ditto -c -k --keepParent apps/macos/.build/release/OpenClaw.app.dSYM dist/OpenClaw-2026.1.27-beta.1.dSYM.zip
Tutorial.step

Appcast エントリ

リリースノートジェネレーターを使用して、Sparkle がフォーマットされた HTML ノートをレンダリングするようにします:

Bash
SPARKLE_PRIVATE_KEY_FILE=/path/to/ed25519-private-key scripts/make_appcast.sh dist/OpenClaw-2026.1.27-beta.1.zip https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml

''CHANGELOG.md'' から HTML リリースノートを生成し(''''scripts/changelog-to-html.sh'''' を介して)、appcast エントリに埋め込みます。

公開時に更新された ''appcast.xml'' をリリースアーティファクト(zip + dSYM)と一緒にコミットします。

Tutorial.step

公開と検証

- ''OpenClaw-2026.1.27-beta.1.zip''(および ''OpenClaw-2026.1.27-beta.1.dSYM.zip'')をタグ ''v2026.1.27-beta.1'' の 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>'' returns 200 after assets upload.

- 以前の公開ビルドで、[バージョン情報] タブから [更新を確認...] を実行し、Sparkle が新しいビルドをクリーンにインストールすることを確認します。

完了の定義:署名されたアプリ + appcast が公開され、古いインストール済みバージョンから更新フローが機能し、リリースアーティファクトが GitHub リリースに添付されています。