🍎

カスタムアプリ(非公開アプリ)やってみた

に公開

GENDA Advent Calendar 2025 (シリーズ1) の7日目の記事です。

モバイルエンジニアの磯崎です。

8月に訳あってiOSアプリを一般公開アプリではなくカスタム(非公開)アプリとして配布を行ったので、今回の事例でカスタムアプリを行った背景、カスタムアプリの概要、そして実際の配布手順を順に備忘録として記事にまとめようと思います。

背景

GENDAのグループではカラオケBanBanという店舗を400店舗弱運営しており、今夏に店舗業務を効率化するためのDXアプリをiPad向けに開発することになりました。まずはiOSアプリの配布方法を検討することになり、以下の制約があることを整理しました。

配布について

  • MDM連携(運用フェーズで遠隔での配布管理や強制アップデートが必要になる)
  • 数百もの端末へ
  • 社内に閉じる
  • 本番環境

環境について

  • マーケットのこだわりはない
  • Apple Developer Enterprise Programの契約が弊社にない
  • Apple Business Managerが利用できる

これらを踏まえると、どうやらカスタムアプリが最適解そうだという結論に至りました。
選定の際は以下の記事を参考にさせていただきました。
https://zenn.dev/yusuga/articles/9e9b632e0338b2

カスタムアプリとは


カスタムアプリとは、WWDC19で発表されたBtoB向けのiOSアプリ配信方法です。AppStoreへアプリを登録することになるのですが、手順は最も一般的なAppStore公開アプリとほぼ同じで、審査も必要になります。リリース後は、MDMか引換コード配布によって組織内に限定してアプリ配布できます。性質としてはAppStore公開アプリとほぼ同じものですが、業務用アプリの非公開配信に従来使われてきた方法であるInhouseアプリの後継というイメージに近いです。

※ Inhouseアプリの登録には、Apple Developer Enterprise Programの新規契約が必要であり、現在では新規契約が困難です。

そして特徴的なのが、Apple Business Manager、以下ABMの存在です。
これは、デバイス管理やコンテンツ管理を担うApple社提供のポータルサイトで、社用アプリをカスタムアプリ配布する際はABMへの法人登録が必須となります。このABMアカウントの作成により、カスタムアプリ用の自社専用AppStore非公開領域を作ることができます。

※ ABMは法人向けですが、教育機関向けのApple School Managerというものも存在します。

カスタムアプリは公開領域である一般のストアとは別の、ABMアカウントに閉じた非公開領域に属しており、リリース後にストアで検索してもヒットしません。
ABMと紐付けられたカスタムアプリは、MDM配布あるいは引換コード配布によって、限られた端末へ配布できます。主に前者は管理端末へ、後者は非管理端末(個人端末など)への配布が想定されています。

カスタムアプリについてはこちらでよくまとめられています。
https://www.micss.biz/2021/03/08/3427/

実際の配布手順

ここからは、以下の手順に沿ってカスタムアプリ配布の実際の手順を順に説明します。

まずは①の「カスタムアプリとABMの紐付け」についてです。
通常のAppStore公開アプリ配布の手順を進め、AppStoreConnect上で初回リリース前にカスタムアプリ用の設定を行います。アプリの配信方法にて、非公開にチェックをいれてABMの情報を紐付けておきます。なお、今回は計2回審査を行い、どちらもほぼ1日で終わりました。審査時間(というかアプリの扱い自体)はAppStore公開アプリと大して変わらないようです。

カスタムアプリ用設定画面 (App Store Connect)

次に②の「ABMとMDMの連携」についてです。
ABM上でカスタムアプリの有効化とMDMサーバーとの連携設定を行ったのちに、対象アプリの管理対象ライセンスを端末分入手することで、選択したMDMサーバーへ自動連携されます。


カスタムアプリ有効化 (ABM)


MDMサーバー連携設定 (ABM)


ライセンス取得 (ABM)

最後に③の「MDM側でアプリ配布」ついてです。
MDM側でアプリ配布を実施するのですが、操作は私ではなく担当の方に代わりに行ってもらったので詳細は知りません。今回の事例ではMDMサービスとして、iPadのレンタル先であったソフトバンクさんのビジネス・コンシェル デバイスマネジメントを利用しています。MDMサーバーへの端末連携は事前に済ませていただいていたので、アプリリリース完了後は、1時間ほどで店舗のiPadへアプリをインストールすることができました。

カスタムアプリ配布の手順はこちらの記事が非常に参考になりました。
https://eda-inc.jp/post-9783/

まとめ

本記事では、カスタムアプリに焦点を当てましたが、参考記事の3つ目にもあるように、iOSアプリには多彩な配布方法が存在します。例えば、カスタムアプリの別名である非公開アプリに似た配布方法として「非表示アプリ」という配布方法が存在し、AppStoreで公開されているものの検索やランキングには表示されず、ダイレクトリンクを知っているユーザーのみがアプリインストールできる というものです。それぞれの配布方法のメリットデメリットを知り、ケースに最適な配布方法を選択できるようになりたいですね!

余談になりますが、AdHoc配布もテストしてたりしてました。
PoCでのテスト店舗配布の際はスケジュールがギリギリで(一度AppStoreの審査でリジェクトを食らったため)審査がタイムリミットまでに終わればカスタムアプリ配布、もし間に合わなければ事前準備していたAdHoc配布(テスト店舗向けにインストールマニュアルまで作っていた)を行う手筈になっていました。蓋を開ければタイムリミット数分後に審査が完了し、滑り込みで?カスタムアプリ配布を行うことができました(AppIDが同じであれば、AdHoc配布後にカスタムアプリをMDM配布することで上書きできるという仕様を知ったのでこの二段構えをとりました)。

Discussion