Rork Max で素晴らしいアプリを作り上げたのに、いざ App Store に公開しようとしたら EAS Build でコードサイニングエラーが出たり、App Store Connect の申請画面でエラーが出て前に進めなかったりする経験をされた方は多いはずです。
この壁は、アプリ開発の中でも特に技術的な知識が求められるフェーズです。しかし適切な手順と問題ごとの対処法を知っていれば、確実に突破できます。ここではRork Max で App Store 公開を阻む全てのエラーパターンと解決策を体系的に解説します。
EAS Build のコードサイニングエラー
エラーカテゴリ1:証明書関連エラー
症状:Error: No matching signing credentials found for com.yourapp.bundleid
このエラーは、ビルドに必要な Apple Distribution Certificate が EAS Credentials に設定されていない時に発生します。
解決手順
まず現在の EAS Credentials の状態を確認します。
# プロジェクトディレクトリで実行
eas credentials
# または Expo ダッシュボードで確認
# https://expo.dev/accounts/[username]/projects/[slug]/credentials証明書が存在しない場合、EAS CLI に自動管理させるのが最も簡単です。
# eas.json で自動管理を有効化
{
"build": {
"production": {
"ios": {
"credentialsSource": "remote" # EAS が自動管理
}
}
}
}
# 認証情報のクリア&再作成
eas credentials --platform ios
# 「Remove credentials」→「Set up credentials」の順に選択症状:Certificate has expired or is not yet valid
証明書の有効期限が切れています。Apple Distribution Certificate の有効期間は1年です。
# 期限切れ証明書を確認
eas credentials --platform ios
# 新しい証明書を作成
# 1. Apple Developer Console でDistribution Certificateを削除
# 2. EAS で再作成
eas credentials --platform ios
# → 「Distribution Certificate」→「Generate new certificate」を選択エラーカテゴリ2:プロビジョニングプロファイル関連エラー
症状:Provisioning profile doesn't match the bundle identifier
アプリの Bundle Identifier とプロビジョニングプロファイルが一致していません。
# app.json / app.config.js で Bundle ID を確認
# ios.bundleIdentifier が Apple Developer Console と一致しているか確認
# プロビジョニングプロファイルを再作成
eas credentials --platform ios
# → 「Provisioning Profile」→「Create a new provisioning profile」を選択症状:Device is not included in the provisioning profile(開発ビルドのみ)
開発用デバイスの UDID がプロビジョニングプロファイルに登録されていません。
# デバイスを登録
eas device:create
# プロビジョニングプロファイルを再生成
eas credentials --platform ios
# → 「Provisioning Profile」→「Sync devices from Apple portal」を選択エラーカテゴリ3:App Store Connect API キーの設定エラー
EAS が App Store Connect に自動でビルドをアップロードするには、App Store Connect API キーの設定が必要です。
App Store Connect API キーの正しい設定手順
1. https://appstoreconnect.apple.com/access/api にアクセス
2. 「+ 」ボタンで新しいキーを作成
3. 名前: "EAS Build" 等、役割: "App Manager" を選択
4. .p8 ファイルをダウンロード(一度しかダウンロードできない)
5. Key ID と Issuer ID を控える
# EAS に API キーを設定
eas credentials --platform ios
# → 「App Store Connect API Key」→「Add an API key」を選択
# → .p8 ファイルのパス・Key ID・Issuer ID を入力App Store Connect 申請時の ITMS エラー
EAS Build が成功しても、App Store Connect へのアップロード時にエラーが出ることがあります。
よくある ITMS エラーと対処法
ITMS-90725:SDK 最小バージョンエラー
Error: ITMS-90725: SDK Version Issue
App Store の最新審査要件(DeploymentTarget)を満たしていません。
// app.json で最小OSバージョンを更新
{
"expo": {
"ios": {
"deploymentTarget": "16.0" // 現在の Apple 要件に合わせる
}
}
}ITMS-90426:バイナリ構成エラー
Error: ITMS-90426: Invalid Code Signing Entitlements
アプリが使用しているエンタイトルメント(権限)が、App ID の設定と一致していません。
Apple Developer Console でApp IDの設定を確認し、必要なCapabilitiesが有効化されているか確認します。Push Notifications、In-App Purchases などの機能を使っている場合、App ID でその機能が有効になっている必要があります。
ITMS-90161:バイナリが App Store 要件を満たしていない
Error: ITMS-90161: The binary may only be built with Swift version X or later
Xcode のビルドツールバージョンの問題です。EAS Build のビルドイメージを最新版に更新します。
// eas.json でビルドイメージを指定
{
"build": {
"production": {
"ios": {
"image": "latest" // 常に最新を使用
}
}
}
}App Store 審査でリジェクトされた時の対処
ビルドのアップロードが成功しても、App Store の審査でリジェクトされることがあります。主なリジェクト理由と対処法を解説します。
Guideline 4.0:デザイン・クラッシュ系リジェクト
4.3:Minimum Functionality(最低限の機能要件)
アプリに十分な機能や価値がないと判断された場合。Rork Max で作ったシンプルなアプリが対象になることがあります。
対処法として、アプリが提供するユニークな価値を審査メモに明記します。「既存のウェブサイトのラッパーに過ぎない」と判断されないよう、ネイティブ機能(カメラ、プッシュ通知、位置情報など)を少なくとも1つ以上活用するよう改善しましょう。
4.2:Minimum Functionality + Crash
審査中にアプリがクラッシュした場合は即リジェクトです。申請前に必ず実機で徹底的なテストを行ってください。
Guideline 5.0:法的・コンテンツ系リジェクト
5.1.1:プライバシーポリシーの不備
何らかのデータを収集するアプリには必ずプライバシーポリシーが必要です。特にAdMob(広告)やAnalytics(分析)を使っている場合は必須です。
5.1.2:データ使用目的の不明確な説明
Info.plist での権限リクエスト文言が不十分な場合。カメラ・マイク・位置情報などの使用目的を具体的に記述する必要があります。
// app.json でのアクセス許可文言の例
{
"expo": {
"ios": {
"infoPlist": {
"NSCameraUsageDescription": "アバター写真を撮影するためにカメラを使用します",
"NSLocationWhenInUseUsageDescription": "近くの店舗を表示するために位置情報を使用します"
}
}
}
}審査通過率を高める申請前チェックリスト
審査に提出する前に、以下の項目を確認してください。
技術的チェック:実機(iPhone/iPad)でテストしてクラッシュが0件であることを確認します。各画面で想定通りの操作が可能かを確認します。ネットワーク切断状態での挙動を確認します。
コンテンツチェック:プライバシーポリシーのURLが正しく機能することを確認します。ストアの説明文に実際の機能と乖離がないかを確認します。スクリーンショットが最新のUIを反映しているかを確認します。
メタデータチェック:アプリ名・説明文・キーワードに誤解を招く表現がないかを確認します。年齢レーティングが実際のコンテンツと一致しているかを確認します。
App Store Connect 設定チェック:カテゴリが適切に設定されているかを確認します。価格・地域設定が意図通りになっているかを確認します。
リジェクトされた後の再申請手順
リジェクト通知が来た場合は、App Store Connect のメッセージセンターで具体的なリジェクト理由を確認し、修正後に以下の手順で対応します。
App Store Connect の「Resolution Center」で審査チームに修正内容を報告します。修正したビルドをアップロードして再審査に提出します。同じ問題が繰り返されている場合は Apple の審査チームに直接質問することもできます。
全体を振り返って
Rork Max での App Store 公開において発生するエラーは、大きく「EAS Build のコードサイニング」「App Store Connect への提出時のITMSエラー」「審査リジェクト」の3フェーズに分かれます。
EAS Build のエラーはほとんどが証明書とプロビジョニングプロファイルの問題で、eas credentials コマンドで再設定することで解決できます。App Store Connect 提出時のエラーはメッセージを読んで対応するデプロイメント設定を調整します。審査リジェクトは具体的なガイドライン番号を確認して的確に修正を加えます。
どのフェーズの問題も、エラーメッセージをそのまま Rork に共有すれば、適切な修正を提案してもらえることが多いです。ぜひ本記事と組み合わせて活用してください。