Visual Studio For MACにて、iOSアプリのテスト配布用にAd Hoc用.ipaファイルを作成する手順は、Microsoftのオンラインヘルプに記載されていますが、Apple Developer ページとVisual Studioのキャプチャや説明が古く、説明の足りずよく分かりません。そこで2023.11月編としてまとめなおしました。
0.システムフロ ー
Apple や Windows のこの手の仕組みの説明は、システムフロー的なものが無いからでは? まず全体像をこんな感じまとめてみました。
注意点はBuildするMAC毎に証明書が異なる点 です。これは別記事にて解説いたします。
1.前提条件
今回の説明の条件は以下のとおりです。Apple Developerへの加入も必須です。
MAC book 2015 early MAC OS 12.6.5 Visual Studio 2019 for MAC 8.10.25 build2 Xcode 14.1 iPhone iPhone 8 / iOS 16.7.1 デベロッパーモードON
Apple Developerページにて、アプリ名とID( バンドルID )の登録も済ませておきます。
2.証明書の作成
Apple Developerページのトップページにて、一番下にスクロールし、「Certificates, IDs, & Profiles(英語 )」を選択します。
「Certificates 」を選択し、「+」をクリックします。
「iOS Distribution (App Store and Ad Hoc) 」を選択します。(左下図、もしかすると Apple Distribution の方かも) 証明書要求ファイル を選択ページに移ります。(右下図)
証明書要求ファイルは、MAC Bookの「キーチェーンアクセスツール」で以下のように作成します。拡張子は、.certSigningRequest です。
証明書要求ファイルにローカルディスクに保存後(左下図)、ブラウザ上のApple Developerページに戻り 、「Choose file 」を選択し、証明書要求ファイルを選択します。(右下図)
Apple Developerページに証明書要求ファイルがUploadされたら「Continue 」を押します。(左下図) 右下図のページに移れば証明書ができました。証明書ファイル(.cer) は、Visual Studio側が自動ダウンロードするため 、 当ページでダウンロードは不要です。
「Certificates, IDs, & Profiles 」のトップページに戻り、「Certificates 」を選択すると生成された証明書が確認できます。
注意事項 : MAC上でFirefoxを使った場合、一回目のログインは成功しますが、二回目はスルーされログイン画面に戻り続ける事象が発生しました。MAC上では safari を使用した方がよさそうです。Windows上なら Edge / Firefox でも大丈夫でした。(‘24.7月追記)
4.アプリ定義の変更
アプリの設定 「Identifiers 」は以下のように「App Attest 」に変更します。
3.プロビジョニング プロファイルの作成
「プロビジョニング プロファイル」とは何か難しそうでに取っつきにくい感じですが、「アプリ、証明書、テスト端末を紐付けたもの」といったニュアンスかと思います。これが Visual Studio に読ませるのもになります。「Certificates, IDs, & Profiles 」のトップページに戻り、「Profile 」を選択します。(左下図) する。次に「Ad Hoc 」を選択し、「Continue 」をクリックします。(右下図)
次に「APP ID 」に登録しているアプリのプルダウンメニューにリスト表示されるので、対象のアプリを選択し、「Continue 」をクリックします。(下図) 「Offline support」はよくわかりません。デフォルト「No」のままで進めてみます。
次に「Select Certificates 」エリアに生成した証明書がリストされるます。その中から「Distribution 」の方を選択し、「Continue 」をクリックします。(下図) 「iOS Distribution 」の方かと思いきや、こちらを選択すると Visual Studio側の iOS のプロジェクトオプション「ビルト 」->「iOSバンドル署名 」->「プロビジョニング プロファイル 」にて、「プロビジョニング プロファイルが見つかりません 」と表示され、同ファイルの選択ができませんでした。
次に「Select Devices 」エリアに、Apple Developerアカウントに紐づけられた iPhone がリストされます。なおこのページはTestFlight時には表示されません。 「Select All 」か 「XXXのiPhone 」「iPhone (XXX) 」 それぞれを選択し、「Continue 」をクリックします。(下図) Apple Developerアカウントと iPhone の紐付けは、正式なApple Developerページで行うようですが、Xcode で iPhone に一度接続すると自動で登録されるようです。
次に「Provisioning Profile Name 」の欄に名称を指定し、「Generate 」をクリックします。(左下図) プロビジョニング プロファイルが生成され、右下図のページに移ります。 生成されたプはVisual Studio (Xamarin)内でダウンロードされるため、このページで「Download 」の操作は不要です。
5.IPAファイルの作成
操作を Visual Studio For Mac に移します。メニューバー「Visual Studio 」-> 「ユーザ設定 」-> 「発行 」-> 「Apple Developerのアカウント 」を開きます。(ここではアカウントは追加済みであることを前提に説明します) 「証明書の表示 」をクリックします。(下図)
次に「すべてのプロファイルのダウンロード 」をクリックします。(下図) 「証明書」と「プロビジョニング プロファイル 」一覧表に、追加した 証明書 と プロビジョニング プロファイル が表示されます。
ユーザ設定の画面を閉じて、左側のツリーからiOSプロジェクトを開き、info.plist をダブルクリックして開きます。プロパティ「ハンドル識別子 」の値の欄に、Apple Developerページで割当てた APP ID を指定します。
info.plist のウインドウの下端から、「アプリケーション 」のタブを開き、インストール後のアイコンを指定します。これ指定しないとビルドエラーになってしまいます。png形式で「1x 」の方は 512 x 512 dot、「2x 」の方は 1024 x 1024 dot を割当てます。お試しで弊方は大きな✖としています。そしてinfo.plist を閉じます。
次に、左側のツリーからiOSプロジェクトを選択し、メニューバー「プロジェクト 」->「オプション 」を選択します。オプション画面から「ビルド 」->「iOSハンドル署名 」を開きます。「署名ID: 」から「配布(自動) 」を選び、「プロビジョニング プロファイル: 」にて「アドホック(自動) 」を選択し、「OK 」を押します。
【補足】MicrosofrのXmarinの公式ドキュメントには、 「Ad Hoc」という ビルド構成 が掲載されていますが、古い Visual Studio の仕様のようです。2019では「Debug」構成のまま内容を Ad Hoc に設定し直しました。「Ad Hoc」で ビルド構成 を追加しても、ビルド時に指定できませんでした。
次にオプション画面から「ビルド 」->「iOS IPAオプション 」を開きます。「iTunes Package Active (IPA)をビルドする 」にチェックを入れて「OK 」を押します。
次にメニューバー「プロジェクト 」->「スタートアップ プロジェクトの設定 」を選択し(次図)、iOSをデフォルトのビルト構成に設定します。(次々図)
次にメニューバー「プロジェクト 」->「ビルド 」-> 「公開のためアーカイブ 」を選択します。(次図)
ビルドが完了するとアーカイブのウインドウが開きます。「署名と配布 」を押します。
後は下図のように順当に選択していきます。
ファインダーでファイルを確認します。ファイル種「iOSパッケージアーカイブ」となっていますね。
6.iOSに持って行ってみる
IPAファイルのインストール方法は色々あるようですが、Android や Windows 的な発想であれば、これを実機上にコピーすればインストールできるはず???
試しに .ipa ファイルを iPhone に転送して開いてみます。
ipaの形式もapkと同じくzipらしいので、リネームして解凍してみます。
.app ファイルがでてきました。これを開いみると、、、
なんとiOS自体はインストール機能を持っていない!? ipa用にiTunesをセットアップ に続きます。