Reputation: 347
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
any clue how to fix this issue?
Upvotes: 3
Views: 2421
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
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
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,
open Terminal application of Mac.
go to the root directory of your app's project:
% cd ...
list all the PrivacyInfo.xcprivacy
files of your app:
% find . -name PrivacyInfo.xcprivacy
identify the PrivacyInfo.xcprivacy
of SASDisplayKit
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