リモート Mac 2026年4月27日 約16分 TCC VNC
P26 クラウド Mac
画面収録・アクセシビリティ・入力監視の TCC

Pain list, SSH vs VNC matrix, eight-step runbook, ticket facts, FAQ

macOS privacy controls and secure remote development

クラウド上の物理 Mac を iOS 開発に使うチームは、遅かれ早かれ 画面収録(Screen Recording)アクセシビリティ(Accessibility)入力監視(Input Monitoring) の三つのプライバシー面に当たります。これらは Apple の TCC で管理され、SSH だけでは「許可」ボタンを人間が押す流れを代替できません。ビルドや Git は SSH、同意 UI は VNC という分業が回り始めると、Simulator のキャプチャが真っ黒になる/SwiftUI Preview が更新されない、といった「コンパイルは通るのに UI だけ壊れる」系のインシデントが一気に減ります。本稿では 五つの再発コストSSH と VNC の判断表接続から検収までの 8 ステップ Runbookチケットに貼れる四つの結論キーチェーンとの切り分け FAQ をまとめます。初回チェックリストWindows 向けキーチェーンSimulator 境界 とも相互に読んでください。

01

SSH が通ってもプライバシーが揃うとは限らない理由

Linux VPS と同じノリで git pullxcodebuild を SSH に寄せるのは合理的ですが、対話的な同意 に触れると急に詰まります。症状はバラバラ:Simulator のスクリーンショットが真っ黒、Preview が止まる、UI 自動化が「操作を許可されていない」とログる、など。根はだいたい 実行バイナリが TCC の該当バケットに入っていない か、VNC と SSH でユーザー文脈が食い違う ことです。以下の五つは「なぜ再オープンが増えるか」の典型なので、変更票の冒頭にそのまま貼れます。

  1. 01

    セッションの非対応:SSH だけではコンソールユーザのウィンドウサーバ文脈と一致しないことがあり、tmux 越しに起動した GUI 子が見えないシートにフックします。

  2. 02

    バケットは独立:キーチェーン、画面収録、アクセシビリティ、入力監視は別評価。コンパイルが通ってもピクセル経路は拒否され続けます。

  3. 03

    パス厳密:/Applications/Xcode.app とコピー先の別パスは別クライアント扱い。アップグレード後に「オンなのに効かない」は旧行の残りが多いです。

  4. 04

    共有イメージ:レンタルで複数人が触ると Privacy 一覧が汚れます。古い行を消して再プロンプトし、責任者をチケットに書くのが最短です。

  5. 05

    MDM/プロファイル:企業ポリシーでトグルが灰になるケースは SSH ログでは分かりにくく、System Settings を VNC で見るまで気づけません。

02

判断表:いつ VNC が必須か

自動化は SSH、同意 UI は VNC と書いた運用規約を配ると、macOS に不慣れなメンバーへの説明が短くなります。下表は転送可です。

作業既定レーンVNC が要る兆候よくある誤診
Git、UI 無しのテスト、素の xcodebuildSSHほぼ不要「Xcode 子タスクは全部ヘッドレス」と決めつける
初回 Xcode、Apple ID、署名の信頼シートVNCモーダルが出る明示同意をスクリプトですり抜けようとする
Simulator キャプチャ、ピクセルを読む UI テストVNC 優先真っ黒・TCC ログ帯域だけ上げてプロトコルを変えない
SwiftUI Preview、Accessibility が要る IDE プラグインVNCキャンバス停滞/TCC 文言Privacy 行を掃除せず Xcode だけ入れ直す
サードパーティ遠隔・ホットキーツールVNC文書が入力監視を要求SIP 無効化のショートカット(非推奨)

一行ルール: macOS に明示同意が要る作業は、カーソルがあるセッションでやる。

03

VNC ログインから検収までの 8 ステップ

手順は敢えて地味にしています。前半四つで ユーザ同一性とセッション種別 を固定し、次の三つで TCC の三バケット を順に埋め、最後に Jira / Linear に貼れる証跡 を残します。署名作業と並走する場合は キーチェーン記事 を参照しつつ、五分钟内に二系統のシートを交互に出さない 運用を推奨します。

  1. 01

    対話ユーザを固定:SSH で whoami、VNC のメニューバー表示と突合。ここがズレると「彼の端末では動く」系の幽霊チケが量産されます。

  2. 02

    実コンソールの GUI に入る:System Settings を完了できない観測専用アカウントは避け、実際にトグルを触れるセッションへ。

  3. 03

    システム設定 → プライバシーとセキュリティ:画面収録・アクセシビリティ・入力監視を順に開き、変更前にスクショでベースライン保存。

  4. 04

    本物のプロンプトを出す:運用で残す正規の Xcode.app を起動し、Preview・キャプチャ・自動化スタブなどバケットごとに一度ずつ触手を伸ばす。

  5. 05

    画面収録:Xcode.app とベンダー文書のあるヘルパのみ。重複パスは削除→Simulator 終了→再起動→再キャプチャ。

  6. 06

    アクセシビリティ:テストランナーや支援系ツールに限定し、未署名の「とりあえずオン」は禁止。

  7. 07

    入力監視:グローバルキーが本当に要るツールだけ。各トグルにセキュリティレビュー一行を添付。

  8. 08

    検収:Simulator PNG が非黒、Preview が 5 秒以内に追従、ログに TCC 拒否文字列が無いことを確認し、時刻つきでチケットへ。

