[.NET MAUI] iPhone実機デバッグ
開発環境のMacbookにiPhone実機をUSB接続してアプリのデバッグを可能にしたい。
Apple Developer Programへの登録
MacBookとiPhoneをUSB接続、あるいは同一Wi-Fiに接続していれば、VSforMac左上にDebug > iOSデバイス > iPhone SE
と表示される。(iPhone SE
はデバイスに設定した名前)
ADPに未登録(デバイスのプロビジョニングが未実施)のままiPhone SE
を選択しておもむろにデバッグ実行してみると、次のようなエラーとなる。
公式サイトに書いてある通り、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ファイル
VSforMacへApple 開発者アカウントを追加
ここからは公式サイトを見ながら手順を進める。
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アプリのソリューションを開いての作業となる。
公式サイトの手順通り 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世代だとこうなってしまった。
たまたま気づいたが、Info.plist
ファイルのプロパティリストエディターの配置情報から以下のような設定も可能。
- デバイスファミリ: 「iPhone/iPad」「iPad」「ユニバーサル」
- 方向: 「縦」「上下反転」「横(左)」「横(右回転)」