Every finding, with the evidence behind it.
A readiness score, the blockers first, and for each one the file it came from and what to change. No guessing which of Apple’s rules the finding is about.
Blockerpermissions.usage-description
Camera use without a purpose string
Info.plist
✗ NSCameraUsageDescription missing
CameraView.swift:18
AVCaptureDevice.default(for: .video)
- Why it matters
- AVCaptureDevice is used in CameraView.swift, and Info.plist declares no NSCameraUsageDescription. iOS cannot show the permission prompt at all, which makes this a rejection under Guideline 5.1.1 rather than a risk.
- Recommended fix
- Add NSCameraUsageDescription to Info.plist and say what the camera is for, in a sentence a reviewer can check against the screen the prompt appears on.
Example finding, from the example build above. Every finding carries its severity, its rule id, the file and line, an explanation and a recommended fix; most also carry a link to Apple’s own documentation.
One score, grouped the way you fix it
Findings sit in the five groups App Store Connect uses in its own navigation, so each one points at the screen you fix it on.
- GeneralApp Information & ReviewIdentity, versioning, reviewer access1 of 7 rules across 2 report sections
- Trust & SafetyPrivacy, Age Rating, AccountsWhat Apple asks, and what your build declares3 of 14 rules across 4 report sections
- MonetizationIn-App PurchasesStoreKit in the build, purchase records beside it1 of 6 rules across 1 report section
- DistributionScreenshots & Export ComplianceSizes required, encryption declared1 of 4 rules across 2 report sections
- BuildCapabilities, Dependencies, SourceEntitlements, third-party SDKs, what should not ship1 of 7 rules across 3 report sections
Bars show finding counts by severity. ReviewAhead scores the build as a whole: there are no per-area grades.
The score, the verdict and your three most severe findings are free on every scan.