ドキュメントに戻る
デプロイメント

macOS配布

署名、公証、DMGパッケージング、アップデーターアーティファクト。

10分 で読めます

macOSでの配布にはコード署名、公証、適切なパッケージングが必要です。このドキュメントはPlanToCodeの完全なプロセスをカバーします。

コード署名

すべてのバイナリはApple Developer IDで署名する必要があります:

  • アプリ署名用のDeveloper ID Application証明書
  • PKG署名用のDeveloper ID Installer証明書
  • 証明書はCIシークレットに保存、キーチェーンにインポート
  • 公証互換性のためにHardened runtimeを有効化

エンタイトルメント

PlanToCode機能に必要なエンタイトルメント:

  • com.apple.security.cs.allow-jit
  • com.apple.security.cs.allow-unsigned-executable-memory
  • com.apple.security.device.audio-input
  • com.apple.security.network.client
  • com.apple.security.files.user-selected.read-write

ビルドプロセス

署名済みリリースをビルドする手順:

  1. pnpm tauri build --target universal-apple-darwinを実行
  2. Tauriが環境変数のAPPLE_SIGNING_IDENTITYで署名
  3. lipoでIntel + ARM用のユニバーサルバイナリを作成
  4. カスタム背景とレイアウトでDMGをパッケージ

ユニバーサルバイナリ

PlanToCodeはユニバーサルバイナリとして配布されます:

  • 単一の.appがIntelとApple Siliconの両方をサポート
  • --target universal-apple-darwinでビルド
  • バイナリはやや大きいが配布がシンプル
  • 両アーキテクチャでネイティブパフォーマンス

公証

Gatekeeper承認にはApple公証が必要です:

  • DMGをApple notaryサービスに提出
  • App Store Connect認証情報でnotarytoolを使用
  • ステープリングで公証チケットをDMGに添付
  • プロセスは通常1-5分

アプリ内更新

tauri-plugin-updaterが自動更新を処理します:

  • 起動時に更新エンドポイントをチェック
  • バックグラウンドで新バージョンをダウンロード
  • 適用のためにユーザーに再起動を促す
  • インストール前に署名検証

更新マニフェスト

latest.jsonが利用可能な更新を記述します:

  • version:セマンティックバージョン文字列
  • platforms.darwin-universal:URLと署名
  • notes:markdownでのリリースノート
  • pub_date:ISO 8601公開タイムスタンプ

一般的な落とし穴

頻繁に発生する問題:

  • CI中にキーチェーンがロック:署名前にアンロック
  • 公証タイムアウト:指数バックオフでリトライ
  • 無効な署名:エンタイトルメントが機能と一致するか確認
  • Gatekeeper拒否:公証が正しくステープルされているか確認

検証コマンド

署名と公証を検証するコマンド:

  • codesign -dv --verbose=4 PlanToCode.app
  • spctl --assess --verbose PlanToCode.app
  • stapler validate PlanToCode.dmg
  • xcrun notarytool log <submission-id>