[Xamarin] Visual Studio から Mac に iOS SDK Synchronization できない/iOS シミュレータに接続できないときの解決方法

たぶん、自分の環境前提かもしれませんが、一応メモ的に。

何かのはずみで「iOS SDK Synchronization」の Check Now がクリックできなくなって、Mac の MonoTouch との同期ができなくなることがあります。何故、こんなことになるのか分からないのですが、過去に2度ほど経験して、今回が3回目。

image

このチェックができないと、Visual Studio から Mac の iOS シミュレータに接続できなくて困った状態になるんですよね。暫くして、Xamarin がバージョンアップされると直ったりするのですが、今回は直近で仕事で使うためにいくつか調べました。

公式な回答としては、下記のように手動でシンクロする方法が示されていますが、うまくいきませんでした。回答自体が以前のバージョンなので(確か、この時にも Visual Studio からアクセスができなくておかしなことになった気が)、うまくいかないのかもしれません。

Downgrade or ignore iOS SDK sync error “The SDK synchronization returned with error Unknown” – Xamarin Forums
http://forums.xamarin.com/discussion/19540/unable-to-connect-to-server-and-the-sdk-synchronization-returned-with-error-unknown

先の Check Now が押せる状態になると、タスクバーに MonoTouch を同期させてください、というメッセージがでます。これをクリックして同期さえるわけですが、なんらかのタイミングでこのメッセージ自体がでなくなってしまいます。

image

たぶん、↑のが出していると思うんですよね。

でもって、サービス自体は↓ではないかと。

image

タスクマネージャを開くと「Bonjour Service」というものがあります。おそらく、これがシンクロを管理しているものです。このサービスを再起動させることによって、うまく同期が始まります。何かのフラグかなんかが引っ掛かっているような気がするんですよね。ちなみに、PC を再起動しても Xamarin を再インストールしても、この内部的なフラグはクリアされなくて、残っているようです。曖昧ですが、そんな感じで「再起動」するとうまくいきます。

ちなみに、Xamarin.iOS Build Host Diagnosis で疎通チェックをすると、Connection to Mac server で失敗した状態になっています…が、これで iOS シミュレーターに接続できる状態です。以前は、Failed のままだとシミュレータに接続できなかったので、どこかの時点で内部的に変わったのかもしれません。

image

ちなみに、iOS シミュレータに接続できない状態の時は、最後の Comparing のところが Failed になっていて、上の項目は Passed になっていました。何か変な状態になっているようですが、ひとまずこれで Visual Studio から iOS シミュレータに接続ができます。

カテゴリー: Xamarin パーマリンク