Xcode 26.6のリリースノートが対象バージョンを示している一方、追加コンポーネントの導入経路は別の公式手順で管理されます。Xcode 26.6 iOS Simulatorのダウンロード失敗では、先にXcodeを再インストールしないでください。SDKの有無、iOS Simulator runtimeの有無、CoreSimulatorの認識状態、ダウンロード経路を分けて確認し、最後まで再現する場合だけノード交換または再構築へ進みます。
参照:Xcode 26.6のリリースノート
対象読者
Xcode 26.6への更新後、iOS Simulatorを取得または起動できないiOS開発者向けです。
複数のリモートMacへ同じruntimeを展開したいDevOpsエンジニア、ビルドは通るのにSimulatorテストだけ実行できないテスト・リリース担当者にも適しています。
※最終更新:2026年9月5日。Xcode 26.6リリースノート、Appleの追加コンポーネント資料、Apple Developer Forumsの最新状態を確認しています。Forum上のPreparing停止報告は個別事例であり、Appleが普遍的な障害として確認した情報ではありません。
01 最初に分ける3つの状態
「SDKが見える」と「Simulatorで実行できる」は同じ意味ではありません。次の順番で証拠を取ると、プロジェクトの問題とruntimeの問題を混同しにくくなります。
- プロジェクトが対象SDKでコンパイルできるか
simctlのruntime一覧に対象のiOS runtimeが表示されるか- 既存または新規のシミュレーター端末が作成・起動できるか
SDKが存在していても、iOS Simulator runtimeが未導入なら、コードのビルドだけ成功してSimulatorテストは失敗します。反対にruntimeが一覧にあっても、端末の起動で失敗するならCoreSimulatorの状態や端末データを調べる段階です。
まず診断結果を記録してください。
xcode-select -p
xcodebuild -version
xcrun simctl list runtimes
xcrun simctl list devices
ここで表示されたXcodeのパス、runtime名、状態、実行時刻を保存します。simctl が対象runtimeを表示しないなら、端末を削除しても解決しません。runtimeが表示され、端末だけ起動しない場合は、別の層を調べます。
02 活動中のXcodeと初回初期化
Xcodeを複数バージョン共存させている環境では、画面で開いているXcodeとターミナルが使うDeveloper Directoryが一致しないことがあります。CI用のシェル、SSHセッション、管理者権限のシェルで環境変数が異なる場合もあります。
次のチェックリストを上から実行します。
- [ ] GUIで開いたXcodeのパスと
xcode-select -pの結果を比較する - [ ]
xcodebuild -versionが意図したXcode 26.6を示すか確認する - [ ] Xcodeの初回起動と追加コンポーネントの確認が完了しているか確認する
- [ ] CIの実行ユーザーでも同じDeveloper Directoryを参照するか確認する
- [ ] 一致しない場合だけ、対象ジョブ内で選択先を明示する
共有ノードで全体設定をいきなり切り替えるのは避けてください。別のプロジェクトが異なるXcodeを使用している場合、グローバルな変更が別ジョブを壊す可能性があります。まずジョブ単位またはSSHセッション単位で再現性を確認し、問題が工具チェーンの不一致だと確定してから調整します。
Xcodeの追加コンポーネントをGUIまたはコマンドラインで取得する公式の選択肢は、Appleの追加Xcodeコンポーネント手順で確認できます。
03 Preparing停止とダウンロード経路
Preparingのまま進まない場合、画面を何度も閉じて再試行するだけでは原因を分離できません。ダウンロード処理、コンポーネントカタログ、DNS、プロキシ、ファイアウォール、hosts設定を別々に確認します。
取るべき証拠
- Xcodeのコンポーネント画面に表示された対象プラットフォームとruntime名を記録します。
- コマンドラインで同じ対象を取得した結果と終了状態を保存します。
- 名前解決、プロキシ、TLS接続、ファイアウォールのログを確認します。
- エラーが返った場合は、ドメイン名、エラーコード、時刻、要求したruntimeのビルド情報を残します。
- 別ネットワークまたは別ノードで同じ対象を取得し、経路依存かどうかを比較します。
これで、一台のMacだけが失敗するのか、同じネットワーク全体で失敗するのかを分けられます。Appleのサービス側で一時的な問題が起きている可能性もありますが、Forumの個別報告だけで公式障害とは判断しません。
hostsの追記やプロキシの無効化は、変更前の状態を保存してから行います。DNSを変更して改善した場合も、恒久対策にする前に、業務ネットワークのポリシーとCIへの影響を確認してください。
04 runtimeとCoreSimulatorの認識状態
ダウンロード済みのファイルが存在することと、CoreSimulatorが利用可能なruntimeとして認識することは別です。次の3点を並べて比較します。
| 状態 | Xcodeのコンポーネント画面 | simctl のruntime一覧 |
次の判断 |
|---|---|---|---|
| 未取得 | 対象が未導入または取得待ち | 対象なし | ダウンロード経路を調査 |
| 導入途中 | 取得済みに見える | 対象なし | 導入ログと活動中Xcodeを確認 |
| 認識済み | 利用可能 | 対象あり | 端末作成・起動へ進む |
| runtime異常 | 利用可能に見える | 対象あり | 新規端末と再起動で検証 |
まずXcodeを終了し、対象ユーザーでxcrun simctl list runtimesを再実行します。runtimeが見えるなら、新しい端末を作成または既存端末を起動し、実際のテストコマンドまで通してください。Appleが案内するSimulatorの追加と導入の経路は、追加Simulatorの公式ドキュメントに沿って確認します。
CoreSimulatorの全データ削除、システム内のruntimeディレクトリ削除、Xcodeの再インストールは末段です。実行前に、端末データ、ログ、CI設定、署名関連の復旧情報を保存してください。削除後に同じruntimeを再取得できる保証がない状態なら、先に別ノードで復元経路を確立します。
05 公式エクスポートとインポート
ネットワーク制限のあるリモートMacや複数ノードでは、正常に取得できるMacを基準ノードにして、公式のエクスポートとインポートを使う方が安全です。runtimeのディレクトリを手作業でコピーする方法は、導入状態やメタデータが欠ける可能性があります。
実施手順は次のとおりです。
- 基準Macで、活動中のXcodeが対象のXcode 26.6か確認します。
- 取得するプラットフォーム、runtime、アーキテクチャの組み合わせを記録します。
xcodebuildの現在の公式構文で対象コンポーネントをダウンロードします。- Appleが提供するエクスポート手順で、導入用パッケージを作成します。
- パッケージの出所、ハッシュ、作成時刻、対象Xcodeを台帳に残します。
- リモートMacへ転送し、対象ユーザーと空き容量を確認します。
- 公式のインポート手順を実行し、終了ログを保存します。
simctlでruntimeを列挙し、新規端末の作成と起動を確認します。- 最小のSimulatorテストと実プロジェクトのテストを順に実行します。
コマンドの引数はXcodeの版や対象プラットフォームにより変わる場合があります。実行時点のApple公式コンポーネント資料と、Xcodeでのビルド・実行手順を照合してください。
06 リモートノードの最終判定
SSH接続中にテストが成功しても、それだけでは運用可能とは言えません。セッション切断、Macの再起動、Xcodeの再起動後にも同じruntimeを認識できるか確認します。
- [ ] SSH切断後もバックグラウンドのテスト結果を回収できる
- [ ] Mac再起動後にruntimeが一覧へ戻る
- [ ] Xcode再起動後に対象端末を起動できる
- [ ] 最小テストが成功する
- [ ] 実プロジェクトのSimulatorテストが成功する
- [ ] エラー、runtimeビルド、Xcodeパスを記録できる
- [ ] 同じ手順を別のノードで再現できる
ダウンロード経路が回復し、runtimeが再起動後も認識されるなら修復を継続できます。取得はできても同じノードだけで導入状態が壊れるなら、ログを保存して隔離します。複数回の削除や再インストールで基準状態を失ったノードは、さらに破壊的な操作を続けるより、きれいなリモートMacで取得、導入、実プロジェクトのテストを再現してから交換を判断する方が安全です。
Xcodeの複数バージョンをCIで扱う場合は、Xcode開発環境の確認に使えるMac環境を参照し、ジョブごとのDeveloper Directoryとruntimeの対応を記録してください。新しい検証ノードが必要なら、リモートMacの利用プランを比較し、既存ノードを壊す前に同じ復旧手順を試せます。
07 FAQ
Xcode 26.6のiOS SimulatorがPreparingのまま進まない場合
Preparing停止は、ダウンロード先への接続失敗、コンポーネントカタログの問題、活動中Xcodeの不一致、導入処理の未完了などを分けて確認します。Xcodeの表示だけでなく、xcode-select、xcodebuild -version、simctlの結果とエラー時刻を保存してください。Forumの報告は個別事例として扱います。
SDKはあるのにSimulator runtimeがない場合
SDKはコンパイル用、Simulator runtimeはシミュレーター実行用です。SDKが見えていても、xcrun simctl list runtimesに対象runtimeがなければ、追加コンポーネントが未導入または導入途中です。端末データの削除やXcode再インストールを先に行わず、活動中Xcodeと公式の追加導入経路を確認します。
コマンドラインでruntimeを取得・導入する場合
対象Xcodeを選択したうえで、現在のXcode公式ドキュメントに記載されたxcodebuildのダウンロード、エクスポート、インポート手順を使います。指定するプラットフォームとruntimeを記録し、パッケージの出所と検証結果を保存してください。未完成のruntimeディレクトリを直接コピーする方法は復旧手順として採用しません。
別のMacからruntimeを再利用する場合
正常に取得できるMacで公式のエクスポートを行い、対象のXcode、プラットフォーム、アーキテクチャが一致するリモートMacへインポートします。導入後はsimctlで列挙し、新規端末、最小テスト、実プロジェクトの順に確認します。SSH切断とMac再起動後の再テストまで終えて、再利用可能と判断してください。
ダウンロード失敗だけでXcodeを再インストールする場合
最初から再インストールする必要はありません。Xcodeの選択先、初回初期化、runtime一覧、DNS、プロキシ、ファイアウォール、インポートログを先に確認します。基準ノードで復元できることを確認し、対象ノードだけが再起動後も失敗する場合に、バックアップを取ってノード再構築を検討します。
現在のMacが何度も再インストールやデータ削除を受け、原因を追える基準状態を失っているなら、同じ修復を繰り返すより、まずクリーンな遠隔Macでダウンロード、インポート、実プロジェクトのテストを通す方が合理的です。自前のMac miniは物理接続や長期固定運用には向きますが、初期費用、保守、故障時の交換、設置場所が必要です。既存のクラウドLinux環境はmacOS専用のXcodeとSimulatorを実行できません。短期の検証、リリース前の追加ノード、再現性の確認なら、必要な期間だけCALMVPSのMac環境を使い、復旧後に自前運用へ戻す判断もできます。