26/05/22 22:43:41.42 aZGIahw00●.net BE:743999204-2BP(3222)
URLリンク(img.5ch.io)
1 年前の Cloudflare の国別ブロックに App Store で 6 連続リジェクトされた話
URLリンク(capsaicin.site)
6 連敗 + 複数の誤診を経て、真因を炙り出した GraphQL クエリの記録
Apple から届いたもの
最初のリジェクトは Guideline 2.1(a) — Performance — App Completeness。App Review からの本文 (原文):
> **Issue Description**
> The app exhibited one or more bugs that would negatively impact users.
> Bug description: Specifically, we were unable to log in with the provided information due to an error.
> **Review device details:**
> - Device type: iPhone 17 Pro Max and iPad Air 11-inch (M3)
> - OS version: iOS 26.4.2 and iPadOS 26.4.2
> - Internet Connection: Active
> **Next Steps**
> Test the app on supported devices to identify and resolve bugs and stability issues before submitting for review.
要約: 「提供された認証情報でログインできなかった」「テスト機種は iPhone 17 Pro Max と iPad Air 11" (M3)、OS は iOS / iPadOS 26.4.2」「ネット接続は有効」。
そして添付されていたのはスクリーンショット 1 枚:
URLリンク(capsaicin.site)
レビュアーのスクリーンショット: Sign In Failed — JSON Parse error: Unexpected character: `<`
1 回目のリジェクト時にレビュアーが送ってきたスクリーンショット。Server URL は URLリンク(feedown.pages.dev)、トーストには React Native の生エラー JSON Parse error: Unexpected character: < がそのまま出ている = JSON.parse() に < で始まる何か (= ほぼ確実に HTML) が渡されている。
これだけ。スタックトレースもネットワークログも、リクエストがどう見えたかの情報も無い。「お前のアプリは俺たちの網ではサインインが壊れてる」という事実だけ。
問題は 手元の他の環境では全部動いていた こと。自分の全端末。TestFlight。友人の端末。ブラウザタブ。サーバは全リクエストに正しい JSON を返していた。
しかも 過去 4 回の App Store 審査ではこの認証フローは問題なく通っていた。同じバックエンド、同じクライアントコード、同じ Sign In 画面で、4 回連続で承認されてきた実績がある。今回の submit では auth 周りに変更を加えていないし、レビュアー側の (見える範囲の) 変化も無い。それなのに、このラウンド以降は同じフローが安定的に JSON Parse error を踏み続けて、Apple は連続でリジェクトしてきた。
真因に辿り着くまでに 6 回リジェクトされた話、その途中の誤診、そして 1 年間目の前に放置されていたものを最後に炙り出した GraphQL クエリの物語。