alpha0010 / react-native-file-access

Filesystem access for React Native
MIT License
298 stars 18 forks source link

[iOS] privacy-related API usage #73

Closed troZee closed 3 months ago

troZee commented 11 months ago

Description

NO MAINTAINER ACTION REQUIRED. PLEASE READ THE APPLE DOCUMENTATION PROVIDED IN THIS ISSUE, IF YOU WOULD LIKE TO USE THIS LIBRARY IN YOUR APP

https://developer.apple.com/news/?id=z6fu1dcu

API used in this library https://github.com/alpha0010/react-native-file-access/blob/master/ios/FileAccess.swift#L136C45-L136C55 https://github.com/alpha0010/react-native-file-access/blob/master/ios/FileAccess.swift#L135

Details

The following APIs for accessing the available disk space require reasons for use. Use the string NSPrivacyAccessedAPICategoryDiskSpace as the value for the NSPrivacyAccessedAPIType key in your NSPrivacyAccessedAPITypes dictionary.

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#4278397

<?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>NSPrivacyAccessedAPITypes</key>
  <array>
    <dict>
      <key>NSPrivacyAccessedAPIType</key>
      <string>NSPrivacyAccessedAPICategoryDiskSpace</string>
      <key>NSPrivacyAccessedAPITypeReasons</key>
      <array>
        <string>E174.1</string>
      </array>
    </dict>
  </array>
</dict>
</plist>

Affected API https://developer.apple.com/documentation/foundation/fileattributekey/1410126-systemfreesize https://developer.apple.com/documentation/foundation/fileattributekey/1415888-systemsize

hoshomoh commented 11 months ago

Maybe this should be added to the README?

xamplum commented 3 months ago

actually, this should be provided by this package: see: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests

Important

Third-party SDKs need to provide their own privacy manifest files that record the types of data they collect. Your app’s privacy manifest file doesn’t need to cover data collected by third-party SDKs that your app links to.

Could a corresponding privacy manifest be included in the repo please?