iOS パッケージングと配信方法
コストではなく対象者で選ぶ
適切な方法は、誰が、どのくらいの期間、既知の端末で利用するかによって決まります。開発用ビルドは恒久的な本番配信方法ではありません。
MeDo が対応する方法
iOS パッケージングは 1 回につき 500 Credits を消費します。キュー待ち中にキャンセルした場合、またはパッケージングに失敗した場合は、MeDo が Credits を返還します。
ローカルデバッグ
- Apple Developer Program は不要です。
- 無料 Personal Team は最大 10 個の短期 App ID、3 台の端末、端末ごとに 3 App です。
- App ID、端末、プロビジョニングプロファイルは 7 日で失効します。
- TestFlight や App Store には公開できません。
- 一部の Apple サービスと entitlement は有料メンバーシップが必要です。
- MeDo が未署名 IPA のみを提供する場合は、Sideloadly または AltStore Classic と AltServer でローカル署名・インストールします。iOS プロジェクトを開ける場合は Xcode Personal Team を優先してください。
未署名 IPA とローカル実機テストを参照してください。
Ad Hoc
- Apple Developer Program が必要です。
- 明示的 App ID、Apple Distribution 証明書、プロビジョニングプロファイル、登録済み端末 ID が必要です。
- 製品ファミリーごとにメンバーシップ年度あたり 100 台。無効化しても年度内の枠は戻りません。
- 端末や App サービスを追加したら、新しいプロファイルと署名済みパッケージが必要です。
- Beta App Review はありませんが、大規模・未知の対象には不適切です。
Ad Hoc 配信を参照してください。
TestFlight / App Store
- Apple Developer Program と App Store Connect の App レコードが必要です。
- MeDo がビルドを App Store Connect にアップロードします。
- 内部テストは最大 100 人の対象 App Store Connect ユーザーです。
- 外部テストは最大 10,000 人で、Beta App Review が必要な場合があります。
- TestFlight ビルドは 90 日で失効します。
- メタデータとコンプライアンスを完了すれば同じビルドを App Review に提出できます。
TestFlight / App Store パッケージングと App Store 公開を参照してください。
無料・有料アカウントの違い
利用可能な機能は、メンバーシップ、App ID、プロビジョニングプロファイルで決まります。コンパイルできるだけでは利用可能とは限りません。
最新情報は Apple の iOS 対応機能表を確認してください。
署名資産
有料配信の前に、次を一致させます。
- MeDo プロジェクトとバイナリの Bundle ID
- Certificates, Identifiers & Profiles の明示的 App ID
- TestFlight / App Store 用の App Store Connect App レコード
- 正しい App ID、entitlement、証明書、および Ad Hoc の場合のみ端末を含むプロビジョニングプロファイル
App Store Connect API の秘密鍵と署名資産は信頼できる管理者だけに限定します。.p8 は一度しかダウンロードできません。漏えいまたは不要になったキーは直ちに無効化してください。
本番向けの選択肢
- 非公開リスト App — 審査可能な App を提出し、直接リンク限定配信を申請します。
- カスタム App — 初回承認前にプライベート配信を選び、Apple Business Manager / School Manager の組織 ID を指定します。
- Enterprise 配信 — 対象組織が自社従業員に専有 App を配信する制度であり、一般顧客向けの代替ではありません。
確認リスト
- Bundle ID が確定し、すべて一致している。
- 対象者と利用期間に合う方法を選んだ。
- App ID で必要な entitlement を有効化した。
- 権限説明が実際の用途を説明している。
- Account Holder が最新契約に同意した。
- Ad Hoc の全 UDID をビルド前に登録した。
- TestFlight/App Store の App レコードが存在し Bundle ID が一致する。