nuits.jp blog

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

XamarinでMacなし月額$22.5~で始めるiPhoneアプリ開発

//build/ 2016 において、XamarinがVisual Studioに無料で組み込まれることが発表されてから、にわかにXamarin界隈が盛り上がっています。
特に元々Visual Studio& C#erな開発者からすると、非常に魅力的な話なのではないでしょうか?

ただ、実のところ大きな壁がありますよね。。。
そう、MacがないとiPhone向けの開発はできないということです。

そこで本エントリーでは、MyMacをお持ちでない方が、XamarinでiOS開発を体験する為の方法をご説明します。
もちろん月額$22.5で、継続的に開発することも可能ですが、利用頻度が高かったり、それなりに大規模な開発をされたいのであれば、Macを購入いただいた方がよいと思います。

また、本当にさわりだけで良いのであれば、$0.99でお試しできます。
ただし$0.99でお試しできるのは24Hのみです。

概要

本エントリーで紹介させていただくのは、MacinCloudというサービスです。

MacinCloud
http://www.macincloud.com

MacinCloudではリモートデスクトップで接続可能なMacクラウドとして提供してくれるサービスです。

Xamarin for Visual Studioでは、iOS向けのビルドを実行する場合、Xamarin Mac AgentにてMacへ接続して、Mac側でビルドする必要があります。
MacinCloudでは、通常のリモートデスクトップ接続サービスに追加して、月額$2.5でXamarin Mac Agentを接続許可する追加サービスを提供しています。

本エントリーではそのサービスを利用して、クラウド上のMaciOS向けのビルドを実行する方法を解説します。

対象者

本エントリーは以下のような方を対象として想定しています。

  • Xamarinを評価するにあたり、一時的な利用
  • 個人開発などでMacの購入が困難で、それほど大きくないアプリケーションの開発

何分、インターネット経由での接続になるため、レスポンスが良いとは言えません。
また、実機を接続した上でのデバックができません。
このため、実機でしか再現しない不具合が発生した場合のトラブルシュートに問題が発生する可能性があります。

どちらにしても、本格的な開発を開始するのであれば、ローカルネットワーク上にMacをご用意することをお勧めします。

費用について

まず初めに、利用開始時に以下が必要となります。

  • 初期セットアップ手数料:$0.99

そこに期間単位の課金プランを選択します。
MacinCloudには以下のようなプランがあります。

f:id:nuitsjp:20160410122333p:plain

このうち、基本的には「Managed Server」プランを利用することになります。
学生であれば、サービス内容が「Managed Server」と同等の「Academic Plans」が選択可能ですが、ここでは「Managed Server」プランを選択した場合で進めます。

「Managed Server」プランは以下の選択肢があります。

支払い方法 利用制限 基本料金 RemoteBuild 合計
週払い 3時間/日 $12 $1.5 $13.5
5時間/日 $14 $1.5 $15.5
8時間/日 $17 $1.5 $18.5
なし $19 $1.5 $20.5
月払い 3時間/日 $20 $2.5 $22.5
5時間/日 $25 $2.5 $27.5
8時間/日 $35 $2.5 $37.5
なし $45 $2.5 $47.5
四半期払い 3時間/日 $55 $2.5 $57.5
5時間/日 $69 $2.5 $71.5
8時間/日 $89 $2.5 $91.5
なし $129 $2.5 $131.5

「Managed Server」プランには、24hのトライアル期間が含まれています。
このため、申し込んで即解約すると、初期セットアップ手数料の$0.99で、24h利用可能になります。
トライアル期間は、どのプランを選んでも、1日当たり利用制限はないようです。
なので、トライアルだけ利用する想定であれば、24時間戦える準備を整えた上で申し込むと良いでしょう。

MacinCloudのサービスとしての信用度

MacinCloudを利用する場合、お試しだけであれば問題ないのですが、実際の開発に利用しようとした場合、気になってくるのは企業としての信用度でしょう。
特に、AppStoreへの配布まで行うとすると、証明書をMacinCloud上へ保管する必要があり、悪意を持って利用されると、Appleへ登録している証明書を悪用されてしまいます。
この点もあり、本格的な開発にMacinCloudのみで臨むことはお勧めできません。

