Open4

[.NET MAUI] iPhone実機デバッグ

GomitaGomita

開発環境のMacbookにiPhone実機をUSB接続してアプリのデバッグを可能にしたい。

GomitaGomita

Apple Developer Programへの登録

MacBookとiPhoneをUSB接続、あるいは同一Wi-Fiに接続していれば、VSforMac左上にDebug > iOSデバイス > iPhone SEと表示される。(iPhone SEはデバイスに設定した名前)
ADPに未登録(デバイスのプロビジョニングが未実施)のままiPhone SEを選択しておもむろにデバッグ実行してみると、次のようなエラーとなる。

https://learn.microsoft.com/ja-jp/dotnet/maui/ios/device-provisioning/?view=net-maui-8.0

公式サイトに書いてある通り、ADPまたはADEPの登録が必要となる。デバッグ実行くらい無料でやらせてくれ、と思ったけど、どうあがいてもADPの登録(年間12,800円)は必要っぽい。
ADPのライセンス購入後48時間にようやく使用可能になるという記事を見かけたが、当方では半日程度でメールが来た。

App Store Connect API キーの取得

続いて App Store Connect にApple IDでサインインしてApp Store Connect APIキーを取得する。
サインイン後、 [ユーザーとアクセス] → [キー] と進んで、 [アクセス権をリクエスト] ボタンをクリック → [APIキーを生成] ボタンをクリックする。ここで生成された以下の4つのものは後で使用するので、大切に保管しておく。

  • [名前]の値
  • [Issuer ID]の値
  • [キーID]の値
  • API Keyをダウンロードした.p8ファイル
GomitaGomita

VSforMacへApple 開発者アカウントを追加

https://learn.microsoft.com/ja-jp/dotnet/maui/ios/apple-account-management?view=net-maui-8.0&tabs=vsmac

ここからは公式サイトを見ながら手順を進める。
VSforMacの「ユーザー設定」から[公開処理中] > [Apple Developerのアカウント] > [追加] > [個別のアカウント] と進んで下記のように入力する。

  • 名前: App Store Connect APIの[名前]
  • 発行者ID: App Store Connect APIの[Issuer ID]
  • キーID: App Store Connect APIの[キーID]
  • 秘密キーのパス: App Store Connectからダウンロードした.p8ファイルのパス

自動プロビジョニングを試す

ここからは.NET MAUIアプリのソリューションを開いての作業となる。

https://learn.microsoft.com/ja-jp/dotnet/maui/ios/device-provisioning/automatic-provisioning?view=net-maui-8.0&tabs=vsmac#enable-automatic-provisioning

公式サイトの手順通り Info.plist ファイルのプロパティリストエディターを開いて [アプリケーション] ビューで編集し、[スキーム] を [自動プロビジョニング] にして [チーム] をドロップダウンリストから [名前 (キーID)] 選択すると、[接続されたデバイスにアプリをデプロイする準備ができました。] と表示されたので、手応えあり、と思いデバッグ実行すると…

Info.plist を見ると <CodesignProvision>自動</CodesignProvision> となっているのがなんとなく怪しい気がした(VSforMacを英語表示に変えると 自動 ではなく Automatic なので)。
とはいえ、プロビジョニングの仕組みがさっぱりわからんので、自動プロビジョニングはここで一旦ギブアップ。

手動プロビジョニングを試す

先ほどの設定画面で [スキーム] を [手動プロビジョニング] に切り替えて、[バンドルの署名] ボタンをクリック。
するとプロジェクトのプロパティ画面が開くので、下記の通り設定する。

  • 署名 ID: 開発者: Created via API (キーID)
  • プロビジョニングファイル: VS: WildCard Development

今度こそ、と思いデバッグ実行すると、ビルド中でしばらく時間経過し、

codesignがキーチェーンに含まれるキー"..."を使用して証明しようとしています。

が2回表示された後、無事にiPhone実機で.NET MAUIアプリが実行た!
なお、iPhone SE第3世代の解像度に合わせて画面を作ったので、第1世代だとこうなってしまった。

GomitaGomita

たまたま気づいたが、Info.plist ファイルのプロパティリストエディターの配置情報から以下のような設定も可能。

  • デバイスファミリ: 「iPhone/iPad」「iPad」「ユニバーサル」
  • 方向: 「縦」「上下反転」「横(左)」「横(右回転)」