iOS Privacy Manifest (PrivacyInfo.xcprivacy) present and complete
Why it matters
Apple has required PrivacyInfo.xcprivacy for all iOS app updates since May 1, 2024. A missing or incomplete manifest means Apple's automated binary validation rejects your upload before a human reviewer ever sees it. Beyond the submission block, an incomplete manifest misrepresents your app's data practices to users and regulators — violating GDPR Art.5(1)(c) data-minimisation transparency and CCPA §1798.100 disclosure requirements. If your app or any of its third-party pods uses Required Reason APIs (UserDefaults, FileManager, SystemBootTime, DiskSpace) without declaring them, every update you ship is an unverifiable compliance gap.
Severity rationale
Critical because a missing or incomplete PrivacyInfo.xcprivacy causes binary rejection on every iOS submission — there is no workaround or grace period.
Remediation
Create ios/[AppName]/PrivacyInfo.xcprivacy as a property list and declare all four required keys. For Expo managed workflow, add the privacyManifests key in your app config plugin or install expo-privacy-manifests. After updating, run:
find ios/ -name PrivacyInfo.xcprivacy
to enumerate manifests from your own code and all CocoaPods. Then use Xcode's Privacy Report (Product → Archive → Validate App → Check privacy manifest) to catch undeclared Required Reason API usages before you submit.
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 Privacy & Data Compliance Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · apple-privacy-manifest — Apple Privacy Manifest Files (PrivacyInfo.xcprivacy)
- gdpr · Art. 5(1)(c) — Data minimisation
- gdpr · Art. 13 — Information to be provided where personal data are collected from the data subject
- ccpa · §1798.100 — Right to know about personal information collected
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-privacy-data·automated