From 66c0120305fea43b5d9c53a94abc6869ef86044f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Tue, 24 Mar 2026 14:12:49 +0100 Subject: [PATCH] Set NSPrivacyTracking to true of domains are set --- README.md | 2 +- .../defold/manifestmergetool/PrivacyManifestMerger.java | 9 ++++++--- .../defold/manifestmergetool/ManifestMergeToolTest.java | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e79008d9..0c4ffbc2 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ There are two ways to obtain Extender's jars: As result you should have 2 jars in `./server/apps/` folder: extender.jar and manifestmergetool.jar. ### Run -To run stand-alone Extender instance use folowing script: +To run stand-alone Extender instance use following script: ```sh ./server/scripts/standalone/service-standalone.sh start ``` diff --git a/server/manifestmergetool/src/main/java/com/defold/manifestmergetool/PrivacyManifestMerger.java b/server/manifestmergetool/src/main/java/com/defold/manifestmergetool/PrivacyManifestMerger.java index 56f68e80..2a1638b5 100644 --- a/server/manifestmergetool/src/main/java/com/defold/manifestmergetool/PrivacyManifestMerger.java +++ b/server/manifestmergetool/src/main/java/com/defold/manifestmergetool/PrivacyManifestMerger.java @@ -111,13 +111,16 @@ private void mergeAccessedAPITypes(XMLPropertyListConfiguration target, XMLPrope } private void mergeConfigs(XMLPropertyListConfiguration base, XMLPropertyListConfiguration lib) throws PlistMergeException { - Object baseTracking = base.getProperty("NSPrivacyTracking"); - Object libTracking = lib.getProperty("NSPrivacyTracking"); - // merge privacy tracking domains ArrayList baseTrackingDomains = getStringArrayList(base, "NSPrivacyTrackingDomains"); ArrayList libTrackingDomains = getStringArrayList(lib, "NSPrivacyTrackingDomains"); baseTrackingDomains.addAll(libTrackingDomains); + // ITMS-91064: Invalid tracking information - NSPrivacyTracking must be + // true if NSPrivacyTrackingDomains isn’t empty. + if(!baseTrackingDomains.isEmpty()) + { + base.setProperty("NSPrivacyTracking", true); + } // merge collected data types ArrayList baseCollectedDataTypes = getArrayList(base, "NSPrivacyCollectedDataTypes"); diff --git a/server/manifestmergetool/src/test/java/com/defold/manifestmergetool/ManifestMergeToolTest.java b/server/manifestmergetool/src/test/java/com/defold/manifestmergetool/ManifestMergeToolTest.java index 7302ddb3..9ae6fe97 100644 --- a/server/manifestmergetool/src/test/java/com/defold/manifestmergetool/ManifestMergeToolTest.java +++ b/server/manifestmergetool/src/test/java/com/defold/manifestmergetool/ManifestMergeToolTest.java @@ -758,7 +758,7 @@ public void testMergePrivacyManifest() throws IOException { + "\n" + " \n" + " NSPrivacyTracking\n" - + " \n" + + " \n" + "\n" + " NSPrivacyCollectedDataTypes\n" + " \n"