はじめに
さて、あれからいろいろ試した結果
どどん!
一応動きました!
ただ、プランはCI Build Agentではダメで、Managed Serverじゃないと無理でした。
というか、そもそも「iOS Simulator on Windows」は発表あっただけでまだリリースされてませんよね。
デバックはMac上のiOSエミュレータを使う必要があります。
CI Build Agentは「Build Remotely, Non-Interactive」なんでリモートできませんので、当然無理でした。
と言う分けで、Trial期間は24時間になってしまいますが、Managed Serverを契約する必要があります。
それは順を追って説明していきます。
前提条件
・ローカルPCにVisual Studio 2015 Update 2がインストール済みであること
・Xamarinのアカウントが作成済みであること
・クレジットカードがあること(最低0.99$かかります)
MacinCloudを契約する
まずはMacinCloudを契約します。
以下のサイトを開いてください。
http://www.macincloud.com/pricing/compare
開いたら、Managed Serverの「More Detail」を押下します。
で、「Get This Plan」を選択。
そして、以下の画面でプランを選択します。
Locationは近いところがいいでしょう。
Asiaか、Australiaか。。。
なんだか、この件をTwitterで話していたら、次のようなツイートをいただきました。
@nuits_jp Macincloudは非常に良いです!香港における当社のサーバー。
— MacinCloud.com (@MacinCloud) April 2, 2016
と言うことで、Asiaは香港なんですかね?HPにはNear Singaporeとか書いてますけどw
とりあえずAsiaにしてみました。
OSは、YosemiteがMacinCloud的には開発者におすすめらしいです。
理由はMac詳しくないのでよく知りません!
プランは各自ご随意に選択して、「Checkout」を押下してください。
すると次の画面が表示されます。
ここで必ず「Enable Remote Build Port」を選択してください。
じゃないと、Visual Studioから直接リモートビルド&デバックができません。
あとはクレカ情報を入力してSubscribeすると手続きは完了です。
MacinCloudのセットアップ
上記の登録をするとすぐメールが飛んできて、速攻利用可能になります。クラウドすげ~!
さて、次のようなメールが届きます。
上のメールの赤でくくったリンクにあるZIPファイルを落として解凍してください。
リモートデスクトップの推奨プロファイルが取得できます。
知識のある方は、ホスト名とポートを指定してリモートデスクトップから接続していただいて問題ありません。
その際、ポート番号は6000番を指定してください。
ダウンロードしたZIPを解凍すると次のようなファイルがあるはずです。
各自の環境に適した解像度を選んで開いていただけたら良いのですが、FullScreenは止めておいたほうがいいでしょう。
後々の操作が面倒になります。
私は1280x1024を選びました。
対象ファイルをダブルクリックすると、ログイン画面が開きます。
アカウントおよびパスワードに、メールに記載されていた情報を入力して、接続してください。
接続できましたね?
では、左下の赤丸でくくったFinderを開いてください。
Finderの中から「Applications」->「Xamarin Studio」をダブルクリックして開いてください。
Xamarin Studioの右上に「Log in」ボタンがありますので、それを押下して開いたダイアログに、Xamarinのアカウント・パスワードを入力してLog inしてください。
このとき、キーボードが英語入力になっています。
@マークは「Shift」+「2」になるので気を付けてください。
ログインできれば、MacinCloud側の設定は完了です。
Visual Studioを起動しビルド・デバックを実行する
では、いよいよVisual Studioの出番です。
とりあえず、何でもいいのでiPhone絡みのプロジェクトを作成してください。
私は「iPhone」->「Blank App」からXamarinTestという名称のプロジェクトを作成しました。
続いて、Visual Studio上の以下の赤枠でくくった「Xamarin Mac Agent」ボタンを押下してください。
「Xamarin Mac Agent Instructions」というダイアログが開きますが、OKボタンを押下して閉じてください。
続いて以下の「Xamarin Mac Agent」画面の「Add Mac」ボタンを押下します。
そして、以下の画面でMac側のアドレスを入力します。
ここには、MacinCloudから届いたメール内の、「Your Mac IP is:」に記載されているIPアドレスを入力し、「Add」ボタンを押下します。
続いて上記画面で、IDパスワードを入力してLoginを押下してください。
IDパスワードは届いたメール内のリモートデスクトップ接続に利用したものと同じものです。
接続の初期化処理にはそこそこ時間がかかりますので、しばらく待機してください。
以下のように、最初に押下した「Xamari Mac Agent」が緑になっていればOKです。
それでは「Debug」ボタンの右の「iPhone」が選ばれているコンボボックスを「iPhone Simulator」に変更してから F6を押してビルドしてみてください。
ビルドは成功しましたか?
成功したら、下図の赤枠を選択し、適当なシミュレーターを選択します。
私はiPhone5S iOS9.2を選びました。
選んだら、おもむろにF5を押してデバックを開始しましょう。
あとは、リモートデスクトップとVisual Studioを開いて、実行を待ちます。
結構待ちますし、通信状態によっては失敗したり、応答がなかったりいろいろです。
その場合、Visual Studioを再起動したり、リモートデスクトップ側でログアウトして再接続したり、何度か試してみてください。
うまくいけば以下のように実行され、デバックも実施できるはずです!
。。。と言いましたが、上のアプリすぐ例外で落ちてしまいました。。。
Xamarin.Formsのアプリであればうまく動いていたことから、Xamarin.iOSのBlank Appsのテンプレートの何かに問題があるのか、私が何か誤ったのかもしれませんが、まぁ今回の本質と関係ないのでとりあえずここまでとします。
さいごに
まず大切なことを。
お試しが終わったら、MacinCloudのサイトに接続し、サブスクリプションを必ずキャンセルしてください。
継続課金されてしまいますので。。。
さて、今回1日触ってみた所感ですが
「できることはできるが、特にデバックをローカルVisual Studioとリモートのシミュレータ上でやるのはストレスが大きい」
といったところでした。
ビルドに関しては、手元に大きなプロジェクトがなかった為、何とも言えません。
仮に、それなりの規模のプロジェクトが、我慢できる速度でビルドできるようであれば、「iOS Simulator on Windows」がリリースされた後であれば、実用に耐えうるかもしれません。
現状では、リモート接続で全部ローカルのVSからというのは、操作性も含めあまり気持ちの良いものではありません。
ただし、MacinCloudのVM上のMacは非常に軽快に動作していました。
サーバー側のネットワーク速度も、悪くないように思えます。
なので、以下のようにすれば、ある程度は現実的な開発が可能かもしれません。
- ローカルのVisual Studioで実装し、GitHubなどのリポジトリへソースをアップする
- MacinCloudへリモート接続し、リポジトリからソースを取得する
- MacinCloud上のXamari Studioでビルドしてデバック実行する
2016/04/03 修正
下記の記載に誤りがありました。
訂正してお詫びを申し上げます。
なお懸念していた、ビルド結果を手元の実機に配置してテストすることはもしかしたら可能かも知れません。 まだ試せていないため、試せたらまたエントリーします。
MacinCloudからiPhoneの直接実機に配置することは無理なようです。
@pauliom No, you cannot connect your physical iOS device to the remote server. But you can use @TestFlightApp as a workaround. Thanks.
— MacinCloud.com (@MacinCloud) 2012年11月22日
MacinCloudの公式見解としては、TestFlyghtを使えとのことのようです。
そちらはまた別途記事にしてみたいと思います。
2016/04/03 修正ここまで
それでは今日はこのあたりで。
ではまた。