ローカル機なしでも:クラウド Mac で提出・ログ取得・ステープル・オフライン検証の実務ランブック
Mac App Store の外で DMG・PKG・署名付きツール を配るとき、iOS のビルド提出とは契約が違います。Gatekeeper と Apple の公証は失敗を左側に寄せ、署名の一貫性・ハードンドランタイム・チケット実体化・ステープル を同時に要求します。従量課金のクラウド Mac では「notarytool が無い」より 証跡 が難題になりがちです。提出 UUID、完全な notarytool log JSON、同一ユーザーのキーチェーン、TLS と整合する時計。本文は Windows/Linux 主力チーム向けに、痛みの一覧、三経路マトリクス(SSH 単独・ハイブリッド・VNC 主導)、八段ランブック、チケット用の四結論、二十分の同一ユーザー VNC グリッド を整理します。関連:初回チェックリスト、時計ずれ(NTP)ランブック、Fastlane Match 判断表、緊急 iOS 修正の手術室、ディスク逼迫の片付け。
ストア外では、ユーザーはあなたが制御できない Gatekeeper ヒューリスティクスでバイナリを判断します。リース Mac は「Apple Silicon を自前で持たない」制約を外しますが、運用リスクを増やします。セッション分断(ビルドはユーザ A、公証はユーザ B)、スリープやイメージ復元後の時計ドリフト、Apple サービスへの長寿命 TLS を壊すプロキシ経路、中間 ZIP を昇格させずに消すリース境界。「Accepted = 完了」と誤解するチームも多く、多くの DMG ではステープルとキャリア検証が残ります。検証を飛ばすとリリース工学が伝承になります。
ログ喪失と盲目的再提出:notarytool log を保管しないと、同じエンタイトルメント事故で枠を焼きます。
ストア内と外:Organizer の流れは公証証跡の代替ではなく、資格情報と失敗の意味論が異なります。
SSH だけのキーチェーン劇場:コマンドはゼロ終了でも、使うつもりの署名アイデンティティに UI 同意が無かった。
ランタイムのズレ:ハードンド/サンドボックスは Xcode で直し、ZIP のフラグ弄りでは直りません。
指紋行の欠如:レビュアが sw_vers・Xcode・notarytool の版を再現できません。
ディスク圧:公証 ZIP と Archives は SSD を速攻で食います。本稿と ディスク掃除 をセット運用してください。
運用補足として、提出 UUID は「その ZIP のハッシュ」とセットで管理しないと、後から別ビルドのスクショと混ざります。社内共有ストレージに投げるフォルダ名にチケット番号とチーム名を入れ、個人の Downloads に散らさないルールを一つだけでも作ると効きます。リース Mac は夜間にクリーンアップされることがあるため、証跡は必ず外部の耐久ストレージへ昇格させます。Apple 側の地域インシデントと自ビルドの切り分けのために、提出元リージョンと顧客消費リージョンをメモしておくと冷静さが保てます。
また、同一ホームで自動化と手動公証を混在させると、意図しないデバッグシンボルや中間物が ZIP に紛れ込みやすいです。出力パスを DerivedData から離し、命名規則で「手動提出物」だけを隔離してください。プロキシのログインページが挟まると、エンタイトルメントのように見えて実はネットワークという偽陽性が出ます。curl -v のハンドシェイク証跡を先に取ると、夜間のトリアージが速くなります。複数プロダクトがある場合は bundle id と submission UUID をリリース DB に索引させ、検索可能にしておくと四半期後の自分が助かります。
| 工程/証跡 | SSH 単独 | ハイブリッド(SSH ビルド+VNC 仕上げ) | VNC 主導 |
|---|---|---|---|
| 署名済み .app のアーカイブ | 概ね可 | 可 | 視覚確認が必要な初心者に最適 |
| ZIP 化と提出 | 可 | 可 | 可 |
| ポールとログ取得 | 可 | 可 | 可 |
| キーチェーン/Apple ID/2FA | 高リスク | 推奨 | 推奨 |
| ステープル+検証 | 部分的 | 推奨 | 推奨 |
| 非エンジニアへの説明 | 弱い | 強い | 最も強い |
コストの甘味点は多くの場合ハイブリッドです。SSH でパッケージングを自動化し、キーチェーン境界・ステープル・録画付きスモークを同一 macOS ユーザーの VNC に切り替えます。監査可能リリースを求める組織では「VNC 必須ステップ」を変更票の第一級項目にしてください。企業プロキシがリース Mac と Apple の間にあるときは、エンタイトルメントを疑う前に curl -v と迂回ルールを添付します。
通貨は 提出 UUID + log JSON + 同一ユーザーのキーチェーン証跡 です。
現場では「SSH で全部終わらせた気になる」ことが一番高くつきます。同意ダイアログが出ていないのに署名が通ったように見える、というのは典型的な誤認です。VNC のメニューバー名とターミナルの id -un をスクショに含めるだけで、後追い調査の速度が変わります。夜間バッチで複数 notarytool が走ると資格情報競合が起きるため、リスナー表を残しておくと幽霊プロセスの反証になります。
指紋行:sw_vers、xcodebuild -version、notarytool の版、リース ID。時計を触ったなら時計稿の三段スクリーンを添付。
事前署名:codesign -dv --verbose=4 と spctl -a -vv。Match なら Match 稿でアイデンティティを先に整合。
提出 ZIP:シンボリックリンクは意図的に保持。SHA256 をチケットへ。
提出:シェルにアプリ用パスワードを直書きせず、提出 ID を一字一句チケットへ。
非成功は即ログ:JSON を再ビルド前に保存。原因を署名/HR/梱包にマッピング。
修正は Xcode:エンタイトルメント不一致はプロジェクト設定。圧縮し直しのテープでは直らない。
ステープルと検証:xcrun stapler staple の後、キャリアに応じて validate。
スモークと昇格:クリーンプロファイルまたは別端末でダブルクリック。成果物とログを時間課金ノードから切り離した耐久領域へ。ストア提出と資格情報を分離しローテ衝突を避ける。
xcodebuild -version notarytool --version codesign -dv --verbose=4 "Your.app" ditto -c -k --keepParent "Your.app" "Your.zip" notarytool submit "Your.zip" --apple-id "$APPLE_ID" --team-id "$TEAM_ID" \ --password "$APP_SPECIFIC" --wait notarytool log "$SUBMISSION_ID" > notary-log.json xcrun stapler staple "Your.dmg" xcrun stapler validate "Your.dmg"
共有ホストではアプリ用パスワードのローテを名義人で行い、Match リポジトリ ACL 変更と同じ変更票に記録します。ログがネットワークを疑うとき、スプリットトンネルで Apple 向けトラフィックだけ別経路に流れ、途中でログインページを挟むと失敗がエンタイトルメントに似ます。経路が清浄になれば消えるタイプの偽陽性ですので、必ず PCAP か curl の証跡を先に取ります。
地域インシデントは年に数回は起こります。提出側と消費側のリージョンをメモしておけば「Apple が悪いのか、ビルドが悪いのか」を切り分けられます。複数プロダクトでは bundle id と submission UUID をデータベース化し、個人フォルダ散乱を防ぎます。ロールバック演習として、出荷後の最後の良品 stapler DMG とログ束はイミュータブルに保管し、ホットフィックスは証跡を枝分かしして上書きしない運用が安全です。これは 緊急対応稿 の精神とも整合します。
さらに踏み込むと、stapler は「チケットが無い」のか「キャリアが未対応」なのかで打ち手が真逆です。署名を変えたのに二重 staple で誤魔化すと、後追いでより危険な状態になります。オフライン検証に失敗したら、まず同一ユーザーのデスクトップで Gatekeeper の挙動を録画し、次に log JSON の issues を jq で空にできるかを確認します。並列 CI レーンがある場合、夜間に資格情報を奪い合う notarytool がいないかをプロセス表で反証します。
最後に、App Store 並行作業ではストアセッションと公証用パスワードを混ぜないでください。回転イベントが衝突すると、署名は成功したのに Organizer だけ失敗する、という疲弊パターンが出ます。リース Mac の契約満了前には必ず成果物を引き上げ、ディスク逼迫で提出 ZIP が欠損する事故を避けます。日付とタイムゾーンは NTP 稿 の八段をそのまま貼り付けられるようにしておくと、締切直前の冷静さが保てます。
この四つを変更管理テンプレにコピペできる短文として用意しておくと、PM からの「で、通ったの?」に秒で応えられます。スクショだけを貼る文化を壊すのが第一歩です。
| チェック | VNC 証跡 | SSH 証跡 | 合格 |
|---|---|---|---|
| 同一ユーザー | メニューバー名 | id -un | チケットと一致 |
| 時計と TLS | 日付と時刻パネル | sntp/curl プローブ | ランブック整合 |
| 提出成功 | 任意のドキュメント | submission id 行 | UUID 保管済み |
| ログ無傷 | JSON を目視 | jq で issues 空 | 再現可能 Accepted |
| ステープル有効 | 任意の画面録画 | stapler validate OK | オフライン起動クリーン |
タイムスタンプを揃えると議論が終わります。ステープル時刻・提出時刻・NTP スクショは短いナラティブに収め、PM が転送できる形にしてください。
グリッドを通してから deep dive すると、ログの各行に意味が乗ります。逆に順序を逆にすると、夜を潰します。
公式のフラグ説明は常に正本です。本稿はリースされたリモート Mac 運用と VNC 証跡に最適化しています。ストア提出は公証と別変更票に分け、資格情報の結合を避けてください。
接続・クリップボード・最小 Xcode 導線
読む →PKIX、タイムゾーン、証明書の切り分け
読む →SSH と VNC の境界表
読む →典型 DMG 配布ではオフライン検証に効きます。キャリア規則は Apple 文書で確認し、validate 出力も保管してください。
提出とポールは多くの場合可。キーチェーンと視覚的同意は同一ユーザーの VNC が無難です。
時計ズレ、プロキシ、リース満了、ユーザー分断キーチェーン。深読み前にグリッドを回してください。
提出 ID を凍結し、log JSON を保存、署名とエンタイトルメントへ写像、盲目再提出を避ける。
公証で高いコストになるのはアップロード分数ではなく、来四半期に第三者エンジニアが証跡束を再現できるかです。SSH 自動化はスループットに効きますが、同意とキーチェーン連続性が欲しい境界では、署名アイデンティティを持つ同一アカウントのグラフィカルセッションが依然として現実的です。自前ハードは減価償却と帯域と「誰が Allow を押すか」をあなたに残します。散発的な macOS リリースでは、予測可能な時間課金の方が安いことも多いです。
Apple Silicon リモート Mac をリースすると、ベースイメージと稼働はプロバイダ側に置けつつ、プロジェクトディレクトリと秘密管理方針は手元に残せます。notarytool log を日付と時刻の設定、ブラウザ確認と同じデスクトップで揃えられるのが、本サイトの Xcode 署名記事群と共通の言語です。
同じ受入をリース Mac で再現するなら VNCMac:主ボタンは クラウド Mac 購入・契約ページ、接続手順は ヘルプセンター をご確認ください。