iOS署名 2026年5月20日 約18分 証明書 VNC

2026 レンタルMacで
iOS証明書・プロビジョニング更新

SSH/VNC判断表 · 8段ランブック · 四原則 · 20分検収

リモートMacのデスクトップでXcodeとApple Developerの証明書管理画面を扱う開発者

自前のMacを持たず、時間課金のクラウドMacでiOSを出荷するチームは、Appleからの「証明書期限間近」メールを受け取った瞬間に詰まりやすいです。Developer Portalで更新しても、レンタルノードのキーチェーンに秘密鍵が無い、SSHのmatchが無言で止まる、VNCを開くと2FAと「常に許可」が待っている——原因はネットワークではなくGUI債務のことが多いです。本稿は証明書とプロビジョニングプロファイルのローテーション境界を整理し、SSHのみ/一度VNC/VNC主導の判断表、Portal→Match→Validateの8段手順、チケット用四原則20分の同一ユーザー検収表を示します。Fastlane Match判断表Organizer/TransporterNTPと証明書初回TestFlightと併読してください。

01

更新で壊れやすいのは「Portalだけ直したつもり」状態

iOS署名は三層で動きます:Apple Developerの証明書、それを埋め込んだプロビジョニングプロファイル、ビルドマシン上の秘密鍵+キーチェーンACL。PortalでDistribution証明書を作り直しても、レンタルMacに古いプロファイルが残ればcodesignは「有効期限切れ」と「プロファイル不一致」を同時に報告します。時間課金ノードでは、Archiveを何度も回すほど無課金に近い待ち時間が増えます。

  1. 01

    期限の種類を混同:証明書のNot AfterとプロファイルのExpiration、ASCの処理遅延は別物。メール件名だけで判断しない。

  2. 02

    ユーザ分裂:SSHはci、VNCは個人アカウント——Organizerだけ新証明書を見る典型。

  3. 03

    Capabilityドリフト:PushやApp GroupsをPortalで足したのにプロファイル未再生成。

  4. 04

    Match未同期:Portal変更が暗号化Gitに戻らず、翌ノードで「昨日は緑」が再現不能。

  5. 05

    時計ずれ:「まだ有効ではない」はNTP未同期のTLS失敗と同型。時計ランブックを先に切る。

レンタルMacは捨てられるキャッシュと割り切り、Matchやエクスポートした.p12を真実源に据えると、ノード入れ替え時のパニックが減ります。

02

判断表:SSH・ハイブリッド・VNC主導

症状が右列なら、推奨列へ切り替えてから再試行してください。同一macOSユーザーでSSHとVNCを揃えるのが前提です。

作業推奨典型シグナルよくある誤解
match readonly同期SSHログは進むがcodesign失敗証明書ではなくPods
新Distributionの初回インポートVNCUser interaction is not allowedDerivedData削除ループ
自動署名の切替VNC(Signing画面)プロファイル名がPortalと不一致Gitだけ直す
CSR作成・Portal 2FAブラウザ+VNC確認SSHセッションにUIなし別MacでPortalだけ
Organizer ValidateVNC赤いProvisioning行ipa再アップロードのみ
security find-identity監査SSH重複Identityキーチェーン全削除
match nuke再構築VNC立会+SSH実行並行オペレータ衝突チャット合意なし

初回失敗がキーチェーン・2FA・Signingタブに触れたら、SSHで三回目を回さずVNCへ——多くの場合、追加1時間の課金より安いです。

03

8段ランブック:Portal更新からValidateまで

  1. 01

    凍結:Team ID・対象Bundle ID・使用中証明書シリアル(下8桁)をチケットに記録。OS/Xcodeの無計画更新は止める。

  2. 02

    Portal:新Distribution(またはDevelopment)を発行。旧証明書は24–72hの重複許容を検討してから失効。

  3. 03

    プロファイル再生成:Capabilities差分を反映。UUIDをメモ。

  4. 04

    VNCインポート:同一ユーザーでXcode Accounts・キーチェーン「常に許可」。Matchならbundle exec fastlane match appstore --readonly前に実施。

  5. 05

    SSH検証:security find-identity -v -p codesigningcodesign -dvvv でチェーン確認。

  6. 06

    スモークArchive:Release相当のSchemeで最小Archive。失敗ログは認証/署名/コンプライアンスに分類。

  7. 07

    Organizer Validate:配信前の赤行を潰す。アップロード判断表へ接続。

  8. 08

    証跡:Match commit・スクリーンショット・UTC時刻をチケットへ。ノード返却前にpush完了。

bash
# 同一ユーザーで実行(readonly例)
bundle exec fastlane match appstore --readonly
security find-identity -v -p codesigning | head -n 15
04

チケットに貼れる四原則

  • 原則1:秘密鍵はインポートしたmacOSユーザーのログインキーチェーンにのみ存在すべき。別ユーザへ.p12をコピーしただけではCIは緑にならない。
  • 原則2:Portal変更はMatch(または社内Git)へのマージが完了するまで「本番ローテ完了」と呼ばない。
  • 原則3:GUI待ちが15分超ならVNC引き継ぎを明示。SSHリトライ指数バックオフは課金だけ増やす。
  • 原則4:ローテ当日は20分のVNC検収を必須ゲートに。TestFlight提出はその後。
05

20分VNC検収グリッド

項目操作合格
ユーザー一致メニューバーとwhoami完全一致
Accountsチーム選択・黄警告なし期待Team ID
Identity期限切れDistributionなし単一の有効チェーン
ProfileSigningのプロファイル名Portal UUIDと一致
ValidateOrganizerブロッカーなし
ディスクdf -hシステム15%以上空き

初めてのプロバイダなら初回30分を先に一度通し、その後は本稿の短いグリッドを毎ローテで使い回してください。

関連
FAQ

よくある質問

readonly同期や検証は可能ですが、初回インポート・2FA・キーチェーン許可はVNCが安全です。

他ホストのCIが参照中なら短い重複期間を設け、Matchとパイプラインを順に切り替えます。

署名更新とASC処理・SDK要件は別フェーズ。外測チェックリストでビルド番号を追跡。

返却前にMatch pushとスナップショットを完了。新ノードでreadonly→本稿の20分検収を繰り返します。

おわりに

証明書更新は「Portalでボタンを押す作業」ではなく、三層を同じユーザー・同じ時計・同じGit真実源で揃える運用です。SSHだけの習慣は、期限切れ直前に表面化するGUI債務を隠し、レンタル課金を膨らませます。自前Macは固定費と睡眠・更新の不確実性を抱えます。

VNCをローテの標準I/Fに据えれば、Macを持たないチームでもApple公式クライアントと同じ検証粒度を維持できます。VNCMacの時間課金リモートMacで、本稿の検収表をそのまま再現してください。