PC パソコン

Xcode Simulator「Failed to open service」の原因と解決方法

XcodeでiOS Simulatorを起動したり、アプリを実行・デバッグしたりした際に「Failed to open service」と表示されることがあります。このエラーは、XcodeやSimulatorがCoreSimulator内部のサービス、あるいはシミュレータ上のデバッグ関連サービスへ正常に接続できないときに発生しやすいものです。単純な一時不調から、壊れたSimulator状態、ランタイム不整合、Xcodeの選択先の誤りまで原因は複数あります。

主な原因

  • SimulatorまたはCoreSimulatorサービスが一時的に不安定になっている
  • 対象Simulatorが正常にBootしていない、または途中状態で停止している
  • Simulatorデバイスの状態やデータが破損している
  • インストール済みSimulator Runtimeに問題がある
  • 複数のXcodeを導入しており、Command Line Toolsの参照先が意図しないXcodeになっている
  • Xcode更新後に古いSimulator状態が残っている
  • Mac側の空き容量不足やバックグラウンドサービスの異常がある

代表的な発生状況

Build自体は成功しているのにSimulatorへのアプリ転送やデバッグ開始の段階で処理が止まり、次のようなメッセージが表示されることがあります。

Failed to open service

エラーの後ろにCoreSimulator、launchd、debugserverなど別の情報が続くこともあります。後続メッセージも原因切り分けの重要な手掛かりです。

確認手順

1. Simulatorの状態を確認する

xcrun simctl list devices

対象端末がBootedになっているか、Unavailableになっていないかを確認します。

2. 利用可能なRuntimeを確認する

xcrun simctl list runtimes

使用予定のiOS Simulator Runtimeが一覧に存在し、Unavailableになっていないことを確認します。

3. 使用中のXcodeを確認する

xcode-select -p
xcodebuild -version

複数バージョンのXcodeを使っている場合は、意図したXcodeのDeveloperディレクトリを参照しているか確認します。

解決方法

方法1:Simulatorを終了して再起動する

Simulatorを完全に終了し、Xcodeも一度閉じてから再起動します。

方法2:すべてのSimulatorをShutdownする

xcrun simctl shutdown all

その後Simulatorを再度起動し、対象デバイスをBootします。

方法3:対象SimulatorをEraseする

Eraseすると、そのSimulator内のアプリ、設定、保存データは削除されます。

xcrun simctl erase all

方法4:壊れたSimulatorを削除して作り直す

特定の1台だけでエラーが続く場合は、「Devices and Simulators」でそのSimulatorを削除し、同じDevice TypeとOS Versionで新しく作成します。

方法5:Simulator Runtimeを入れ直す

Xcodeの「Settings」→「Components」から対象iOS Simulator Runtimeの状態を確認し、必要なら再インストールします。

方法6:Command Line Toolsの参照先を修正する

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
xcode-select -p
xcrun simctl list devices

方法7:Macを再起動する

CoreSimulator関連のバックグラウンドプロセスが不安定な場合、Macの再起動で状態がリセットされることがあります。

方法8:別のSimulator Runtimeで再現するか確認する

別Runtimeで正常なら、特定Runtime側の問題である可能性が高まります。

注意点

「Failed to open service」は単独では原因を一意に特定できない比較的広いエラーです。直前・直後に表示されるDomain、Code、Failure Reason、service名がある場合は必ず合わせて確認してください。

CoreSimulator関連ディレクトリの手動削除より、まずshutdown、erase、Simulator再作成、Runtime再インストールといった標準の方法を優先するのが安全です。

まとめ

最初にxcrun simctl list devicesとxcrun simctl list runtimesで状態を確認し、Simulatorの再起動、xcrun simctl shutdown all、Erase・再作成を順番に試します。それでも改善しない場合は、Runtime再インストール、Command Line Toolsの参照先、Mac再起動まで確認します。