2026 マルチリージョンのリモート Mac における公証と App Store 配信
notarytool、Stapler、Transporter の出口と再試行プレイブック

読了目安 約23分 · MACCOME

リリースエンジニアおよび iOS リードがアーカイブ、公証、Transporter によるアップロードをシンガポール、日本、韓国、香港、米国東部、米国西部にまたがるリモート Mac に移すとき、失敗の多くは「コード署名の仕方」ではなく公証キュー、キーチェーンの文脈、出口ネットワーク、再試行ポリシーにあります。本稿ではリリース手順書上の摩擦六項目公証とアップロードをどこで実行するかのマトリクスオンコールと揃えられる三つの指標非対話の notarytool 例と Stapler の前提条件、そして六ステップの手順書を示します。Fastlane と証明書同期再現可能なクリーンビルドマルチリージョンのレンタルガイドと併読してください。最初の二つは署名の一貫性を守り、本稿はApple の公証サービスと App Store Connect の出口までを閉じます。

夜間に公証とアップロードが「ランダムに」失敗する六つの理由

Apple の公証経路はツールチェーンの版、利用可能な資格情報、Apple エンドポイントへの TLS の品質に依存します。リモートデスクトップでは画面ロックセッション、プロキシ、企業の出口方針が加わります。CI の再試行ヒストグラムと並べて次の六項目を追跡してください。リージョン役割をまだ固定していない場合は、先にマルチリージョンガイドを読んでください。

  1. キーチェーンとセッション文脈:対話的ログインと非対話の SSH では同じキーチェーン項目が見えません。明示的なアンロックやパーティション指定なしの自動化は、「ローカルでは動くが CI では不安定」という時間損失を生みます。
  2. 送信とポーリングのタイミング:notarytool submit が ID を返したあとは info をポーリングする必要があります。高いクロスリージョン RTT のもとで過密なポーリングはレート制限に感じられやすく、遅いポーリングはリリース枠を伸ばします。
  3. ディスクと一時領域:公証は成果物の展開と再パックを行います。ルートボリュームの余裕と一時ディレクトリの置き場は、明確な「ディスク不足」の前に読み取りエラーとして現れることがあり、再現可能ビルドの記事で触れた DerivedData 競合と同系統です。
  4. Stapler の前提:.pkg.dmg、アプリバンドルでは手順が異なります。省略すると QA の Gatekeeper 挙動が本番とずれます。
  5. Transporter と API アップロード:GUI は手動の再試行に向きますが監査は難しく、API はパイプライン向きですが JWT の寿命、Issuer ID、秘密鍵パスを Fastlane の秘密管理と揃える必要があります。
  6. クロスリージョンの「誰が Ship を押すか」:APAC の日中と米国西部の夜が重なり、オンコールのタイムゾーンがずれると失敗率が上がります。技術のノイズに見える組織的な問題です。

この六つをHTTP ステータス分布、再試行回数、同一成果物を別ホストで通した成功率と組み合わせ、「もう一度実行」から出口とパラメータの実際の変更へ置き換えてください。

マトリクス:どのリモート Mac の出口が公証とアップロードを担うべきか

調達レビューで使う表です。失敗時に誰がデバッグしやすいかどの列が監査項目に写るかを比較し、生の速度だけで決めないでください。該当する場合はピーク機の項目を予算統制の記事と揃えてください。

観点成果物ホームリージョン上のビルドホストアップロードと人的ゲート用の専用「リリースノード」
ネットワーク経路Git/レジストリ取得と公証出口が揃い、大洋横断の二重転送が減る短く単目的な経路。Transporter と手動確認に向く
失敗の帰属ビルドと公証ログが同一ホスト文脈を共有成果物から上流パイプライン ID への明示的な写像が必要
キーチェーン方針CI ユーザーとデーモンモデルに結びつく。長寿命向きアップロード専用アカウントで露出を減らせる。署名ホストと証明書ビューを混ぜない
タイムゾーンと人無人の夜間バッチに強いオンコール時間と重なるリージョンを優先し、「デスクトップに届かない」ブロックを減らす
ディスクと 1TB/2TBDerivedData、アーカイブ、公証の一時領域を保持。ピーク週向けにサイズクリーンアップが厳格なら小さめでも可。方針なしではディスク起因の失敗は依然として多い
レンタルの組み合わせ月次ベースラインに、リリース周辺の短期ピーク(マルチリージョンガイドどおり)短期レンタルでアップロードのスパイクを賄い、長期アイドルコストを抑えられる

手順書と YAML に載せる三つの指標

社内ダッシュボードで収集してください。以下の数値は説明用のプレースホルダーであり、チームのベースラインに置き換えてください。

  1. 公証ポーリング間隔(NPI):一定 5 秒の notarytool info ループの代わりに指数バックオフ(例:5 秒→10 秒→20 秒、上限 60 秒)を使い、最大待機をリリース枠に合わせます。クロスリージョン RTT が約 180ms を超えると、サービスが健全でもポーリングがきつすぎるとスロットリングに感じられます。
  2. アップロード復旧ウィンドウ(URW):同一成果物かつ同一出口 IP で Transporter または API アップロードに要した試行回数を追跡します。Apple のステータスが緑なのに URW が上がるときは、再署名の前に企業プロキシと MTU を確認してください。
  3. ステープル前のディスク安全余裕(DSM):xcrun stapler staple を走らせるボリュームでは、アーカイブサイズの2.5 倍以上の空きを一時領域込みで確保します。足りなければ再現可能ビルドのチェックリストに沿ってキャッシュとアーカイブを整理してから再試行します。

