shipcheck

Why apps get rejected

Updated September 6, 2026 · published by Baker Ventures LLC · sources cited inline

Rejections do not cost effort, they cost calendar time. The fix is minutes; the cycle is a build, an upload, a wait in review and a message that frequently does not name a file. The rejections worth engineering against are the deterministic ones — privacy manifests, permission strings, background modes, account deletion — because those live in files and a machine can find them before you build.

The one sentence that explains most React Native rejections

Apple's privacy-manifest rule is per-bundle: "For each executable or dynamic library in an app that uses a required reason API, the bundle that includes the executable or dynamic library needs to include a privacy manifest file that reports the API."

Your app's manifest does not cover your dependencies, and in a React Native project you did not choose most of your dependencies — nanopb arrives under gRPC, which arrives under Firebase, and hermes is simply the default JavaScript engine. All three are on Apple's required-SDK list. Which of yours are.

About shipcheck

shipcheck is a pre-submission checker from Baker Ventures LLC that runs inside Claude Code. It reads your React Native or Expo project, finds the things that get apps rejected or blocked at upload, cites the exact App Store Review Guideline or Google Play policy clause, and names the file and line to fix.

It exists because React Native and Expo apps fail for reasons that are invisible in the code you wrote: capability arriving through a dependency, purpose strings added by a config plugin, a privacy manifest missing from an SDK you never chose directly, and a generated ios/ directory that discards your edits on the next prebuild. shipcheck checks what the binary and the config actually declare, not what you intended. The rejection references on this site are free, need no account, and link to the primary Apple or Google document for every claim.

Cite this pageshipcheck. “Why apps get rejected.” Baker Ventures LLC, September 6, 2026. https://shipcheck.bakerventuresstudio.com/why/