In House配布について
Apple Developer Enterprise Programで利用可能な配布方法。AdHocでの配布と違い、インストール先の端末に制限がなく、Provisioning Profileに登録されていない端末にもインストールできる。
ただし、「ADEP契約主体の組織外の人が使う端末にインストールさせてはいけない」とのこと。
また、配布サイトを自作して配布するのが一般的で、配布手順がやや煩雑。
(In House配布に関するHowTo記事では自作サイトで配布する方法が紹介されていることが多かったです。deploygateなどの配布サービスのIn House配布対応については未確認です。)
参考サイト
https://www.micss.biz/2019/11/28/980/
https://medium.com/apps-studio/distributing-enterprise-ios-app-in-house-without-mdm-3ed015009893
Apple公式
https://support.apple.com/ja-jp/guide/deployment/depce7cefc4d/web
本記事におけるIn House配布で使うもの/作成するもの
- Apple Developer Enterprise ProgramにIdentifierが登録されたアプリ(後述の手順では作成しないので、ご用意ください)
- In House配布用のProvisioning Profile(後述の手順で作成します)
- Firebase Hostingで作成した配布用サイト(後述の手順で作成します)
手順
1. Firebase Hostingで配布用サイトを作成
Firebaseにプロジェクトを追加(https://console.firebase.google.com/)、ガイドに従ってプロジェクトを追加

Firebase Hostingを選択

Firebase Hostingでサイト作成
(始めるボタンを押す)

ガイドに従ってサイトを作成

サイト作成では、ローカルでサイトのソースコードを作成/編集して、Firebaseにdeployする
(firebase-toolsで firebase login firebase init で Hosting を選択)

Use an exsting project を選択
(ここまでの手順でプロジェクトが追加されているはずなので)

public ディレクトリを使うようにして、 single-app にする
(未確認ですが、single-appでなくても問題ないと思います)

Firebase initialization complete! したら firebase deploy でFirebase Hostingにサイトをdeplooyする。この後の手順で編集するが、一旦、配布用サイトの作成が完了

2. In House配布用のProvisioning Profileを作成
Provisioning Profileを作成、Distribution に In House を選択

3. アプリをビルド
Xcodeでアプリをarchiveし、 Select a method of distribution で Enterprise を選択

任意でオプションを設定

Distribution manifest information で以下のファイルのURLを入力(各ファイルは後の手順で配布用サイトに配置)
App URL: 配布用サイトに配置するアプリ(ipa)のURL
Display Image URL: 配布用サイトに配置するアプリのイメージ(任意の画像でOKです)
Full Size Image URL: 配布用サイトに配置するアプリのイメージ(任意の画像でOKです)

Select certificate and iOS In House profiles で In House配布用のProvisioning Profileを選択

export すると、アプリ(ipa)やmanifest.plistがエクスポートされる

4. 配布用サイトにアプリとmanifest.plistを配置
ローカルの配布用サイトのディレクトリにある index.html を編集して、配布用サイトにアプリのマニフェストへのリンクを設置。
ポイントはschemeに itms-services:// を指定すること。個人的に、ここで詰まりました。このschemeで起動されるアプリが、manifest.plistをダウンロードして、manifest.plistからアプリダウンロードしてくれるよう。
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.center {
text-align: center;
margin-top: 240px;
}
</style>
<meta charset="utf-8">
<title>install app</title>
</head>
<body>
<div class='center'>
<a href="itms-services://?action=download-manifest&url=https://YOUR-FIREBASE-SITE-ROOT-URL/manifest.plist" style="font-size: 36pt;">install app</a>
</div>
</body>
</html>
配布用サイトの public ディレクトリにアプリ(ipa)とmanifest.plistを配置

再度、firebase deploy を実行し、アプリ(ipa)とmanifest.plistを配布用サイトに配置

5. インストール
配布用サイトに端末のSafariでアクセスし、install app をタップ

ポップアップが表示されたら、インストールをタップ、アプリがインストールされる
