無題

WindowsでiPhoneアプリをデバッグする

iPhone アプリを作りたい。そう思ったことは今までに何度もあった。

iPhoneアプリを作るとなるとMacが必要。次にApple Developer Programの登録が最低限必要。開発用のiPhoneもいるっちゃいる。

そうなると、Mac : 安くても10万円くらい? Apple Developer Program : 年間1.2万円くらい。合計12万円くらい。これらが売れるかも流行るかも分からない。はたまた作れるかも分からないアプリを作る環境を整えるだけに必要だ。

触りだけ、お触りだけ!なんとかさせてください!というわけでWindows PCでゴニョゴニョできないか調べた結果、割と簡単にWindows PCでコーディング、iPhone上で動作までできたので記す。

必要なもの

Windows PC (HDD空き容量30GBくらいはほしいかな)
iPhone (iOS端末であればよいと思う。)(昔のiPhone6を使った)
インターネット環境

Windows PCの準備

Microsoft Visual Studio Preview をダウンロード、インストールする。最新のものでいいと思う。
インストーラー自体の容量は軽い。

インストーラーを実行して直後の選択画面でワークロード→モバイル&ゲームで.NETによるモバイル開発を選択する。右側のインストール詳細にXamarin Workbooks、Xamarin用ユニバーサルWindowsプラットフォームは選択が必要かは不明。自分は選択した。この2つを選択した状態でインストールを進めると、25GBくらい使ったのでHDDの空き容量には注意。

インストールで特に詰まることはないはず。インストール完了後、VSを起動、メニューバーのツール→拡張機能と更新プログラム→オンラインの中にXamarin Updaterがある、、、らしいが出てこなかったのでインストーラーをダウンロードして実行する。ダウンロードにはOffice365のサインインが必要だったので面倒だった。これをダウンロードして実行。実行時にはVSを落としておく。


サンプルアプリのダウンロード

iOSアプリのサンプルアプリが下記からダウンロードできるので落として解答しておく。

ここまでで一旦パソコン側の準備は止める。

iPhoneの準備

Xamarin Live Playerアプリをインストールする。
WindowsでiOSアプリをデバッグ云々でぐぐったページには容易にできるように書いてあるが、ここで少しだけ躓いた。iPhoneカメラでXamarin Live Playerのダウンロード先QRコードを読み取ってジャンプしようとするとアメリカバージョンに切り替わった上にアプリが存在せずダウンロードできない。App Storeの国はアメリカのまま・・・。
まずApp Storeの日本への戻し方は設定→iTunes StoreとApp Store→Apple IDを選択してサインアウトしてサインインし直せばOK。

肝心のXamarin Live PlayerのインストールはTest Flightを用いる。
まずiPhoneにTest Flightをインストール。
次にマイクロソフトのページからXamarin Live Playerのβテスト登録をする。このときメールアドレスが必要。登録すれば即時登録完了となりコードが届くのでこれをTest FlightアプリのRedeemから登録すればXamarin Live Playerをインストールできるようになる。

Xamarin Live PlayerとVisual Studioの連携

Windowsでサンプルプログラムのソリューションファイル(ColorControl.sln)を実行してVSを起動。デバッグデバイスを選択する項目でXamarin Live Playerデバイスの管理を選択するとQRコードが表示される。

iPhoneのXamarin Live Playerを起動し進めるとカメラを起動するのでこのQRコードを読み取るとVSとiPhoneのペアリングが完了する。デバイス管理画面にiPhoneが表示される。(iPhone側に表示される文字コードをVSで入力してもよいみたい)

このときとアプリ実行時にPCとiPhoneが同じネットワーク上にいる必要がある。

アプリの実行

ここまでくればデバイス選択画面でiPhoneを選択してrunしてあげればiPhone上でアプリが実行される。

このアプリはカメラで撮影した写真のコントラストなどを変更するだけのサンプルアプリ。アプリ起動直後は背景は真っ白である。カメラで撮影してやっと写真が表示される。アプリダウンロード画面で写真が表示されているのでカメラ越しの風景がリアルタイムに表示されるものと勘違いした。

あなたにサポートができるのか・・・!