Apple App Store 申請手続きチェックリスト
個人 / 小規模チームが iOS アプリを App Store に申請するときの作業項目を、上から順にこなせる形で並べたチェックリスト。各項目はクリックで完了マークが付き、ブラウザの LocalStorage に保存されるので作業を中断しても続きから再開できる。Reject されやすい落とし穴と TIPS も併記。
目次
1. 全体フロー
[Apple Developer Program 加入] ← 個人 $99/年, 法人は D-U-N-S 必要
│
▼
[Bundle ID / 証明書 / Provisioning] ← Xcode 自動管理でも可
│
▼
[App Store Connect でアプリ作成]
│
▼
[ストアページ情報入力] ← アイコン / スクショ / 説明文 / プライバシー
│
▼
[Xcode で Archive → Upload] ← Bundle Version は単調増加
│
▼
[ビルド処理待ち(5〜30 分)]
│
▼
[(任意) TestFlight でベータ確認]
│
▼
[App Review に提出]
│
▼
[Waiting → In Review → Approved / Rejected]
│ │
▼ ▼
[Ready for Sale] [Resolution Center で対応]
所要時間の目安: 初回申請は事前準備(D-U-N-S, 銀行情報, 証明書類)に 1〜2 週間、その後の作業は実働 2〜3 日。審査自体は通常 24〜48 時間で結果が出る(Reject だと往復が増える)。
2. Apple Developer Program 加入
注意: 法人で D-U-N-S を新規取得する場合、登記情報と 完全に一致する 名前 / 住所で取らないと Apple 側で照合が通らず登録が止まる。途中で修正できないので最初から正確に。
3. Bundle ID / 証明書 / Provisioning
TIPS: 個人開発なら Xcode の Automatically manage signing に任せて OK。手動管理は CI / 複数アプリで秘密鍵を共有するときに必要になる。
4. App Store Connect でアプリ作成
App Store Connect(appstoreconnect.apple.com)→ My Apps → 「+」→ 新規 App。
5. App Information(基本情報)
左メニュー → App Information で記入する情報。言語ごとに別々に入れる項目があるので、ローカライズ対象の各言語で記入する。
6. 価格と配信地域
初回は無料 / 全地域から始めて、運用が安定してから絞るのが安全。中国本土だけは ICP ライセンスなど別要件があるので、最初は外しておくのも一手。
7. プライバシー(最重要)
近年、Reject の最大要因はプライバシー関連。App Privacy / Privacy Manifest / ATT / Usage Description の 4 つすべてを整合させる必要がある。
7.1. App Privacy(栄養成分表示)
「栄養成分表示」とは?
Apple が 2020 年(iOS 14.3 / App Store Connect)で導入した Privacy Nutrition Labels(プライバシー栄養成分ラベル)の通称。食品パッケージの栄養成分表示になぞらえた Apple の公式呼称で、ストアのアプリページに以下の 3 区分で収集データが表示される。
- データの追跡に使用されるデータ(Data Used to Track You)
- ユーザーにリンクされたデータ(Data Linked to You)
- ユーザーにリンクされていないデータ(Data Not Linked to You)
位置情報 / 連絡先 / 購入履歴 / 識別子などを「収集しているか・何の目的か」で申告する。Firebase / AdMob / Sentry など第三者 SDK が裏で収集している分もすべて自己申告する必要があり、近年の Reject 上位要因。
App Store Connect → App Privacy で収集データの種類と用途を申告。第三者 SDK の収集も自分のアプリの収集として申告するのが落とし穴。
7.2. Privacy Manifest(PrivacyInfo.xcprivacy)
2024 年 5 月以降、サードパーティ SDK を使うアプリでは PrivacyInfo.xcprivacy の同梱が必須。アップロード時にチェックされる。
典型的な Reason 値: UserDefaults なら CA92.1(同じアプリ内で書き読み)、FileTimestamp なら C617.1(自分が作ったファイル)。Apple のドキュメント "Describing use of required reason API" に対応表がある。
7.3. ATT / Usage Description
Info.plist に Usage Description(使用理由文)を入れていない API を呼ぶとアプリがクラッシュする。使う API すべてに対応する文言を必ず入れる。
8. ストアページ(アイコン・スクショ・テキスト)
8.1. アイコン
8.2. スクリーンショット
App Store ではデバイスサイズごとに別々のスクショが必要。最大デバイスサイズを用意すれば下のサイズは Apple が自動で縮小してくれるが、できれば各サイズ手動で作るのが推奨。
| デバイス | 解像度 | 必須/任意 |
|---|---|---|
| iPhone 6.9" (16 Pro Max など) | 1290 × 2796 | iPhone 対応なら必須 |
| iPhone 6.5" (11 Pro Max など) | 1242 × 2688 / 1284 × 2778 | 任意(推奨) |
| iPad 13" (Pro 13") | 2064 × 2752 | iPad 対応なら必須 |
| iPad 12.9" (Pro 第 2-6 世代) | 2048 × 2732 | 任意 |
8.3. テキスト
8.4. ローカライズ
9. ビルド作成とアップロード
9.1. Xcode 側の事前確認
9.2. Archive とアップロード
9.3. 処理待ち と Export Compliance
よくある処理失敗: ITMS-91053(必須 Reason API 未宣言)、ITMS-90683(Usage Description 不足)、ITMS-90338(dSYM 不足)、ITMS-90809(非推奨 API 使用)。エラーメールが来たら指定の項目を埋めて再アップロード。
10. TestFlight(任意・推奨)
本番審査の前に身内 / ベータユーザーに配って動作確認するフェーズ。新規 1.0 では本番と同じビルドを TestFlight で先にテストするのが定石。
11. App Review への提出
App Store Connect → アプリ → 「+ Version or Platform」でバージョンを作成(または既存バージョンに対してビルドを紐付け)。
新規アプリ(1.0)は通常より審査が厳しい。 説明文 / スクショ / 機能のすべてが整合していること、Demo Account が完璧に動くことを直前に確認。提出後 24-48 時間で In Review → 結果通知。
12. よく Reject されるパターン
| Guideline | 典型例 | 対策 |
|---|---|---|
| 2.1 App Completeness | クラッシュ / プレースホルダーテキスト / 機能不全 | 実機で全機能を一通り動かしてから提出 |
| 2.3.1 Hidden Features | 未公開機能 / プライベート API 使用 | 公開 API のみ使用 |
| 2.5.1 Software Requirements | 非公開 API 使用 / メソッドスウィズリング濫用 | 同上 |
| 3.1.1 In-App Purchase | デジタルコンテンツの外部決済誘導 | StoreKit / IAP に統一(実物商品は除く) |
| 4.0 Design | UI が壊れている / iOS らしくない / 不自然 | HIG 準拠、複数デバイス / Dynamic Type で検証 |
| 4.2 Minimum Functionality | 機能が薄い / Web ラッパーのみ | ネイティブ機能を組み込む |
| 4.3 Spam | 既存アプリの薄いコピー / 重複出品 | 独自性を確保 |
| 4.8 Sign in with Apple | サードパーティログイン提供時に Apple 認証なし | Sign in with Apple も提供 |
| 5.1.1 Privacy - Data Collection | 不要な権限 / Usage Description 不足 / 説明文が抽象的 | 最小権限、具体的な利用目的を明記 |
| 5.1.2 Privacy - Data Use and Sharing | Privacy Policy と App Privacy が不一致 | 申告内容と Privacy Policy を整合 |
| 5.1.3 Health and Health Research | 医療系の根拠不足 | 医療従事者監修 / エビデンス提示 |
| 5.2.1 Intellectual Property | 商標 / キャラ無断使用 | 権利確認、ライセンス取得 |
13. 審査ステータスと Reject 対応
13.1. ステータスの流れ
[Prepare for Submission] ← 入力中
│
▼
[Waiting for Review] ← 提出済み(通常 24h 以内に進む)
│
▼
[In Review] ← 審査中(数時間〜1 日)
│
├──→ [Pending Developer Release] ← 承認、手動リリース待ち
│ │
│ ▼
│ [Ready for Sale] ← 配信中
│
└──→ [Rejected] ← 拒否、Resolution Center で対応
13.2. Rejected された場合
Rejected の心構え: 初回はほぼ何かしら指摘される。短文で礼儀正しく Reply し、修正は指摘範囲だけに絞る(範囲外を弄ると別の Reject 理由を生む)。返答待ちは新規申請より早く 24h 以内が多い。
14. リリース後
15. 参考リンク
- App Store Review Guidelines — 審査ガイドライン本体
- Human Interface Guidelines — UI/UX ガイドライン
- App Store Connect Help — Connect 操作マニュアル
- Privacy Manifest Files — Privacy Manifest 公式ドキュメント
- Describing use of required reason API — Reason 値一覧
- App Privacy Details — App Privacy 申告ガイド
- Contact Us / Expedited Review — 緊急審査リクエスト窓口
- Standard EULA — デフォルト使用許諾契約