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をセットアップに続きます。