data-minimization-audit

Detects over-broad iOS data collection patterns violating Apple Guideline 5.1.1(iii).

Updated Aug 14, 2026
One-click install
npx skills add https://github.com/tvh25082004/Badminton --skill data-minimization-audit-tvh25082004
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: data-minimization-audit
Source: https://github.com/tvh25082004/Badminton/tree/main/.claude/skills/apple-app-review/privacy/data-minimization-audit
Command: npx skills add https://github.com/tvh25082004/Badminton --skill data-minimization-audit-tvh25082004

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? iOS apps frequently get rejected from the App Store for requesting more user data than their functionality requires, such as full photo library access just to pick a profile picture. This Skill scans your Swift and Objective-C codebase to find these over-broad permission requests before Apple reviewers do. ## Core Features & Use Cases - Photo Library Audit: Detects PHPhotoLibrary.requestAuthorization usage where PHPickerViewController would suffice, flagging it as a likely rejection risk. - Contacts & Location Checks: Identifies full CNContactStore access and requestAlwaysAuthorization calls missing the required background location entitlement. - Privacy Manifest Validation: Verifies that device identifier usage (identifierForVendor, advertisingIdentifier) is declared in PrivacyInfo.xcprivacy. - Use Case: Before submitting your app for review, run this audit to get a prioritized findings list with exact file paths, line numbers, and replacement guidance mapped to Guideline 5.1.1(iii). ## Quick Start Audit my iOS project for data minimization violations and list any permission requests that could trigger an App Store rejection.

Frequently Asked Questions about data-minimization-audit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I check my iOS app for data minimization violations before App Store submission?▼

Run this audit on your project root to scan Swift and Objective-C files for over-broad permission requests. It flags full photo library access, full contacts access, and always-on location usage, then reports each finding with file path, line number, and the privacy-preserving API to use instead.

What is the privacy-preserving alternative to PHPhotoLibrary full access?▼

PHPickerViewController is the recommended alternative for photo selection use cases. It lets users pick images without requiring NSPhotoLibraryUsageDescription or full library authorization, which is exactly the pattern Apple reviewers look for under Guideline 5.1.1(iii).

Does this audit work with Objective-C and React Native projects?▼

Yes, the audit supports Swift, Objective-C, React Native, and Flutter projects. It scans .swift and .m source files, entitlements files, and PrivacyInfo.xcprivacy manifests using glob and grep patterns.

Why does requestAlwaysAuthorization cause App Store rejections?▼

Requesting always-on location without the com.apple.location.always entitlement and a strong use-case justification violates data minimization rules. The audit checks your entitlements files and flags missing declarations as high-severity findings, recommending requestWhenInUseAuthorization where appropriate.

What are the limitations of this data minimization audit?▼

The audit is read-only and performs static pattern matching, so it cannot verify runtime behavior or judge whether a permission request is genuinely justified by app functionality. It also makes no network calls and does not modify any files.