ルートの詳細:制限とアカウントの種類
MeDo が対応する iOS ルートのリファレンス。デバイスとテスターの上限、無料 Apple ID でできることとできないこと、署名アセット、Apple の非公開配布オプション。
このページは iOS:アプリを iPhone に入れるの詳細リファレンスです。まずアプリをスマートフォンに入れたいだけなら、そちらから始めてください。正確な上限を知りたいときにこのページをご覧ください。
費用だけでなく、対象者で選ぶ
適切なルートは、誰がアプリを必要とし、どのくらいの期間使い、事前に対象者が判明しているかによって決まります。開発用のビルドは、長期的な本番配布の手段にはなりません。
MeDo が対応するパッケージングルート
iOS のパッケージングジョブは 1 回につき 500 クレジット を消費します。ジョブがキュー待ちの間にキャンセルした場合、またはパッケージングが失敗した場合、MeDo はクレジットを返還します。
ローカルデバッグ(Local Debug)
自分が管理するデバイスで UI の確認、機能検証、初期プロトタイプを行う場合に、ローカルデバッグを使用します。
- Apple Developer Program のメンバーシップは不要です。
- 無料の Personal Team では、短期の App ID を最大 10 個、デバイスを 3 台、デバイスごとにインストール済みアプリを 3 個まで利用できます。
- App ID、デバイス登録、プロビジョニングプロファイルは 7 日で期限切れになります。期限が切れたら再構築して再インストールしてください。
- このルートでは TestFlight や App Store に公開できません。
- 一部のアプリサービスとエンタイトルメントには有料メンバーシップが必要です。
- MeDo が未署名の IPA のみを提供する場合は、Sideloadly または AltStore Classic と AltServer を使ってローカルで署名・インストールします。iOS プロジェクトを開ける場合は、Xcode の Personal Team を優先してください。
自分の iPhone でテストする(Local debugging)を参照してください。
Ad Hoc
既知のデバイス一覧で、管理されたテスト、デモ、受け入れテストを行う場合に Ad Hoc を使用します。
- Apple Developer Program のメンバーシップが必要です。
- 明示的な App ID、Apple Distribution 証明書、プロビジョニングプロファイル、登録済みのデバイス ID が必要です。
- Apple は、メンバーシップ年度ごと・製品ファミリーごとに最大 100 台のデバイス登録を許可しています。デバイスを無効にしても、メンバーシップ年度がリセットされるまで枠は回復しません。
- デバイスの追加やアプリサービスの変更には、新しいプロビジョニングプロファイルと新たに署名したパッケージが必要です。
- TestFlight の Beta App Review はありませんが、このルートは不特定または大規模な対象者には適していません。
特定のデバイスにインストールする(Ad Hoc)を参照してください。
TestFlight / App Store
管理されたベータテストと本番提出には、このルートを使用します。
- Apple Developer Program のメンバーシップと App Store Connect のアプリレコードが必要です。
- MeDo は処理済みのビルドを App Store Connect にアップロードします。
- 内部テストでは、対象となる App Store Connect ユーザーを最大 100 人までサポートします。
- 外部テストでは最大 10,000 人のテスターをサポートし、Beta App Review が必要になる場合があります。
- すべての TestFlight ビルドは 90 日で期限切れになります。
- アップロード済みの同じビルドは、メタデータとコンプライアンス情報が揃った後に App Review の対象として選択できます。
テスターと共有してリリースする(TestFlight → App Store)と App Store で公開するを参照してください。
無料アカウントと有料アカウントの違い
Apple は、プログラムのメンバーシップ、App ID の構成、プロビジョニングプロファイルに基づいて機能の利用可否を決定します。フレームワークがコンパイルできるからといって、その機能が動作すると思い込まないでください。
Apple は機能の利用可否を変更することがあります。使用する App ID とメンバーシップについては、公式のサポート対象機能一覧を正式な情報源としてください。
署名アセット
有料ルートが機能するには、次の識別子が一致している必要があります。
- MeDo プロジェクトとアップロードするバイナリの Bundle ID
- Certificates, Identifiers & Profiles の明示的な App ID
- TestFlight または App Store 配布用の App Store Connect アプリレコード
- 正しい App ID、エンタイトルメント、証明書、そして Ad Hoc の場合のみ許可されたデバイスを含むプロビジョニングプロファイル
App Store Connect API の秘密鍵と署名アセットは、信頼できる管理者のみが扱えるようにしてください。.p8 秘密鍵はダウンロードできるのは一度だけです。鍵が漏洩した場合や不要になった場合は、すぐに取り消してください。
本番配布の代替手段
Ad Hoc と無料プロビジョニングを恒久的な配布手段として使用しないでください。
- Unlisted App — 審査可能な状態のアプリを提出し、非掲載配布を申請します。アプリは App Store から配信されますが、直接リンクからのみ見つけられます。
- Custom App — 初回承認の前に非公開配布を選択し、Apple Business Manager または Apple School Manager の組織 ID を指定します。
- Enterprise 配布 — 対象となる組織が、自社の従業員のみに専有アプリを配布する場合に限られます。一般的な顧客向け配布の代替手段ではありません。
ルートのチェックリスト
パッケージングの前に、次を確認してください。
- Bundle ID が確定しており、一貫している。
- 対象ルートが、想定する対象者とインストールの有効期間に合っている。
- App ID で必要なエンタイトルメントが有効になっている。
- プライバシー権限の説明文があり、実際の用途を説明している。
- アカウント所有者が最新の Apple 契約に同意している。
- Ad Hoc の場合、対象となるすべての UDID がビルド前に登録されている。
- TestFlight/App Store の場合、App Store Connect のアプリレコードが存在し、Bundle ID が一致している。