ただし、MacinCloudのサービス提供者自体は、一定レベルの信用はできると私は考えています。

と言うのは、MicrosoftVisual Studio Team Services上で、Xamarinプロジェクトを自動ビルドする際、そのバックエンドとしてMacinCloudが採用されているからです。
以下のリンク先で、MacinCloudで検索してみてください。

blogs.msdn.microsoft.com

ただし、あくまでこれは判断の一指標であって、信用を保証するものではありませんので、最終的には各自でご判断ください。

前提条件

  • ローカルPCにVisual Studio 2015 Update 2がセットアップ済みであること
  • 要クレジットカード(最低0.99$かかります)

手順概要

  1. MacinCloudとの契約
  2. MacinCloudのセットアップ
  3. Visual Studioから接続・ビルド・デバッグ

MacinCloudとの契約

以下のURLへアクセスしてください。

http://www.macincloud.com/pricing/compare

開いたら、Managed Serverの「More Detail」を押下します。

f:id:nuitsjp:20160402232414p:plain

続いて「Get This Plan」を選択。

f:id:nuitsjp:20160402232623p:plain

そして、以下の画面でプランを選択します。

f:id:nuitsjp:20160402233110p:plain

Locationは近いところがいいでしょう。
Asiaの欄にNear Singaporeとか書いていますが、MacinCloudの中の人曰く香港みたいなので、Asiaで良い気がします。

OSは、YosemiteがMacinCloud的には開発者におすすめらしいです。
理由はMac詳しくないのでよく知りません!

プランは各自ご随意に選択して、「Checkout」を押下してください。
すると次の画面が表示されます。

f:id:nuitsjp:20160402233937p:plain

ここで必ず「Enable Remote Build Port」を選択してください。
じゃないと、Visual Studioから直接リモートビルド&デバックができません。

あとはクレカ情報を入力してSubscribeすると手続きは完了です。

MacinCloudのセットアップ

MacinCloudとの契約が完了するとすぐメールが飛んできて、速利用可能になります。
メールは以下のような内容です。

f:id:nuitsjp:20160402235812p:plain

上のメールの赤でくくったリンクにあるZIPファイルを落として解凍してください。
リモートデスクトップの推奨プロファイルが取得できます。
知識のある方は、ホスト名とポートを指定してリモートデスクトップから接続していただいて問題ありません。
その際、ポート番号は6000番を指定してください。

ダウンロードしたZIPを解凍すると次のようなファイルがあるはずです。

f:id:nuitsjp:20160402235329p:plain

各自の環境に適した解像度を選んで開いていただけたら良いのですが、FullScreenは止めておいたほうがいいでしょう。
後々の操作が面倒になります。
私は1280x1024を選びました。

対象ファイルをダブルクリックすると、ログイン画面が開きます。

f:id:nuitsjp:20160402235533p:plain

アカウントおよびパスワードに、メールに記載されていた情報を入力して、接続してください。

f:id:nuitsjp:20160403000235p:plain

接続できましたね?
では、左下の赤丸でくくったFinderを開いてください。

f:id:nuitsjp:20160403000433p:plain

Finderの中から「Applications」->「Xamarin Studio」をダブルクリックして開いてください。

f:id:nuitsjp:20160403000737p:plain

Xamarin Studioの右上に「Log in」ボタンがありますので、それを押下して開いたダイアログに、Xamarinのアカウント・パスワードを入力してLog inしてください。
このとき、キーボードが英語入力になっています。
@マークは「Shift」+「2」になるので気を付けてください。

ログインできれば、MacinCloud側の設定は完了です。

次はいよいよVisual Studioからのビルドとデバッグです。

Visual Studioから接続・ビルド・デバッグ

では、いよいよVisual Studioの出番です。

f:id:nuitsjp:20160403001420p:plain

