ITMS-91064: NSPrivacyTracking and NSPrivacyTrackingDomains must agree in every privacy manifest (true needs domains, domains need true); check, scan and privacy-manifest fail on either mismatch with the exact ITMS text; App Privacy tracking no longer demands the app manifest's true: SDK manifests that declare tracking (Pods, frameworks, SwiftPM, Carthage, plugins, the built IPA) are info, known tracking SDKs info, else a warning; privacy-manifest --propose writes true only with appPrivacy.trackingDomains; apple upload checks every manifest in the IPA (XML or binary) before any network call, apple build after the export. Pitfall 29
This commit is contained in:
parent
b7bfe89151
commit
c8213be2b6
19 changed files with 631 additions and 44 deletions
|
|
@ -62,7 +62,9 @@ CLI: `storebound` (or `bunx storebound` in a project that has it, or `bun <toolc
|
|||
(Advertising Data, Gameplay Content, Customer Support, Environment Scanning, Hands, Head) are answered only here.
|
||||
`scan --write` proposes `collected` + `purposes` for detected types the block does not answer yet; `linked` and
|
||||
`tracking` are never proposed (ask the owner). `storebound check` compares the block with the iOS project:
|
||||
tracking true <-> `NSUserTrackingUsageDescription` and `NSPrivacyTracking` true; the app's
|
||||
tracking true <-> `NSUserTrackingUsageDescription` and a manifest that declares tracking: the tracking SDK's own
|
||||
manifest (Pods, frameworks, plugins, the built IPA; info) or the app's, which says true only with its own
|
||||
`NSPrivacyTrackingDomains` (true with an empty list is ITMS-91064, see `privacy-manifest`); the app's
|
||||
`NSPrivacyCollectedDataTypes` <-> the types marked collected (mismatches both ways).
|
||||
6. **Export compliance.** `export-compliance` skill (`ITSAppUsesNonExemptEncryption` in Info.plist, `apple encryption`).
|
||||
7. **Privacy manifest (iOS).** `privacy-manifest` skill; keep it consistent with App Privacy.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue