【2023年初頭版】BtoB向けのiOSアプリの配信方法についてまとめ（非公開App、非表示App）

## はじめに
一昨年くらいからBtoB向けのiOSアプリを開発しており、ノウハウが溜まってきたので記事にしました。

iOSアプリをリリースする場合、App Store経由で配信するのが一般的かと思いますが、BtoB向けのアプリケーションだと用途やセキュリティ的な観点から、不特定多数には公開したくないというニーズがあるかと思います。

そういったときに、非公開Appと非表示App（名前がややこしい）が選択肢としてあります。
本記事では、この2種類の方法や詳しいやり方、注意事項について説明していきます。

## この記事の対象者

- iOSアプリの一般公開についてざっと知っている
- App Store ConnectのマイAppの画面を見たことがある
- BtoB向けのiOSアプリの配信方法について知りたい

## TL;DR
- 自社や特定企業のみの配信方法として非公開App（カスタムApp）があるよ
- 非公開AppはMDMを使って、組織で管理しているiPhoneや引き換えコードと呼ばれるURLで配信できるよ
- 非表示AppはApp Storeで検索しても出てこないけど、URL直アクセスされたら誰でもダウンロードできちゃうよ
- いずれもアプリの審査が必要だよ

## 非公開App（別名：カスタムApp）とは？
非公開Appとは、App Store上に一般公開せず、自社や特定企業のみにiOSアプリを配信したい場合に利用する方法です。

じゃあどうやってアプリ配信すればいいのかと言うと、Apple公式のMDM（モバイルデバイス管理）ツールであるApple Business Manager（以下、ABM）またはApple School Manager（以下、ASM）を使います。

上記を使うことで、組織が管理しているiPhoneに直接アプリを配信したり、引き換えコードと呼ばれるアプリダウンロード用のURLを発番して、URLにアクセスしたユーザーのみにアプリをダウンロードさせることができます。

ここでは、ABMを例にして説明していきます。

アプリが有料だった場合は除きますが、後述するDUNSナンバー発番の数千円以外、アプリ利用側でお金が発生することはありません。

## 非公開Appの配信方法
### ■事前準備（アプリ開発側）
- Apple Developer Programを契約していること
- App Store ConnectのAppが作成されていること
- App Store Connectに配信するアプリのバイナリをアップロードしていること

ここは基本的な話なので割愛します。

### ■事前準備（アプリ利用者側）
1. DUNSナンバーの取得
1. ABMの契約

それぞれ解説していきます。

#### ① DUNSナンバーの取得
DUNSナンバーとは、「The Data Universal Numbering System Number」の略で、世界中の企業を一意に識別できる番号です。

ABMの契約にこの番号が必要になるので、未取得の場合は取得してもらいますが、法人だと元々持っているケースが多いように思います。（体感値）

https://www.tsr-net.co.jp/service/online/get-a-duns-number/index.html

#### ② ABMの契約
ABMを契約します。下記に丁寧に解説されたサイトがあるので、こちらも詳細な手順は割愛します。

https://teachme.jp/38400/manuals/4518338/

### ■非公開App配信の流れ
1. ABMにログインして組織IDと組織名を調べる（利用者側タスク）
1. App Store ConnectでAppを非公開に設定し、審査提出する（開発側タスク）
1. 審査完了後、アプリをリリースする（開発側タスク）
1. ABMのカスタムAppからアプリをダウンロードする（利用者側タスク）

#### ① ABMにログインして組織IDと組織名を確認する（利用者側タスク）
これも親切丁寧に解説されたサイトがありました、、

https://teachme.jp/38400/manuals/6911376

#### ② App Store ConnectでAppを非公開に設定し、審査提出する（開発側タスク）
App Store Connectにアクセスし、左ペインの『一般 -> 価格および配信方法』を押下します。

Appの配信方法という項目があるので、「非公開」に設定、①でABMから確認した「ID」と「組織名」を入力する。

![Appの配信方法.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/393049/86e763ff-fb23-cf50-67a5-da11a334a057.png)

#### ③ 審査完了後、アプリをリリースする（開発側タスク）
App Store Connectからアプリをリリースする。

#### ④ ABMのカスタムAppからアプリをダウンロードする（利用者側タスク）
ABMの左ペインからカスタムAppを選択、アプリを購入する。

※こちら後ほどスクショと詳細追記します。

## 非表示Appとは？
非表示Appとは、App Storeの直リンクによる配信方法です。

通常一般公開したアプリは、AppStoreのトレンドに出てきたり、検索でマッチすれば表示されます。
しかし、非表示Appの場合はApp Storeをいじっている分には表示されず、URLによるApp Storeへの直アクセスのみ表示、ダウンロードすることができます。

## 非表示Appのユースケースは？
先述した通り、非公開App（カスタムApp）の場合は利用者側でABMやASMなどMDMの準備が必須になります。

ただ、迅速にサービス展開したい場合、このMDMの契約がネックになり、アプリ導入までの時間がかかるといった可能性があります。

そういった場合、URLばら撒きによるアプリが不特定多数に公開されてしまうリスクが許容できれば、この非表示Appに軍配があがるといった感じですね。

## 非表示Appの配信方法
### ■事前準備（アプリ開発側）
- Apple Developer Programを契約していること
- App Store ConnectのAppが作成されていること
- App Store Connectに配信するアプリのバイナリをアップロードしていること

こちらも割愛します。

### ■事前準備（アプリ利用側）
特になし。

### ■非表示App配信の流れ
1. 審査メモに非表示Appである旨を記載
1. アプリ審査提出
1. Appleに非表示Appの申請を行う
1. アプリのリリース

#### ① 審査メモに非表示Appである旨を記載（開発側タスク）
App Store Connectの左ペインの『iOS App -> X.X.X提出準備中』を押下し、アプリのメタデータ入力のページを表示する。

「App Reviewに関する情報」の「メモ」に非表示Appである旨を記載する。
「This App is Unlisted App.」と入力したら問題なかったです。

![App Reviewに関する情報.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/393049/8ef7f7bf-2696-df92-31fb-2ddfb557cb6a.png)

#### ② アプリ審査提出（開発側タスク）
通常のアプリと同様、審査提出します。

#### ③ Appleに非表示Appの申請を行う（開発側タスク）
Appleに非表示Appでリリースする申請を投げます。
なぜ非表示Appなのか？などを英語で入力します。

https://developer.apple.com/contact/request/unlisted-app/

#### ④ アプリのリリース（開発側タスク）
非表示Appのリクエスト承認、アプリの審査が完了次第、App Store Connectからリリースします。

リリースが完了したら、App Store Connectの左ペインの『一般 -> 価格および配信方法』を押下します。
Appの配信方法という項目にApp Storeの直リンクが貼られています。

![非表示App_URL.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/393049/ccec1486-9eb0-d310-665b-30fae030c3e6.png)

## 諸注意など
### ① 非公開Appから非表示Appへの変更はできない
App Store Connect上に以下の記載があります。

> 一度Appが承認されると、配信方法を変更することはできません。

非表示Appは設定上公開アプリなので、非公開→公開など跨った変更はできません。

これをやりたい場合は、別のAppとして再審査、リリースする必要があります。
要はBundleIDを変更することになります。（なりました）

### ② 非表示AppとABMのURL配信の両立はできない
ABMの引き換えコードと呼ばれるURLでのアプリ配信は、非公開App（カスタムApp）の特権なのでできなくなります。

ABMを用いて非表示Appを配信したい場合は、組織管理のiPhoneのみ可能です。

## おわりに
非表示Appのおかげで自由度が広がった印象があるので、この記事を見ながらお試しいただけたら幸いです。