先日iOSの審査でGuideline 2.1 – Performance – App Completenessというリジェクトをされたことをお伝えします。
結論
トラッキング許可アラート表示タイミングがうまくいっていなかったのが原因でした。
appleからリジェクト内容
会員登録をしてもらう事を前提にしたアプリを先日リリースしようとアプリ審査提出をしました。
そしたら下記の内容でリジェクトされました。
Guideline 2.1 – Performance – App Completeness
We were unable to review your app as it crashed on launch. We have attached detailed crash logs to help troubleshoot this issue.
Next Steps
To address the crash in your app, follow these steps:
- Fully symbolicate the crash report. See Adding Identifiable Symbol Names to a Crash Report for an explanation of the symbolication process.
- Match the crash report to a common pattern. Based on the pattern, take specific actions to further investigate the crash. See Identifying the Cause of Common Crashes.
- Test your app on a device to ensure that it now runs as expected.
- Once you’ve addressed the crash, create and submit a new build to the App Store for review.
ガイドライン2.1 – パフォーマンス – アプリの完成度
起動時にアプリがクラッシュしたため、アプリをレビューすることができませんでした。この問題のトラブルシューティングのために、詳細なクラッシュログを添付しています。
次のステップ
アプリのクラッシュに対処するには、次の手順を実行します。
- 1. クラッシュレポートを完全にシンボル化します。シンボル化プロセスの説明については、「クラッシュ レポートに識別可能なシンボル名を追加する」を参照してください。
- 2. クラッシュレポートを共通のパターンに一致させます。そのパターンに基づいて、事故をさらに調査するための具体的な行動を起こします。よくある衝突事故の原因を特定する」を参照してください。
- 3. デバイス上でアプリをテストし、期待どおりに動作することを確認します。
- 4. クラッシュに対処したら、新しいビルドを作成してApp Storeに提出し、レビューを受けてください。
そのままなのですが要約すると
クラッシュするから直してねという事でした。
原因
iPhoneしか許容してないアプリを審査提出したのですがiPadでクラッシュしましたというリジェクトされました。
今までFirebase Crashlitcsでしかクラッシュ調査してなかったので手擦りました。
ネットで調べてもよく分からず、、、
たまたまかな~と思い、修正しないでアーカイブしたものを再提出してみました。
そしたらクラッシュしましたとリジェクトされました。
クラッシュしたiPadと同じシュミレーターで起動しても特にクラッシュしませんでした、、、
調査した結果、トラッキング許可アラート表示をAppDelegate.swiftに記載していたのですが
アプリ初回起動時にコーチマークを表示するようにしていたため、それとぶつかりクラッシュしてました。
対応方法
トラッキング許可アラート表示の処理をコーチマークの後に処理するようにしました。
(AppDelegate.swiftからViewController.swiftに移動させました。)
審査提出したら無事通りました!
まとめ
クラッシュするのには必ず理由があります。
分からない場合は直近で触った部分が原因と言うことが大きいです。
そのため、gitでバージョン管理している場合は、少しずつ戻して確認してみたりすると良いと思います。
おわりに
最後までご覧いただきありがとうございます。
今回は短い内容になっておりますが
また何かありましたら共有させていただきます。