2025〜2026 年も Apple は公証とアップロードのツールを Xcode CLI 経路に集約し続けています。xcode-selectnotarytool の版を固定せずに Xcode を混在させると、古典的な「CI とデスクトップのドリフト」が再発します。

bash
# Non-interactive notary submit (replace TEAM_ID, secrets, and paths; never commit keys)
xcrun notarytool submit ./dist/MyApp.pkg \
  --apple-id "[email protected]" \
  --password "@keychain:AC_NOTARY_PASSWORD" \
  --team-id "XXXXXXXXXX" \
  --wait

# App Store Connect API key profile (preferred alignment with Fastlane issuer)
# xcrun notarytool store-credentials --keychain "notary-profile" ...
# xcrun notarytool submit ./dist/MyApp.pkg --keychain-profile "notary-profile" --wait
info

ヒント:リモートデスクトップではキーチェーンプロファイルや CI から注入する読み取り専用の鍵パスを優先し、シェル履歴に平文パスワードを残さないでください。ローテーションの周期は Fastlane の記事と揃えます。

署名済みアーカイブから出荷可能な成果物までの六ステップ

署名とアーカイブがすでに成功している前提です。そうでなければ先に Fastlane と再現可能ビルドの記事に戻ってください。

  1. Xcode と CLI を固定:対象リモート Mac で xcode-select -pxcrun notarytool --version をリリースチケットに記録し、リリース当日の不意の切り替えを防ぎます。
  2. 出口を選ぶ:マトリクスに従いビルドホストかリリースノードを選び、IP、リージョン三要素、レンタル項目をマルチリージョンのテンプレートと同じ行にまとめます。
  3. 送信とポーリング:非対話フラグを使い、NPI バックオフでポーリングし、盲目的な再試行の前にログを取得します。
  4. ステープルと検証:必要な場所で stapler staple を実行し、spctl でスポットチェックします。コマンドのハッシュをチケットに残します。
  5. Transporter または API アップロード:どちらか一方に一貫して寄せます。API では JWT の期限、秘密鍵の権限、再試行ポリシーを CI の秘密表の横に文書化します。
  6. ポストモーテム項目:四半期ごとに URW、NPI の上限到達、DSM のトリガーを、購入対レンタルや予算の記事と並べて記録し、リリース週の短期ピークレンタルを判断します。

M4 と M4 Pro:公証経路で最初のボトルネックになりやすいのは IO

テレメトリに公証ログのダウンロードが遅い、一時ディレクトリが不安定、ローカルノート PC の方が速いといった兆候があるとき、CPU を足しても端到端は短くなりにくいです。マルチプロジェクトのプール記事の DSM とキャッシュ戦略に戻り、M4 Pro へ飛びつく前に同一リージョンの成果物パス、十分なディスク余裕、安定した出口を優先してください。リモート Mac の意味は、この連鎖を契約上のリージョンとレンタル条件に落とせることにあり、ノート PC の一対一の置き換えではありません。

「ノートで一度通った」は本番戦略にならない理由

個人ノートに公証とアップロードを頼ると、コンプライアンスレビュー、引き継ぎ、24 時間体制のリリース枠のもとで見えないコストが出ます。鍵は個人のキーチェーンにあり、出口は場所で変わり、失敗は CI チケットにきれいに写りません。公証とアップロードをリージョン戦略に沿ったリモート Mac プールへ移すと、出口、ディスク、レンタル条件が監査可能になり、同じリージョンの OpenClaw Gateway のような長寿命自動化とも組み合わせやすくなります。

汎用クラウドデスクトップや短命 VM でも CLI は動きますが、グラフィカルセッション、USB、キーチェーンの意味論が崩れ、リリース週に調整コストがかさみます。MACCOMEMac mini M4 および M4 Pro の物理ノードをシンガポール、日本、韓国、香港、米国沿岸で提供し、専用ビルド、公証、アップロード出口に合わせた柔軟なレンタル条件を用意しています。まず公開料金ページをマトリクスの行と揃え、そのうえで NPI、URW、DSM をダッシュボードに接続してください。

パイロットでは二週間は署名を固定し、成果物ホームのリモート Mac 一台だけで出口と再試行パラメータを変えてください。多くの「謎の失敗」は、説明可能な少数のクラスに収まります。

FAQ

公証は Fastlane と証明書の記事の前と後、どちらで実行すべきですか?

まず署名とプロファイルを安定させ、その後に公証とアップロードを行います。Fastlane と証明書同期の記事をレンタル料金と並べて開き、リージョンと契約期間を一行に揃えてください。

リージョンと出口はどう選びますか?

マルチリージョンのレンタルガイドを読み、ビルド・公証・アップロードが同一ホストを共有するかをレビュー資料に記録してください。

請求とアクセスの説明はどこにありますか?

ヘルプセンターでオンボーディングと代表的な請求上の注意をご確認ください。