App does not use private or undocumented Apple or Android APIs
Why it matters
Apple's automated binary scanner (run before any human reviewer sees the app) uses symbol analysis to detect private API calls. This check is mechanical and highly accurate — a single _-prefixed private method call on a system object causes automatic rejection before human review begins, under Apple's guideline 2.5.1. The rejection email cites the specific private symbol. Native modules in the ios/ and android/ directories of React Native apps are the most common vector — they often include private API calls that were acceptable in older OS versions but have since been flagged. Apps rejected this way go to the back of the queue, adding weeks of delay.
Severity rationale
Critical because Apple's automated scanner detects private API usage before human review — rejection is automatic, fast, and cannot be appealed without a code fix.
Remediation
Audit all native module code in ios/ and android/ for private API usage before building the submission binary.
# Search for Objective-C private method calls on system objects
grep -r '\b_UI\|\b_NS\|SpringBoardServices\|GraphicsServices' ios/
# Search for Android internal API usage
grep -r 'com\.android\.internal\|getDeclaredMethod\|getDeclaredField' android/app/src/
Replace any private call with the documented public equivalent. For _UIApplicationDelegate._statusBar, use UIApplication.shared.statusBarManager. Run Xcode's static analysis (Product > Analyze) before every App Store submission — it flags deprecated and private API usage in Swift and Objective-C.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the App Store Review Blockers Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · apple-guideline-2.5.1-private-api — Apple App Store Review Guideline 2.5.1 — No Private or Undocumented APIs
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-review-blockers·automated