Skip to content

Stop the Lite manifest from claiming tracking it cannot name - #134

Merged
andiwand merged 1 commit into
mainfrom
fix-lite-privacy-manifest-tracking
Aug 3, 2026
Merged

Stop the Lite manifest from claiming tracking it cannot name#134
andiwand merged 1 commit into
mainfrom
fix-lite-privacy-manifest-tracking

Conversation

@andiwand

@andiwand andiwand commented Aug 3, 2026

Copy link
Copy Markdown
Member

Build 43 of the Lite app came back ITMS-91064 / Invalid Binary: its PrivacyInfo.xcprivacy set NSPrivacyTracking to true while NSPrivacyTrackingDomains was empty, which App Review rejects. Pro passed the same upload with false and an empty list, so this mirrors it.

The manifests only landed in #107, after 1.35 shipped, so this file had never been through App Store validation before — 1.37 build 43 was its first upload.

Why not just list the AdMob domains

That would satisfy the rule but cost more than it buys. iOS blocks the domains named in NSPrivacyTrackingDomains whenever ATT authorization is missing, so listing the AdMob endpoints would also cut off the non-personalized ads served to users who decline the prompt. The Google SDKs ship no domains of their own for that reason, and GoogleMobileAds already marks DeviceID as NSPrivacyCollectedDataTypeTracking in its own manifest, which Apple aggregates with this one. The tracking disclosure is still made.

Verified against the shipped artifacts from run 30767906998, not just the source:

build 43 NSPrivacyTracking NSPrivacyTrackingDomains outcome
Pro false empty passed
Lite true empty ITMS-91064

Also

Corrects 1.37.txt to the copy actually submitted. 1.36 was tagged but never reached the store, so App Store Connect jumps 1.35 → 1.37 and the notes have to cover the 1.36 work.

Pro 1.37 (build 43) is unaffected and still Waiting for Review. Lite needs a new build from this branch.

🤖 Generated with Claude Code

Build 43 of the Lite app came back ITMS-91064 Invalid Binary: its
PrivacyInfo.xcprivacy set NSPrivacyTracking to true while
NSPrivacyTrackingDomains was empty, which App Review rejects. The Pro
manifest passed the same upload with false and an empty list.

The manifests only landed in #107, after 1.35 shipped, so this file had
never been through App Store validation before.

Listing the AdMob endpoints would satisfy the rule but cost more than it
buys: iOS blocks the domains named here whenever ATT authorization is
missing, so it would also cut off the non-personalized ads served to
users who decline. The Google SDKs ship no domains of their own for that
reason, and GoogleMobileAds already marks DeviceID as tracking in its own
manifest, which Apple aggregates with this one.

Also corrects the 1.37 release notes to the copy actually submitted:
1.36 was tagged but never went to the store, so the store jumps 1.35 to
1.37 and the notes have to cover the 1.36 work.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019sHnwXJEjogZDLATrBgMQS
@andiwand
andiwand merged commit 4e4a2ce into main Aug 3, 2026
5 checks passed
@andiwand
andiwand deleted the fix-lite-privacy-manifest-tracking branch August 3, 2026 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant