ドキュメントに戻る
デプロイメント
macOS配布
署名、公証、DMGパッケージング、アップデーターアーティファクト。
•
10分 で読めます
•macOSでの配布にはコード署名、公証、適切なパッケージングが必要です。このドキュメントはPlanToCodeの完全なプロセスをカバーします。
コード署名
すべてのバイナリはApple Developer IDで署名する必要があります:
- アプリ署名用のDeveloper ID Application証明書
- PKG署名用のDeveloper ID Installer証明書
- 証明書はCIシークレットに保存、キーチェーンにインポート
- 公証互換性のためにHardened runtimeを有効化
エンタイトルメント
PlanToCode機能に必要なエンタイトルメント:
com.apple.security.cs.allow-jitcom.apple.security.cs.allow-unsigned-executable-memorycom.apple.security.device.audio-inputcom.apple.security.network.clientcom.apple.security.files.user-selected.read-write
ビルドプロセス
署名済みリリースをビルドする手順:
- pnpm tauri build --target universal-apple-darwinを実行
- Tauriが環境変数のAPPLE_SIGNING_IDENTITYで署名
- lipoでIntel + ARM用のユニバーサルバイナリを作成
- カスタム背景とレイアウトで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.appspctl --assess --verbose PlanToCode.appstapler validate PlanToCode.dmgxcrun notarytool log <submission-id>