【要約】個人開発でApp Storeリリースフローを学ぶ(続編)― 3回のリジェクトと審査通過までにやったこと [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者がiOSアプリ「MineWatch」をリリースする際、Appleの審査ガイドライン違反により計3回のリジェクトに直面した。
- ・Guideline 5.1.2(i): Firebase SDKに含まれるIDFA関連コードと、独自の同意画面による不整合。
- ・Guideline 4.1(c): サブタイトルへのブランド名「Minecraft」使用による模倣品判定。
- ・実装の罠: ATTダイアログが特定のライフサイクルで表示されない、実機特有の挙動。
- ・エラーの混同: App Checkの失敗とIDトークンの失敗を、同一の401エラーとして扱っていた問題。
// Approach
開発者は、リジェクトの原因がSDKの構成や実装の不備にあると判断し、Appleの基準に合わせた修正を行った。
- ・SDKの最適化:
FirebaseAnalyticsCoreへ切り替え、IDFA関連コードをバイナリから排除。 - ・ATTの実装: 独自の同意画面を廃止し、Apple公式のATTダイアログへ一本化。
- ・エラーハンドリングの分離: App Check失敗を403、IDトークン失敗を401に分け、クライアントの案内を改善。
- ・認証フローの強化: App Checkを強制実装し、Google OAuthの「安全なフロー」要件を充足。
// Result
開発者は、3回目の提出を経て無事App Storeの審査を通過し、アプリの公開を実現した。
- ・審査通過: Apple、Google、自社バックエンドの整合性を確保し、リリースを完遂。
- ・技術的知見:
sceneDidBecomeActiveでATTを呼ぶ必要性や、App Checkの横断的な影響を特定。 - ・運用改善: App Store Connectのプライバシー申告とバイナリ実装の不整合を解消。
Senior Engineer Insight
> モバイル開発において、SDKの依存関係が審査に与える影響は極めて大きい。
- ・SDK選定の重要性: Firebaseのような多機能SDKは、意図せず審査対象のコードを含みうる。
- ・セキュリティの波及効果: App CheckがGoogle OAuthの信頼性にまで影響する点は、設計上の重要事項である。
- ・審査の複雑性: プラットフォーム側の審査ロジックを考慮した設計が、リリース速度を左右する。