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
|
|
@ -176,7 +176,9 @@ describe('check: appPrivacy.types against the iOS project', () => {
|
|||
const r = JSON.parse(out.at(-1)!);
|
||||
const problems = (r.problems as string[]).join('\n');
|
||||
expect(problems).toContain('Info.plist has no NSUserTrackingUsageDescription');
|
||||
expect(problems).toContain('NSPrivacyTracking false');
|
||||
// tracking from an SDK is declared in the SDK's manifest: the app's own false is not an error (ITMS-91064, pitfall 29)
|
||||
expect(problems).not.toContain('NSPrivacyTracking false');
|
||||
expect((r.warnings as string[]).join('\n')).toContain('no privacy manifest declares NSPrivacyTracking true');
|
||||
expect(r.items.some((i: { what: string }) => i.what === 'app privacy')).toBe(true);
|
||||
} finally { rmSync(dir, { recursive: true, force: true }); }
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue