macOS companion app

macOS の署名

mac 署名(デバッグビルド)

scripts/package-mac-app.sh はアプリをビルドして固定パス(dist/OpenClaw.app)にパッケージ化し、その後 scripts/codesign-mac-app.sh を呼び出して署名します。TCC 権限はバンドル ID とコード署名に関連付けられています。再ビルド時に両方を安定させ(さらにアプリを固定パスに配置し)続けることで、macOS が TCC の許可(通知、アクセシビリティ、画面収録、マイク、音声認識)を忘れないようにします。

  • デバッグ用バンドル識別子のデフォルトは ai.openclaw.mac.debug です(BUNDLE_ID=... で上書きできます)。
  • Node: >=22.22.3 <23>=24.15.0 <25、または >=25.9.0(リポジトリの package.json engines)。パッケージャーは Control UI(pnpm ui:build)もビルドします。
  • デフォルトでは実際の署名 ID が必要です。署名 ID が見つからず、ALLOW_ADHOC_SIGNING が設定されていない場合、codesign スクリプトはエラーで終了します。アドホック署名(SIGN_IDENTITY="-")は明示的なオプトインであり、再ビルド後も TCC 権限を維持することはできません。macOS の権限を参照してください。
  • 環境から SIGN_IDENTITY を読み取ります(例: export SIGN_IDENTITY="Apple Development: Your Name (TEAMID)"、または Developer ID Application 証明書)。指定されていない場合、codesign-mac-app.sh は Developer ID Application、Apple Distribution、Apple Development、最初に見つかった有効なコード署名 ID の順に ID を自動選択します。
  • CODESIGN_TIMESTAMP=auto(デフォルト)は、Developer ID Application 署名の場合にのみ信頼できるタイムスタンプを有効にします。いずれかの動作を強制するには、on/off を設定します。
  • About タブでビルド、git、デバッグ/リリースチャンネルを表示できるように、Info.plist に OpenClawBuildTimestamp(ISO8601 UTC)と OpenClawGitCommit(短縮ハッシュ、取得できない場合は unknown)を記録します。
  • 署名後に Team ID の監査を実行し、バンドル内のいずれかの Mach-O の Team ID が異なる場合は失敗します。回避するには SKIP_TEAM_ID_CHECK=1 を設定します。

使用方法

bash
# リポジトリのルートからscripts/package-mac-app.sh                                                      # ID を自動選択。見つからない場合はエラーSIGN_IDENTITY="Developer ID Application: Your Name" scripts/package-mac-app.sh   # 実際の証明書ALLOW_ADHOC_SIGNING=1 scripts/package-mac-app.sh                                 # アドホック(権限は維持されません)SIGN_IDENTITY="-" scripts/package-mac-app.sh                                     # 明示的なアドホック(同じ注意事項が適用されます)DISABLE_LIBRARY_VALIDATION=1 scripts/package-mac-app.sh                          # 開発専用の Sparkle Team ID 不一致の回避策

アドホック署名に関する注意

SIGN_IDENTITY="-" は、アプリが同じ Team ID を共有しない組み込みフレームワーク(Sparkle など)を読み込む際のクラッシュを防ぐため、Hardened Runtime(--options runtime)を無効にします。また、アドホック署名では TCC 権限を維持できなくなります。復旧手順については、macOS の権限を参照してください。

About のビルドメタデータ

About タブは Info.plist から OpenClawBuildTimestampOpenClawGitCommit を読み取り、バージョン、ビルド日、git コミット、およびビルドが DEBUG かどうか(#if DEBUG を使用)を表示します。これらの値を更新するには、コード変更後にパッケージャーを再実行してください。

関連項目

Was this useful?
On this page

On this page