Rork Maxでアプリを作り終えて「さあ申請しよう」というタイミングで引っかかるポイントがいくつかあります。React Nativeアプリ特有の問題と、AI生成コードに起きやすい問題が混ざっているため、通常の申請ガイドだけでは対応しきれないことがあります。
Rork Maxで生成したアプリを申請するときに、私が実際にチェックしている項目を実例とともに整理しました。
App Store申請前のチェック
プライバシーとパーミッション
最も引っかかりやすい場所です。 Rork MaxはAPIキーの設定やカメラ・位置情報アクセスのコードを自動で生成しますが、Xcodeの Info.plist に正しい Usage Descriptionが入っているかは別途確認が必要です。
<!-- Info.plist — これらが不足するとリジェクトされます -->
<key>NSCameraUsageDescription</key>
<string>プロフィール写真の撮影に使用します</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>ライブラリから写真を選択するために使用します</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>近くのスポットを表示するために現在地を使用します</string>実装していない機能のコードが残っていてもリジェクトされます。grep -r "NSCamera\|NSPhoto\|NSLocation" ios/ で使われているパーミッションを確認して、不要なものを削除してください。
App Tracking Transparency(ATT): 広告(AdMob等)を使う場合、iOS 14.5以降はATTの許可ダイアログが必須です。Rork MaxはAdMob連携コードを生成しますが、ATTフローを忘れがちです。
プライバシーポリシーURL
App Storeのほぼすべてのカテゴリでプライバシーポリシーが必要です。「あとで用意しよう」と思っていると申請フォームで止まります。最低限の内容のプライバシーポリシーをあらかじめ公開しておいてください。
スクリーンショットの要件
2026年現在、App Storeのスクリーンショット要件:
- iPhone: 6.9インチ(iPhone 16 Pro Max)または6.7インチが必須
- iPad: アプリがiPad対応の場合は別途必要
- ローカライズ: 日本語と英語の両方のスクリーンショットが必要な場合あり
Rork MaxのプレビューをそのままスクリーンショットとしてApp Store Connectにアップロードするのは解像度が合わないことが多いです。シミュレーターで正しいデバイスサイズで起動してキャプチャしてください。
4桁のビルド番号管理
EAS Build(Expo Application Services)でビルドするとき、バージョン番号とビルド番号の管理を忘れがちです:
// app.json
{
"expo": {
"version": "1.0.0",
"ios": {
"buildNumber": "1" // ← 毎回インクリメントが必要
},
"android": {
"versionCode": 1 // ← 同様
}
}
}同じビルド番号を再申請するとエラーになります。自動インクリメントの設定をしておくのが楽です。
# EAS Buildで自動インクリメント
eas build --platform ios --auto-submit --non-interactiveGoogle Play申請前のチェック
ターゲットAPIレベル
Google Playは定期的にターゲットAPIレベルの最低要件を更新します。2026年時点では Android 14(API level 34)以上がほぼ必須です。
// app.json
{
"expo": {
"android": {
"targetSdkVersion": 34
}
}
}Rork Maxが古いAPIレベルを設定したまま生成することがあるため、必ず確認してください。
アプリの権限の最小化
Google PlayはAndroid権限の過剰申告に厳しいです。android/app/src/main/AndroidManifest.xml を確認して、実際に使っていない権限を削除します:
<!-- 使っていないのに残っている例 -->
<!-- <uses-permission android:name="android.permission.READ_CONTACTS" /> -->
<!-- <uses-permission android:name="android.permission.CAMERA" /> -->Rork Maxが生成するコードは安全側に倒して権限を多めに書くことがあります。
Data Safety セクション
Google Playのデータ安全セクションは2022年から必須ですが、今でも正確に記入されていないアプリが多いです。Rork MaxがFirebase Analytics・AdMob・Google Sign-Inを使っていると、それぞれのデータ収集について申告が必要です。
主な申告項目:
- Firebase Analytics → デバイスIDの収集・分析目的
- AdMob → 広告IDの収集・広告配信目的
- クラッシュレポート(Firebase Crashlytics)→ クラッシュログの収集
両ストア共通の確認事項
APIキーの扱い
Rork Maxが生成するコードにAPIキーがハードコードされていることがあります。申請前に必ず確認:
// ❌ これはNG(コードに直書き)
const API_KEY = "YOUR_ACTUAL_API_KEY_HERE";
// ✅ 環境変数経由が正解
const API_KEY = process.env.EXPO_PUBLIC_API_KEY;GitHubにpushするとシークレットスキャンで検出されることもあります。.env ファイルをgitignoreに追加して、EAS Secretsで管理してください。
クラッシュしない最終確認
申請前に実機での動作確認は必須です。シミュレーターで動いても実機で落ちるケースがReact Nativeでは起きます。特に:
- カメラ・位置情報などのネイティブ機能
- ネットワーク接続なしでの挙動(オフラインフォールバック)
- 画面サイズの異なるデバイスでのレイアウト
EAS Buildのビルドログ確認
eas build --platform all --profile productionビルドログに警告やエラーが出ていても「ビルド成功」になることがあります。特に deprecated な API の使用警告は、将来のOSアップデートでの問題につながることがあります。
申請後によく聞く問題
申請が通ってからもよくある問題を一つ:
Hermes エンジンの問題: React NativeはデフォルトでHermesエンジンを使いますが、一部のnpmパッケージでHermes非対応のものがあります。クラッシュレポートを見ているとHermesに起因するものがあることも。Rork Maxが生成するコードが全てHermes対応かどうかはパッケージによります。
Rork Maxはアプリの骨格を作るのが速いですが、申請の細部は自分でしっかり確認する必要があります。このチェックリストが、リジェクトを一度でも減らす助けになれば幸いです。慣れてくると申請作業自体はルーティン化できるので、最初の1〜2回は丁寧に進めてみてください。