Guideline 2.5.4 rejection: Background modes
How the rejection usually reads: "Your app declares support for audio/location/VoIP in the UIBackgroundModes key but does not include features that require that mode"
Why it happens
Declaring a background mode you do not use is an automatic follow-up question from review. It usually happens because a template or a plugin added the mode. Remove the entry from UIBackgroundModes unless the app genuinely plays audio, tracks location or handles VoIP calls while in the background — and if it does, make sure the reviewer can trigger that feature.
What can be checked before you submit
1 of RejectProof’s checks map to Guideline 2.5.4. Each one reads your .ipa — no upload — and reports the evidence with a fix.
- Background mode declared but not used
PB-28 · guideline 2.5.4 · probable
Remove background modes you do not need from UIBackgroundModes. Reviewers reject apps that declare audio / location / voip background execution without a visible feature that needs it. Expo: app.json → expo.ios.infoPlist.UIBackgroundModes. Swift: Signing & Capabilities → Background Modes, untick the unused ones.
What a scan cannot tell you
Static checks read the build; they do not run it. Whether a reviewer likes your design, agrees with your content, or considers the app “sufficiently different” is their call. Fix the mechanical layer first so the human review is about your product, not about a missing plist key.