とりあえず、何でもいいのでiPhone絡みのプロジェクトを作成してください。
私は「iPhone」->「Blank App」からXamarinTestという名称のプロジェクトを作成しました。

続いて、Visual Studio上の以下の赤枠でくくった「Xamarin Mac Agent」ボタンを押下してください。

f:id:nuitsjp:20160403002740p:plain

「Xamarin Mac Agent Instructions」というダイアログが開きますが、OKボタンを押下して閉じてください。
続いて以下の「Xamarin Mac Agent」画面の「Add Mac」ボタンを押下します。

f:id:nuitsjp:20160403002123p:plain

そして、以下の画面でMac側のアドレスを入力します。

f:id:nuitsjp:20160403002207p:plain

ここには、MacinCloudから届いたメール内の、「Your Mac IP is:」に記載されているIPアドレスを入力し、「Add」ボタンを押下します。

f:id:nuitsjp:20160403002403p:plain

続いて上記画面で、IDパスワードを入力してLoginを押下してください。
IDパスワードは届いたメール内のリモートデスクトップ接続に利用したものと同じものです。

接続の初期化処理にはそこそこ時間がかかりますので、しばらく待機してください。
以下のように、最初に押下した「Xamari Mac Agent」が緑になっていればOKです。

f:id:nuitsjp:20160403003104p:plain

それでは「Debug」ボタンの右の「iPhone」が選ばれているコンボボックスを「iPhone Simulator」に変更してから F6を押してビルドしてみてください。
ビルドは成功しましたか?

成功したら、下図の赤枠を選択し、適当なシミュレーターを選択します。
私はiPhone5S iOS9.2を選びました。

f:id:nuitsjp:20160403003449p:plain

選んだら、おもむろにF5を押してデバックを開始しましょう。
あとは、リモートデスクトップVisual Studioを開いて、実行を待ちます。

結構待ちますし、通信状態によっては失敗したり、応答がなかったりいろいろです。
その場合、Visual Studioを再起動したり、リモートデスクトップ側でログアウトして再接続したり、何度か試してみてください。
うまくいけば以下のように実行され、デバックも実施できるはずです!

f:id:nuitsjp:20160403003943p:plain

。。。と言いましたが、上のアプリすぐ例外で落ちてしまいました。。。
Xamarin.Formsのアプリであればうまく動いていたことから、Xamarin.iOSのBlank Appsのテンプレートの何かに問題があるのか、私が何か誤ったのかもしれませんが、まぁ今回の本質と関係ないのでとりあえずここまでとします。

さいごに

まず大切なことを。
お試しが終わったら、MacinCloudのサイトに接続し、サブスクリプションを必ずキャンセルしてください。
継続課金されてしまいますので。。。

さて、最初にも記載しましたが、実際に利用してみて、利用用途はやはり以下に限る感じです。

  • Xamarinを評価するにあたり、一時的な利用
  • 個人開発などでMacの購入が困難で、それほど大きくないアプリケーションの開発

ただ飛びぬけて不快なのはデバッグ実行だけでした。
デバッグを行う際は、Visual Studioからのリモートにはこだわらず、以下のような手順を踏めば現実的な使い勝手にはなります。

  1. ローカルのVisual Studioで実装し、GitHubなどのリポジトリへソースをアップする
  2. MacinCloudへリモート接続し、リポジトリからソースを取得する
  3. MacinCloud上のXamari Studioでビルドしてデバック実行する

ビルド時間はリビルドはさておき、差分コンパイルであれば、我慢できないレベルではありません。
Xamarin.iOSを利用する場合、ストーリーボードの編集にもMacへの接続が求められますが、ある程度忍耐が必要ですが不可能でもありません。

現時点では、「使えないことはない」と言った感じですが、Buildでデモのあった「iOS Simulator on Windows」がリリースされると、利用範囲は広がる可能性があります。

実際の使用感に関しては、以下のリンク先に動画を上げていますので、良かったら見てみてください。
あまり見やすいものではないですけど。。。

nuits.hatenadiary.jp

それではひとまずここまで。
よいXamarinライフを!