PC パソコン

Xcode「runtime profile not found using “System” match policy」の解決方法【SimError Code 401】

XcodeでSimulatorを起動したときに「runtime profile not found using “System” match policy」と表示され、iOS・tvOS・watchOS・visionOSのシミュレータを使えなくなることがあります。Appleは、Xcode 15で使用していたSimulatorランタイムが一部のmacOSシステムアップデートによって無効化された場合に発生すると案内しています。ここでは、エラーの確認から公式の復旧手順、確認方法までを解説します。

表示されるエラー

The com.apple.CoreSimulator.SimRuntime.iOS-17-2 simulator runtime is not available.
Domain: com.apple.CoreSimulator.SimError
Code: 401
Failure Reason: runtime profile not found using "System" match policy
Recovery Suggestion: Download the com.apple.CoreSimulator.SimRuntime.iOS-17-2 simulator runtime from the Xcode

OS名やバージョンは環境によって変わります。重要なのは、com.apple.CoreSimulator.SimError、Code: 401、runtime profile not found using "System" match policyの組み合わせです。

原因と発生条件

Apple Developer ForumsのDTS Engineerによる公式案内では、一部のMacに配信されたmacOSシステムアップデートが、Xcode 15で使われていたSimulatorランタイムを無効化したことが原因です。Swiftコード、署名、Deployment Target、DerivedDataが直接の原因ではありません。

公式に確認されている範囲:Xcode 15系で利用するiOS、tvOS、watchOS、visionOSのSimulatorランタイムです。AppleはXcode 15.3のリリースノートを更新し、Xcode 15.4のリリースノートにも掲載しました。別世代のXcodeで同じ文言が出た場合は、ランタイムを確認しつつ、そのXcodeのリリースノートも確認してください。

推奨する解決手順

1. Macを再起動する

Appleが最初に案内している操作は、XcodeだけでなくMac本体の再起動です。macOSアップデート後に無効化されたランタイムの状態を更新します。

2. XcodeのPlatformsを確認する

  1. Xcodeを起動します。
  2. Xcode > Settings(旧バージョンではPreferences)を開きます。
  3. Platformsを選択します。
  4. エラーに表示されたOSバージョンのSimulatorランタイムがインストール済みか確認します。

3. ランタイムを再ダウンロードする

必要なランタイムが見つからない場合は、該当項目のGetボタンを押して再ダウンロードします。十分なストレージ空き容量と安定した通信環境を確保してください。完了後にXcodeを再起動し、実行先を選び直します。

コマンドラインで確認する

CoreSimulatorが認識しているランタイムは次のコマンドで確認できます。

xcrun simctl list runtimes

目的のランタイムが一覧にあり、末尾に(unavailable)がなければ利用可能です。複数のXcodeを入れている場合は参照先も確認します。

xcode-select -p
xcodebuild -version

別のXcodeを参照している場合は、Xcode > Settings > Locations > Command Line Toolsで意図したXcodeを選びます。

代替策

  • 実機で一時的に検証する:署名と接続条件を満たすiPhoneなどで実行します。
  • 別のインストール済みランタイムを使う:テスト要件を満たす別OSを一時的に利用できます。ただし、対象OS固有の確認には使えません。
  • 対応する安定版Xcodeへ更新する:Swift、SDK、CIの互換性を確認してから行います。Code 401に対するAppleの直接的な手順は、再起動とPlatformsからの再取得です。

解決を確認する方法

  1. xcrun simctl list runtimesで対象ランタイムが利用可能になったことを確認します。
  2. Xcodeの実行先から該当OSのSimulatorを選びます。
  3. 元のプロジェクトまたは検証用プロジェクトをBuild & Runします。
  4. Simulatorが起動し、Code 401が再表示されないことを確認します。

ランタイムは利用可能なのに特定のSimulatorデバイスだけ失敗する場合は、デバイス定義が別途壊れている可能性があります。新しいデバイスを作成して切り分けてください。

注意点

DerivedDataの削除は第一の解決策ではありません。このエラーはCoreSimulatorランタイムの利用可否を示し、アプリのビルドキャッシュとは層が異なります。/Library/Developer/CoreSimulatorなどの手動削除は、正常なランタイムまで壊すおそれがあります。

「現在のmacOSではこのランタイムをサポートしない」など別のエラーが併記される場合は、再ダウンロードだけでは解決しないことがあります。対応するXcode・macOS・SDKの組み合わせを確認してください。Appleは復旧策を示しており、特定の修正版番号は示していません。

まとめ

SimError Code: 401が表示されたら、Macを再起動し、XcodeのSettings(Preferences)> Platformsで対象ランタイムを確認します。消えていればGetから再ダウンロードし、simctlと実際のBuild & Runの両方で復旧を確認してください。

参照した公式情報