0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Xcode 使用中に別の Xcode を入れると CoreSimulatorService のエラーが出る原因と対処

0
Posted at

発生している現象

Xcodeで以下のようなエラーがでた

Loaded CoreSimulatorService is no longer valid for this process. Simulator services will no longer be available. Error=Error Domain=NSPOSIXErrorDomain Code=61 "Connection refused…

原因

原因は、Xcode を使っている最中に、より新しいバージョンの Xcode の初回セットアップが、システム共有の CoreSimulator.framework を新しいものに差し替えたことです。

前提として、CoreSimulator は Xcode ごとに入っているのではなく、Mac 全体で 1 つだけ /Library/Developer/PrivateFrameworks/ に置かれます。
Xcode 本体はシミュレータを直接動かさず、このフレームワークに含まれる常駐プロセス CoreSimulatorService に接続して、デバイス一覧の取得や起動を依頼しています。
そのため、複数の Xcode を入れていても、シミュレータの土台は全バージョンで共有されます。

差し替えの際には、古い CoreSimulatorService が終了し、新しいものが起動し直されます。
起動中の Xcode は古いサービスに接続したままなので、接続先がなくなってエラーになります。

(私の)今回の場合、既存の Xcode を開いたまま Xcodes.app でより新しい Xcode を入れました。
Xcodes.app はインストール後に初回セットアップまで自動で実行するため、その時点で差し替えが起き、開いていた Xcode でエラーが出ました。

解決方法:Xcode を再起動する

Xcode を再起動すると、新しいフレームワークを読み込み直して新しいサービスに接続するので、この問題は解決します。
Simulator.app を開いている場合は、同じ理由でそちらも終了してから起動し直します。
再起動後に設定し直すものはありません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?