Free local iOS tool

PrivacyInfo.xcprivacy Validator

Validate an XML PrivacyInfo.xcprivacy file for malformed plist structure, unsupported keys, incorrect data types, empty values, tracking-domain errors, and Required Reason API mismatches.

Check your rejection locally

What the error means

The validator is designed for fast preflight checks and ITMS-91056 debugging. It runs locally and produces a correction draft for review.

Common causes

Root keys are misspelled or use a plist type Apple does not accept.
Nested collected-data or accessed-API dictionaries are incomplete.
Tracking domains are URLs rather than plain hostnames.
Empty arrays or strings produce a structurally present but invalid declaration.

How to fix it

  1. 1Choose the exact PrivacyInfo.xcprivacy file that ships in the affected bundle.
  2. 2Upload it or paste its XML. Binary plists should be exported as XML first.
  3. 3Fix all structural findings and separately resolve items requiring developer confirmation.
  4. 4Download the correction draft, verify semantics, then validate the final archive.

Apple documentation

FAQ

Frequently asked questions

What format does the validator support?

It supports XML property-list content used by PrivacyInfo.xcprivacy. Convert a binary plist to XML before using this MVP.

Does it validate tracking domains?

Yes. It flags protocols, paths, queries, fragments, ports, trailing slashes, empty domains, and conflicts with NSPrivacyTracking.

Can it fix my manifest automatically?

It applies safe structural cleanup and produces a draft. Purpose-dependent values remain explicitly marked for developer review.

Is my manifest uploaded?

No. File reading and validation happen in the browser, with no manifest upload endpoint.

Check the actual email and manifest

Get evidence, source classification, fix steps, and a locally generated correction draft. No login and no file upload.

Open the free checker