If your app has a login and the reviewer can't get past it, App Review rejects the whole submission without ever seeing what you built.
2.1 App Completeness
It has nothing to do with your code. It's a metadata field left blank. App Review runs on a schedule you don't control, and the credentials you type into App Store Connect's Review Notes have to work at that moment -- a demo account whose backend seed data expired, whose password rotated, or whose account got deleted in a cleanup script fails the same way a missing account does: the reviewer hits a login wall and rejects on sight, because 2.1 says explicitly that the back-end service has to be on.
A working demo account is the default path -- App Store Connect's Review Notes field is where the username and password go, and Apple checks it before opening the app. The guideline also allows a built-in demo mode in place of an account, but only "with prior approval by Apple" -- that's not a fallback you can decide to use unilaterally in Review Notes; it requires actually requesting it, and the demo mode still has to exhibit the app's full functionality, not a stripped-down preview.
Verify the demo account can log in right now, today -- not that it worked when you created it. Seed data expires, test accounts get swept by cleanup jobs, and passwords get rotated by security policy; any of those turns a previously-approved app into a 2.1 rejection on the next update with zero code changes.
The credentials belong in App Store Connect's Review Notes for that specific build, not just in your own `shipcheck.metadata.md` or internal docs. ShipCheck checks that you've recorded a demo account so nothing ships without one, but only App Store Connect's own Review Notes field is what the reviewer sees.
A Claude Code plugin for React Native and Expo. Reads your project and store listing, checks them against the live App Store Review Guidelines and Google Play policies -- the same corpus quoted on this page -- and tells you the clause, the reviewer's likely wording, and the fix.
/plugin marketplace add BakerVentures/shipcheck
Free scan on every app. See pricing →