Closed MiuraKairi closed 6 months ago
+1 here.
For now, I've added a blank entry to the xcprivacy
on my side, but is this something that can be fixed in one of the upcoming releases?
if app is not using any of the NSPrivacyCollectionDataTypes
, we can have an empty key in the xcprivacy
to avoid the Missing an expected key: 'NSPrivacyCollectedDataTypes'
message the generated .pdf
file.
Empty key:
<?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">
<array/>
</plist>
hello! i think bug in podspec file, xcprivacy should be in s.resource_bundles
s.resource_bundles = {'ZIPFoundation' => ['Sources/ZIPFoundation/Resources/PrivacyInfo.xcprivacy']}
I think the reason at NSPrivacyAccessedAPICategoryFileTimestamp
should be 0A2A.1
(instead of 3B52.1
) as defined at:
Describing use of required reason API | Apple Developer Documentation https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api
0A2A.1 Declare this reason if your third-party SDK is providing a wrapper function around file timestamp API(s) for the app to use, and you only access the file timestamp APIs when the app calls your wrapper function. This reason may only be declared by third-party SDKs. This reason may not be declared if your third-party SDK was created primarily to wrap required reason API(s). Information accessed for this reason, or any derived information, may not be used for your third-party SDK’s own purposes or sent off-device by your third-party SDK.
Please, use
s.resource_bundles = {'ZIPFoundation' => ['Sources/ZIPFoundation/Resources/PrivacyInfo.xcprivacy']}
It's required for static linkage. Otherwise, it will replace PrivacyInfo.xcprivacy of the main target.
Summary
The collection purpose for the "Privacy Nutrition Label Types" is absent in the Privacy Manifests.
If Privacy Nutrition Label Types are not needed, the item0 declared must be removed. Otherwise, the appropriate The collection purpose should be declared.
Now, the privacy report is output as shown in the following image.
Related Link
Data Use: https://developer.apple.com/app-store/app-privacy-details/#:~:text=types%20not%20mentioned-,Data%20use,-You%20should%20have
For more information, please refer to the following thread and other library implementations. ref: https://github.com/CocoaPods/CocoaPods/issues/10325