yaml
acceptance_probes:
  simulator_screenshot: not_solid_black
  swiftui_preview: state_change_reflects_under_5s
  logs: no_tcc_user_interaction_denied

ヒント:プロバイダが「権限クリーン後のゴールデンイメージ」を許可しているなら一枚残し、次メンバーの初日を短縮できます(法務の保持方針とセットで)。

04

チケットに貼れる四つの事実

  • 事実1:TCC は対話ユーザ文脈に紐づく。別セッションでクリックしたトグルを、SSH 子プロセスが全部継承するとは限らない。
  • 事実2:画面収録・アクセシビリティ・入力監視は 検収行を分けて書く。「プライバシー OK」一行はレビュアを怒らせる。
  • 事実3:ツールチェーン移動後は xcode-select -p の実パスと Privacy 一覧を突合してからベンダエスカレ。
  • 事実4:権限系欠陥の MTTR は「クリック可能な VNC を何分で取れるか」に相関。VNC は贅沢品ではなく 運用 SLA の一部

注意:共有ノードで Gatekeeper や SIP を恒久的に弱めるのは避けてください。監査で即赤、OS アップで元に戻ることも多いです。

05

キーチェーン/署名との切り分け

キーチェーンは「署名材料をプロセスに流せるか」、本稿の三バケットは「ピクセルと入力のパイプを観測・注入できるか」を決めます。現場では画面収録を直した直後に署名シートで再オープン、が連鎖しがちなので、Apple アカウントと署名の川を先に閉じ、その後でキャプチャと自動化へ戻ってください。ワイヤレス実機の話は ワイヤレス検収記事 と混線させないでください(信頼エラーは TCC ではない)。

症状主因候補最初の手
codesign シートやプロビジョニングが止まるキーチェーン/署名キーチェーン Runbook、VNC で Always Allow
スクショ真っ黒・ウィンドウキャプチャ空画面収録Privacy パス確認、Simulator 再起動
UI 自動化がタップできないアクセシビリティランナーバイナリを明示許可
グローバルホットキーが死ぬ入力監視/アクセシビリティベンダ文書を一行ずつ照合

運用側の目安として、フル HD・中程度フレームの対話セッションは動きの多い作業で 持続 3–8 Mbps 程度に乗ることが多く、SSH のキー入力は桁違いに小さい、という差を前提に容量計画してください。2026 年時点の Apple Silicon クラウドでも SSH を既定・同意だけ短時間 VNC のハイブリッドが支配的です。VNC ポートに届くサブネット、TLS ラッパ要否、グラフィックセッションの最大接続時間を Runbook に書き、財務が「自動化アイドル」と比較できるようにします。証跡には 地域 RTTエンコーダ設定失敗テストの前後どちらで画面収録を触ったか の四点を載せると、ネット問題とポリシ問題を一往復で分けやすくなります。併せて 遅延と帯域 の数値感と突合すると、誤って帯域増強だけを選ぶループを止められます。

関連記事

あわせて読む

FAQ

FAQ

いいえ。パッケージ配置は SSH で足りますが、同意はホームを持つユーザの GUI で行う必要があります。トグルは VNC で。

コンパイル成功はピクセル取得の許可を意味しません。起動している Xcode のパスを画面収録に入れ直し、Simulator を再起動してください。

同一ユーザか、古い行の削除、ヘルパ再起動、MDM で灰になっていないか。System Settings のスクショと xcode-select -p をチケットに添付してください。

まとめ

TCC exists so sensitive capabilities stay tied to explicit human consent and concrete binary paths. That design goal conflicts with teams that want every operation headless. If VNC is treated as optional, you pay in longer incidents, repeated Xcode reinstalls, and irreproducible "works on my session" answers—all of which consume calendar time right before App Store deadlines.

Owning a desk Mac does not remove the problem: sleep policies, OS upgrades, and thermal throttling still interrupt capture-heavy sessions. A rented Mac with both SSH and scheduled VNC access lets you keep automation on the fast lane while still having a governed place to click System Settings when Apple requires it.

If you want a pay-as-you-go Apple Silicon host that pairs naturally with the checklists above, rent through VNCMac: use the primary button for the purchase page, skim the home page for plans, and keep the first-time and latency posts open while you validate network and permissions in parallel.