nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

Remoted iOS Simulator for Windowsを使う

[2017.06.28 改稿] 色々と状況が変わった為、全面的にリライトしました。

Xamarin for Visual Studio (Windows版)には、リモートのmacOSに接続して、Windows上でiPhoneの(もちろんiPadも)画面を表示して実行・デバッグする機能が提供されています。
それがRemoted iOS Simulator (for Windows)です。(公式はこちら

百聞は一見に如かず。以下の動画を見てください。

https://raw.githubusercontent.com/nuitsjp/XamarinSamples/master/0041.gif

ちゃんとステップ実行もできます。素晴らしい!

開発環境がWindowsのユーザーからすると、仮に隣にMacが置いてあったとしても非常に便利な機能です。
開発チームがMacを共有しているような現場であれば、特にあるとないとでは、雲泥の差でしょう。

Simulatorでは次のような機能が利用できます。

  • Homeキー
  • 画面のロック
  • スクリーンショット
  • 画面の回転
  • 位置情報の制御(限定的)
  • ソフトウェアキーボードとハードウェアキーボードの切り替え
  • Touch ID(まだ試してないですが)
  • シェイクジェスチャー
  • Toggle In-Call Status Bar(なんだろう?w)
  • メモリー警告の意図的な発生?
  • OSのリブート

利用するにはいくつか前提があります。

前提条件

・Windows PCにXamarinが有効な状態でVisual Studioの最新のバージョンがインストールされていること(2015も多分動くと思いますが未検証です)
Visual StudioがEnterprise Editionであること
・MacにXcodeの最新版がインストールされていること
・MacにXamarin StudioもしくはVisual Studio for Macの最新版がインストールされていること

あたりです。
特に注意が必要なのは

  • Xcode、VS for Win、Xamarin Studio or VS for Macが全て最新で揃っている事
  • Enterpriseのライセンスがある事

です。 特に後者が痛すぎて、世界中から全エディションに搭載してよという要望が上がっていますので、皆さんもぜひこちらで一人三回Voteしましょう!

I suggest you ...
  • 829 votes
  • 30 comments

Allow use of Remoted iOS Simulator from ALL editions of Visual Studio

Until the latest release, where the iOS simulator on windows was renamed to Remoted iOS Simulator, it was possible to remote the iOS simulator to windows from any version of Visual Studio.

With the current release this has changed. Now a Visual Studio Enterprise Edition licence is required.
...

xamarin.uservoice.com

Xamarinユーザーにとって、開発機にWindowsを選ぶかMacを選ぶかの分水嶺になりかねないので、全エディションで有効にした方が良いと思うんですよね。。。 JetBrainsのRiderもだいぶ形になってきているようですし。

さて、現在の最新のVisual Studio 2017 Enterpriseでは、デフォルトでRemoted iOS Simulator for Windowsが有効になっています。
設定を変更したい場合は、Visual Studioの「ツール」>「オプション」>「Xamarin」>「iOSの設定」で、以下のチェックボックスを変更しましょう。

f:id:nuitsjp:20170628175844p:plain

なお、次のような画面が開いてグルグルして進まない場合が稀にあります。

f:id:nuitsjp:20170628180132g:plain

その場合は容赦なく×ボタンで閉じて、デバックし直せば大抵は起動します。

以上です。