取り組みの背景 — なぜ審査で落ちるのか
App Store にアプリを提出して、数日後に届くリジェクト通知。個人開発者にとって、これほど心が折れる瞬間はありません。しかし Apple の審査プロセスは決してブラックボックスではなく、明確なガイドラインに基づいた透明なプロセスです。
Rork や Rork Max で開発したアプリも例外ではありません。AI が生成したコードであっても、審査基準は同じです。むしろ AI 生成アプリだからこそ注意すべきポイントがあります。
ここではApple の App Store Review Guidelines に基づいた実践的なチェックリストと、Rork アプリ特有の注意点を網羅的に解説します。
セクション1: 提出前の基本チェック
アプリの完成度
Apple が最も重視するのはアプリの完成度です。ベータ版やプロトタイプは審査を通過しません。
確認すべき項目は以下の通りです。すべての画面遷移が正常に動作すること、プレースホルダーのテキストや画像が残っていないこと、リンク切れがないこと、そしてクラッシュが発生しないことです。
Rork で開発している場合、AI が生成したプレースホルダーテキスト(「Lorem ipsum」や「サンプルテキスト」など)が残っていないか入念に確認してください。
バンドル ID とバージョン番号
バンドル ID は一意である必要があります。Rork Max の場合、com.yourname.appname 形式で設定します。バージョン番号は semantic versioning(例: 1.0.0)に従い、ビルド番号は提出のたびにインクリメントします。
最小 OS バージョン
Rork Max で Swift アプリを書き出す場合、iOS 17 以降を最小バージョンとするのが現在の推奨です。iOS 16 をサポートする場合は、利用する API の互換性を @available アトリビュートで明示的にチェックしてください。
セクション2: メタデータとスクリーンショット
アプリ名と説明文
アプリ名は 30 文字以内で、他のアプリと類似しない名前を付けます。説明文にはアプリの機能を具体的に記載し、「最高の」「唯一の」といった裏付けのない誇張表現は避けてください。
重要なのは、アプリ名や説明文に「Rork」「AI で作成」などのプラットフォーム名を含めないことです。Apple はアプリの開発ツールではなくユーザー体験を審査します。
スクリーンショットの要件
各デバイスサイズ(6.7インチ、6.1インチ、5.5インチ)に最適化されたスクリーンショットを用意します。スクリーンショットはアプリの実際の画面を反映している必要があり、過度な装飾やモックアップだけのスクリーンショットはリジェクトの原因になります。
キーワードの最適化
100 文字のキーワードフィールドを最大限活用します。カンマ区切りでキーワードを入力し、アプリ名や説明文に含まれる単語は重複しないようにします。競合他社のブランド名をキーワードに含めるとリジェクトされるので絶対に避けてください。
セクション3: プライバシーとデータ収集
App Tracking Transparency(ATT)
iOS 14.5 以降、ユーザーの追跡には明示的な許可が必要です。Rork アプリで広告 SDK(AdMob など)や分析ツール(Firebase Analytics など)を組み込んでいる場合、ATT フレームワークの実装は必須です。
import AppTrackingTransparency
func requestTrackingPermission() {
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// トラッキング許可済み
break
case .denied, .restricted, .notDetermined:
// トラッキング不許可
break
@unknown default:
break
}
}
}プライバシーポリシー
すべてのアプリにプライバシーポリシーの URL が必要です。個人開発者の場合でも、どのデータを収集し、どう使用するかを明記したページを用意してください。無料で使えるプライバシーポリシージェネレーターもありますが、自分のアプリの実態に合った内容になっていることを必ず確認します。
Privacy Nutrition Labels
App Store Connect で「App Privacy」セクションを正確に記入します。実際に収集しているデータと申告内容に齟齬がある場合、審査でリジェクトされます。特に第三者 SDK が収集するデータも含めて申告する必要がある点に注意してください。
セクション4: In-App Purchase と課金
StoreKit 2 の実装
アプリ内課金を実装する場合、StoreKit 2 API を使用するのが現在の推奨です。サンドボックス環境でのテストを十分に行い、購入フロー・復元フロー・エラーハンドリングが正しく動作することを確認します。
課金に関する Apple の制約
デジタルコンテンツの販売には必ず Apple の In-App Purchase を使用する必要があります。外部決済リンクへの誘導は原則禁止されています(一部の例外あり)。物理的な商品やサービスの場合は Stripe などの外部決済を利用できます。
サブスクリプションの注意点
自動更新サブスクリプションを提供する場合、解約方法を明確に説明する必要があります。また、無料トライアル期間がある場合、トライアル終了後の課金額と課金タイミングを明記してください。
セクション5: Rork / Rork Max 固有の注意点
AI 生成コードの品質チェック
Rork が生成するコードは概ね高品質ですが、以下のケースで問題が起きることがあります。
未使用の import 文が残っている場合、ビルドは通りますが Xcode の警告が大量に出ます。非推奨 API の使用も同様です。Rork のプロンプトで「最新の API を使用して」と明示的に指示することで回避できます。
Rork Max の 2-Click Publish 利用時
Rork Max の 2-Click Publish 機能は非常に便利ですが、自動的にすべての審査要件を満たすわけではありません。特にプライバシーポリシーの URL 設定、App Privacy ラベルの記入、そしてスクリーンショットの準備は手動で行う必要があります。
Expo / React Native アプリ(通常の Rork)の注意点
通常の Rork(React Native ベース)で作成したアプリは、EAS Build を通じて提出します。この場合、app.json の設定が正確であることが特に重要です。
{
"expo": {
"name": "YourAppName",
"slug": "your-app-name",
"version": "1.0.0",
"ios": {
"bundleIdentifier": "com.yourname.yourapp",
"buildNumber": "1",
"supportsTablet": true,
"infoPlist": {
"NSCameraUsageDescription": "写真撮影のためにカメラを使用します",
"NSPhotoLibraryUsageDescription": "写真を選択するためにフォトライブラリを使用します"
}
}
}
}セクション6: よくあるリジェクト理由 TOP 10 と対策
1. Guideline 4.0 — Design: Spam
テンプレートそのままのアプリや、既存アプリとほぼ同じ機能のアプリはスパムと判断されます。Rork のテンプレートをそのまま提出するのではなく、独自の価値を加えてください。
2. Guideline 2.1 — Performance: App Completeness
未完成な機能、プレースホルダーコンテンツ、テストデータの残存が該当します。提出前に全機能を最初から最後まで通しでテストしてください。
3. Guideline 4.3 — Design: Spam (Duplicate)
自分の別アプリとほぼ同じ内容のアプリを複数提出するとリジェクトされます。テーマ違いのアプリを量産する場合は、十分な差別化が必要です。
4. Guideline 5.1.1 — Legal: Privacy (Data Collection and Storage)
プライバシーポリシーの不備やデータ収集の未申告が該当します。上記セクション3の内容を完全に実施してください。
5. Guideline 2.3.3 — Performance: Accurate Metadata
スクリーンショットが実際のアプリと異なる場合にリジェクトされます。最終ビルドのスクリーンショットを使用してください。
6. Guideline 3.1.1 — Business: In-App Purchase
デジタルコンテンツの購入に外部決済を使用している場合に該当します。StoreKit 2 を使った Apple 公式の課金方法に切り替えてください。
7. Guideline 2.5.1 — Performance: Software Requirements
非公開 API の使用や、プライベートフレームワークへのアクセスが該当します。Rork のコード生成では稀ですが、カスタムコードを追加した場合は注意してください。
8. Guideline 4.2 — Design: Minimum Functionality
Web サイトをラップしただけのアプリ(WebView アプリ)はリジェクトされます。ネイティブの機能を活用して、Web サイトだけでは得られない体験を提供してください。
9. Guideline 1.2 — Safety: User Generated Content
UGC(ユーザー生成コンテンツ)を扱うアプリには、コンテンツフィルタリング、報告機能、ブロック機能が必要です。SNS やチャットアプリを Rork で作成する場合は特に注意してください。
10. Guideline 5.1.2 — Legal: Privacy (Data Use and Sharing)
収集したデータの第三者共有について正確に申告していない場合に該当します。Firebase、AdMob、分析 SDK などが送信するデータもすべて把握しておく必要があります。
セクション7: 審査提出の実践フロー
ステップ1: 最終テスト
実機で全機能をテストします。シミュレータだけでは検出できないバグ(カメラ、GPS、加速度センサーなど)があるため、実機テストは必須です。
ステップ2: App Store Connect の設定
App Store Connect にログインし、新しいアプリを登録します。バンドル ID、SKU、プライマリ言語を設定し、価格と配信地域を決定します。
ステップ3: ビルドのアップロード
Rork Max の場合は 2-Click Publish またはXcode 経由で、通常の Rork の場合は EAS Build 経由でビルドをアップロードします。
ステップ4: 審査ノートの記入
審査チームへのメモを記入します。アカウントが必要なアプリの場合はデモアカウントの認証情報を提供し、特殊な機能がある場合はその使い方を説明します。
ステップ5: 提出と待機
審査は通常 24〜48 時間で完了しますが、混雑時は最大 7 日かかることもあります。審査状況は App Store Connect で確認できます。
セクション8: リジェクトされた場合の対処法
リジェクトされた場合は、まず Resolution Center で Apple からのフィードバックを注意深く読みます。具体的にどのガイドラインに違反しているかが記載されているので、その項目を修正して再提出します。
判断に納得がいかない場合は、Resolution Center 経由で Apple の審査チームに異議を申し立てることもできます。丁寧かつ具体的に、なぜガイドラインに準拠していると考えるかを説明してください。
まとめ
App Store 審査の攻略は、ガイドラインを理解し、チェックリストを確実に実行することに尽きます。Rork で作ったアプリだからといって特別に厳しい基準が適用されることはありません。重要なのはユーザーにとって価値のある、完成度の高いアプリを提供することです。
この記事のチェックリストを提出前に一つ一つ確認することで、一発通過の確率を大幅に高めることができるでしょう。