iosreact-nativeprivacy-manifest

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?


Solution

  • 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.