Xcode8.0に更新したらシミュレータでアプリのビルドができなくなったので、その対処法をメモしておきます。
問題発生の経緯
Xcode8.0にアップグレードしました。
そしたら、今までシミュレータでiPhone4から6sまで一覧が出てきて、好きなデバイスを指定してアプリをビルドできていたのに、「Generic iOS Device」しか選択できなくなっていました。
この状態で起動しようとしても、以下のメッセージが出てビルドできない。
A build only device cannot be used to run this target.
No supported iOS devices are available. Connect a device to run your application or choose a simulated device as the destination.
「Generic iOS Device」の下にあるAdd Aditional Simulaterを押すと、これまで選択できていた各世代のiPhoneが表示されますが、これをクリックしてもそのデバイス情報が表示されるだけで、これでビルドできるわけではありません。
左下の+ボタンを押しても、機種、OSのバージョンを自分で指定したデバイスがここに表示されるようになるだけで、ビルドに使えるデバイスとして追加されるわけでもない。
解決法
原因はアプリのOSのバージョンがシミュレータのOSのバージョンより新しいものが指定されていたことでした。
アプリ側では、Development Targetが9.1に、シミュレータの方では各iPhoneのiOSは9.0になっていたため、これらのシミュレータが使えなくなっていたのです。
Xcodeを更新したことで、どちらかバージョンが勝手に変わって、このミスマッチが起こったのでしょう。この辺の細かいバージョンはあまり意識してなかったので、どちらが変わったのかはわかりませんが。
対処法としては、アプリ側のDevelopment Targetをシュミュレータ側に合わせる(バージョンを下げる)か、Add Aditional Simulater→Devicesウィンドウ左下の+ボタンを押して、アプリより新しいiOSのシミュレータを新しく作成・追加してやることですね。
せっかくなんで、iOS10のiPhone7を作ってみました。
無事、シミュレータとしてiPhoneが表示されるようになりました。
ご参考になれば幸いです。