Mohamed Ahmed
Mohamed Ahmed

Reputation: 347

ITMS-91064 NSPrivacyTracking must be true if NSPrivacyTrackingDomains isn‘t empty. Keys and values

I have issue releasing a react-native project in appStore after I submit the app. I get rejection from Apple

rejection msg:

ITMS-91064: Invalid tracking information - A PrivacyInfo.xcprivacy file contains invalid tracking information at the following path: “Frameworks/SASDisplayKit.framework/PrivacyInfo.xcprivacy”.
NSPrivacyTracking must be true if NSPrivacyTrackingDomains isn‘t empty. Keys and values in your app’s privacy manifest must be valid. For more details about privacy manifest files

I added this snippet from react-native to my project in the PrivacyInfo.xcprivacy

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSPrivacyTrackingDomains</key>
    <array/>
    <key>NSPrivacyCollectedDataTypes</key>
    <array/>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>C617.1</string>
            </array>
        </dict>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>CA92.1</string>
            </array>
        </dict>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategorySystemBootTime</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>35F9.1</string>
            </array>
        </dict>
    </array>
    <key>NSPrivacyTracking</key>
    <true/>
</dict>
</plist>

Note: I also update react-native-firebase/analytics to the latest version 19.2.2, because according to the issue in GitHub I need to update to the latest version, however that didn't fix it

this how the PrivacyInfo.xcprivacy looks from Xcode enter image description here

any clue how to fix this issue?

Upvotes: 3

Views: 2421

Answers (3)

Osama Remlawi
Osama Remlawi

Reputation: 2990

Just to address this kind of issues, if your PrivacyInfo.xcprivacy causes the issue (not by a third party framework) even if it is well-structured and detailed, but the issue flagged by Apple (ITMS-91064) is related to the tracking configuration. Specifically:

The Problem: You have NSPrivacyTracking set to true, but the NSPrivacyTrackingDomains key is missing.

According to Apple’s guidelines, if NSPrivacyTracking is true, you must include the NSPrivacyTrackingDomains key, even if it’s an empty array.

How to Fix: Add the NSPrivacyTrackingDomains key to your PrivacyInfo.xcprivacy file.

If your app does not use tracking domains, set it to an empty array:

<plist version="1.0">
  <dict>
  <key>NSPrivacyTracking</key>
  <true/>
  <key>NSPrivacyTrackingDomains</key>
  <array>
  </array>
  ...
  </dict>
</plist>

Upvotes: 0

sinan
sinan

Reputation: 512

@qtmfld my app is using capacitor,i have created PrivacyInfo.xcprivacy file using ionic vscode extension.NSPrivacyTracking is set to false now, should i change to true.i have not submitted my updated app to testfliht

Upvotes: 0

qtmfld
qtmfld

Reputation: 3187

As Apple wrote:

A PrivacyInfo.xcprivacy file contains invalid tracking information at the following path: “Frameworks/SASDisplayKit.framework/PrivacyInfo.xcprivacy”.
NSPrivacyTracking must be true if NSPrivacyTrackingDomains isn‘t empty.

you should identify the location of the file:

Frameworks/SASDisplayKit.framework/PrivacyInfo.xcprivacy

and make sure it has the key-value:

<key>NSPrivacyTracking</key>
<true/>

For example,

  1. open Terminal application of Mac.

  2. go to the root directory of your app's project:

    % cd ...
    
  3. list all the PrivacyInfo.xcprivacy files of your app:

    % find . -name PrivacyInfo.xcprivacy
    
  4. identify the PrivacyInfo.xcprivacy of SASDisplayKit

  5. open it and make sure the key-value:

    % open ...
    

In Release notes of Smart-Display-SDK:

Version 7.23.4

April 30th, 2024
iOS 13.0+

  • [Fixed] Display SDK privacy manifest, this will prevent your app from being rejected by Apple validation process.

Since this is SASDisplayKit according to its Podspec:

"vendored_frameworks": "SASDisplayKit.xcframework"

you can avoid rejection with this latest version.

Upvotes: 2

Related Questions