はじめに
VisualStudioと.NET MAUIを使うとMac無しでiOSアプリをデバッグすることが簡単にできるようになりました。
今回はその方法についてご紹介します。
WindowsだけでiOSアプリがデバッグできるようになる利点
1.デバッグの際わざわざMacを引っ張り出してこなくてもよくなる
2.Macを買わなくても済む
3.Windowsの便利ツールを生かした環境でそのままアプリの開発からデバッグまでできる。PowerToysはいいぞおじさん「PowerToysはいいぞ~」
必要なもの
1.AppleDeveloperProgramに登録・・・AppleDeveloperProgramに登録しないとiOSデバイスのデバッグはできません。(どうせアプリをストアに出すのにAppleDeveloperProgramは必要だからこの機会にでも登録しなさい。(年額13000円程度))
2.iPhoneやiPadなどのiOSデバイス・・・これがないと始まりませんね。VisualStudio内のiOSエミュレーターでのデバッグはMacを別途必要とします。
3.iCloudアカウント・・・AppleDeveloperProgramに登録したり、PCとiOSデバイスをつなげるために必要になります。
4.WindowsPCとVisualStudio、そして.NET MAUI・・・MAUIでクロスプラットフォーム開発をしたいならVisualStudioは必須です。(無料版でもiOSデバッグはできます。)
手順
1.AppleDeveloperProgramに登録する
以下のサイトを参考にAppleDeveloperProgramに登録しましょう。
https://developer.apple.com/jp/support/enrollment/
MacやiOSデバイスのアプリ、Webサイトから登録できます。
年間$99(約¥13000程度)の登録料が必要になります。
本名で登録しないと審査に落ちる場合があるようなので注意。
2日程度待てばAppleからメールが届き審査・登録完了となります。
2..NET MAUIでアプリを作る
テスト用のアプリを作成しましょう。
.NET MAUIのテンプレートのサンプルアプリでもよいです。
3.デバッグ選択メニューからiOSローカルデバイスを選択しデバッグ
iPhoneやiOSデバイスをPCにつなぎ、デバッグのデバイス選択メニューから「iOSローカルデバイス」、自分のデバイスを選択
そのままデバッグボタンを押すとダイアログがでるので、そのダイアログの指示通りにiTunesをインストールしたり、iOSデバイスを認識させたりする。
開発者アカウントの追加は作成したアカウントの種類を選ぶこと。
たぶん大多数は個人アカウントを選択するのかな
AppleStoreConnect APIキーの情報を入力するダイアログが出てくるので、ここを放置し以下のサイトからAppleStoreConnectにログインする
https://appstoreconnect.apple.com/login
ログイン後「ユーザーとアクセス」に入り「キー」タブに移動して「APIを生成」ボタンをクリックします。
ダイアログでは名前はわかりやすい名前(ユーザー名など)でよいです。アクセスはとりあえず「Admin」を選択しておけば間違いないです。
キーが生成されたらその生成されたものを放置していたダイアログに入力します。
下の写真の番号の通りに入力していきます。
④の秘密キーのパスについては、「APIキーをダウンロード」ボタンからダウンロードされたファイルのパスを指定します。
私はダウンロードしたファイルをわかりやすい場所に移動させ、その移動先のパスを指定しました。
追加を押し、チームの選択では自分のAppleDeveloperProgramのIDを指定して完了ボタンを押すとiOSデバイスでデバッグが実行され、iOSデバイスにアプリがインストールされます。
そのアプリを開き動作の確認をしましょう。
4.間違えて登録してしまった時の修正
間違えて登録してしまったとき、再度先ほどのダイアログの設定を変更したい場合があると思います。
その時は、VisualStudioの機能だけでは修正ができないので、「ツール」→「オプション」→「Xamarin」→「iOSの設定」→「アーカイブの場所」で指定されているパスの上層フォルダに「Provisioning」フォルダがあり、そのフォルダの「accounts.pass」ファイル、「CookieStorage」の「Cookie.jar」ファイル、「DeveloperStorage」の「DeveloperStorage.json」ファイルをすべて削除することで、再度VisualStudioを開きデバッグを行うともう一度設定できるようになります。