AdHoc(アドホック)
Overview
AdHocは、Appleの審査を回避して非公開に業務用iOSアプリを配布する方法の一つ。
そしてAdHocとは、Apple Developer サイトで取得した AdHoc 用 Provisioning Profile を使ってiOSアプリを署名生成すること。
従来、同要件に対しては InHouse を選択することが常だったが、InHouse アプリを生成するのに必要な契約(ADEP)は新規契約が事実上不可となり(2020年頃)、近年は契約更新できない(2022年以降)ケースも散見され、状況が変化してきている。
この状況を鑑みると用途や制限を含め改めてAdHocを正しく理解しておくことは重要。
AdHoc用のProvisioning Profileを使って署名・生成されたiOSアプリのことをAdHocアプリと呼び、AdHocアプリを iOS 端末にインストールする・させることをAdHoc配布と言う。
AdHoc配信の歴史
Ad hoc配信では、事前にApple Developerにテストを行いたいデバイスのUDIDを登録し、そのUDIDが含まれるProvisioning Profileを用いてArchiveビルドする必要がある。
iPhone黎明期の頃は、自前のファイルサーバーにexportしたipaファイルをアップロードし、インストール用リンクが記載されたhtmlファイルをホストし、Over-the-airで配布していたものでしたが、その後、TestFlightが登場し随分と管理が楽になった。
その後、AppleにTestFlightが買収され、Apple公式のベータ版アプリ配信ツールとして、徐々に現在の形に進化していく。
Ad hoc配信サービスとして有名なものには、Firebase App Distributionがある。
かつてはCrashlyticsとして知られていた会社ですが、Twitter社に買収されてFabricとなり、今度はGoogleに買収されてFirebaseチームに加わり現在に至る。
国産のサービスとしては、DeployGateがよく知られている。
Bitriseでも Deploy to Bitrise.io ステップを利用すると同じようにAd hoc 配信できる。
その他にもたくさんの配信サービスが存在する。
AdHoc(アドホック)特徴
特徴は以下のとおり。
- Appleの審査が不要
- 特定のiOS端末にアプリをインストール可能
- インストール可能な端末数は100台まで
- ADPとADEPの両方で利用可能
TestFlight がまだ存在しなかった時代、AdHoc配布はAppleへの審査に提出する前の関係者テストに使われていたが、今は公式テストツールとして TestFlight がある。
なぜ今でもAdHoc(アドホック)が使われているのか
TestFlightは登場から10年以上も経っており、洗練されて使い易くなっている。
ADP(Apple Developer Program)の契約があるならテストは原則 TestFlight 一択で、AdHoc をテスト用途に使うのは古いやり方。
テストの役割を TestFlight に譲った今の AdHoc は、Appleの審査に出したくない&台数上限の制限を許容しうるアプリを社内や関係者に本配信する手法であると言えます。台数上限を許容できるなら、InHouseアプリと同様に非公開・非審査の業務用アプリ配信手段として利用できます。詳しくは以下をご覧下さい。
AdHoc配布はテスト用途以外に使用できるのか
Appleとの契約書に用途を限定した記載が明記されていない。
またADEPに変わる配信手段を案内するページにも特段用途制約の記述が見られないため、AdHoc配布をテスト用途に限る必要はなく、その不便(UDID登録済み端末に限り100台上限)を許容できるなら、Appleの審査を避けることのできるアプリ配布手段として採用できると言って良い。
ADP契約をしている弊社顧客の中には、
- 100台に満たない規模で使用する業務用アプリを AdHoc 配布で運用
- 数百台規模に配布する業務アプリはカスタムApp配信で運用
というあわせ技を採用頂いている企業もいる。
AdHoc配布を利用される各社におかれては、念の為に契約書を法務部門にて精査することをお勧めする。
また、社外の端末・ユーザにAdHoc配布しても良いのかどうかは、用途とは別次元の問題になってきますので注意。
Adhoc配信手順
1. XCodeにApple IDを連携する
# iosディレクトリをルートに開く
open Runner.xcworkspace
2. Xcodeでの設定手順
アカウント確認
- Xcode → Preferences (または Settings)
- Accountタブ
- Apple IDでログインしていることを確認
2. Signing設定
- 左側のナビゲーターでRunnerプロジェクトを選択
- TARGETS → Runnerを選択
- Signing & Capabilitiesタブ
- Automatically manage signingにチェック ✅
- TeamでApple Developer Teamを選択
- Bundle Identifierが
com.xxx.xxxになっていることを確認
