OpenClaw macOSリリースの自動化:Sparkleと公証のセットアップ
macOSアプリを公開する際、開発者が一番頭を悩ませるのは「どうやって安全かつ確実にユーザーへ届けるか」という点ではないでしょうか。Appleの署名や公証(Notarization)のプロセス、そして自動アップデートの仕組みを正しく設定するのは、最初の一歩が意外と重いものです。
OpenClawでは、Sparkleを使用した自動アップデートを採用しています。リリースビルドを適切に署名し、公証を受け、appcastを生成するまでの手順をまとめました。
作業を始める前に、以下の準備ができているか確認してください。
- Developer ID Application 証明書: インストール済みであること(例:
Developer ID Application: <Developer Name> (<TEAMID>)) - Sparkle 秘密鍵: 環境変数
SPARKLE_PRIVATE_KEY_FILEにed25519秘密鍵のパスを設定(見当たらない場合は~/.profileを確認してください) - 公証用資格情報:
xcrun notarytool用の Keychain プロファイル、または App Store Connect API キー - pnpm: 依存関係がインストール済みであること(
pnpm install --config.node-linker=hoisted) - Sparkle ツール: SwiftPM経由で
apps/macos/.build/artifacts/sparkle/Sparkle/bin/に自動取得されます
クイックスタート
Section titled “クイックスタート”5分でリリースパッケージを作成するための最小手順です。
1. ビルドとパッケージング
Section titled “1. ビルドとパッケージング”APP_BUILD は Sparkle がバージョン比較に使用するため、必ず数値かつ単調増加(例:2026030701)にする必要があります。省略した場合は、APP_VERSION と git のコミット数から自動生成されます。
# リポジトリのルートで実行BUNDLE_ID=ai.openclaw.mac \APP_VERSION=2026.3.7 \BUILD_CONFIG=release \SIGN_IDENTITY="Developer ID Application: <Developer Name> (<TEAMID>)" \scripts/package-mac-app.sh2. 配布用ファイルの作成と公証
Section titled “2. 配布用ファイルの作成と公証”ユーザーに配布するための Zip と DMG を作成し、Apple による公証を受けます。あらかじめ openclaw-notary プロファイルを作成しておくとスムーズです。
# 公証を含めたビルドとパッケージングNOTARIZE=1 NOTARYTOOL_PROFILE=openclaw-notary \BUNDLE_ID=ai.openclaw.mac \APP_VERSION=2026.3.7 \BUILD_CONFIG=release \SIGN_IDENTITY="Developer ID Application: <Developer Name> (<TEAMID>)" \scripts/package-mac-dist.sh3. Appcast の生成
Section titled “3. Appcast の生成”Sparkle がアップデートを検知するための appcast.xml を更新します。
SPARKLE_PRIVATE_KEY_FILE=/path/to/ed25519-private-key scripts/make_appcast.sh dist/OpenClaw-2026.3.7.zip https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml4. 公開と検証
Section titled “4. 公開と検証”- GitHub リリースのタグ(例:
v2026.3.7)にOpenClaw-2026.3.7.zipをアップロードします。 appcast.xmlをリポジトリにコミットします。- 以前のバージョンから「アップデートを確認…」を実行し、正しくインストールされるか確認してください。
トラブルシューティング
Section titled “トラブルシューティング”よくある問題と解決策です。
- アップデートが検知されない:
APP_BUILDが数値であり、前のバージョンより大きい値であることを確認してください。-betaなどの文字列が含まれると、Sparkle は正しく比較できません。 - 署名エラー:
SPARKLE_PRIVATE_KEY_FILEが正しく設定されているか確認してください。環境変数が読み込まれていない場合は、~/.profileやシェル設定ファイルをチェックします。 - 公証プロファイルの作成: API キーを使用してプロファイルを作成するには、以下のコマンドを実行します。
echo "$APP_STORE_CONNECT_API_KEY_P8" | sed 's/\\n/\n/g' > /tmp/openclaw-notary.p8xcrun notarytool store-credentials "openclaw-notary" --key /tmp/openclaw-notary.p8 --key-id "$APP_STORE_CONNECT_KEY_ID" --issuer "$APP_STORE_CONNECT_ISSUER_ID"セットアップで困ったことがあれば、AI Setup Assistant に相談してください。
次のステップ
Section titled “次のステップ”OpenClaw Expert
まだ解決しませんか?
このページで解決しない場合は、OpenClaw Expertに直接質問してください。