fluttercommunity / fluttercommunity/plus_plugins

[Question]: device_info_plus — Privacy Manifest declarations for iOS disk space APIs

Ouverte
#3,974 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Dart
Étoiles
1.9k
Forks
1.3k
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

### What is your question?

Could you help clarify whether the iOS disk-space retrieval in `device_info_plus 13.2.0` requires a required-reason API declaration in its Privacy Manifest? If there is existing guidance about this implementation, I would appreciate a pointer.

#### What I checked

In the package published on pub.dev:

- `FPPDeviceInfoPlusPlugin.m` calls `attributesOfFileSystemForPath:error:` inside `getDeviceInfo`, then reads free and total disk space from the returned dictionary using the `NSFileSystemFreeSize` and `NSFileSystemSize` keys.
- The bundled `PrivacyInfo.xcprivacy` has an empty `NSPrivacyAccessedAPITypes` array.

I also inspected an unsigned iOS Release build. The resulting `device_info_plus` framework contains references to the disk-space API, and its bundled manifest still has an empty `NSPrivacyAccessedAPITypes` array.

For context, my app obtains OS information through the Aptabase Flutter SDK. Aptabase does not include the disk-space values in its outgoing payload, but they are retrieved by the native plugin along with the OS information.

[Apple's required-reason API list](https://developer.apple.com/documentation/bundleresources/app-privacy-configuration/nsprivacyaccessedapitypes/nsprivacyaccessedapitype) lists `systemFreeSize` and `systemSize` under disk space. This implementation reads the values from the dictionary returned by `attributesOfFileSystemForPath:error:` instead. Am I understanding correctly that this retrieval method also needs a reason declaration? Is there a rationale or guidance for leaving the array empty in this case?

**I have not submitted this configuration to the App Store.** This question is based on source inspection and an unsigned Release build; I am not reporting an Apple warning or an App Review rejection.

I found #2751, but that discussion predates the disk-space retrieval added in #3536, so I thought this might be a separate question. Please let me know if I have overlooked an existing explanation or issue.

#### Environment

- device_info_plus: 13.2.0
- Flutter: 3.44.0
- Xcode: 26.6
- iOS Release build, unsigned

### Checklist before submitting a question

- [x] I searched issues in this repository and couldn't find such bug/problem
- [x] I searched the web for an explanation of this specific issue and could not find one
- [x] I searched Stack Overflow via a site-restricted web search and could not find an explanation of this specific issue
- [x] I read the README.md file of the plugin
- [x] I am using the latest version of the plugin
- [ ] All dependencies are up to date with `flutter pub upgrade`
- [ ] I did a `flutter clean`
- [ ] I tried running the example project

The unchecked items have not been performed. This is a question about the published native source and bundled manifest, rather than a runtime or build failure; I have left those items unchecked rather than claiming they were completed.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Examinez FPPDeviceInfoPlusPlugin.m et le PrivacyInfo.xcprivacy inclus, en vous concentrant sur l’appel attributesOfFileSystemForPath:error: et sur le tableau NSPrivacyAccessedAPITypes vide. Comparez cette utilisation avec les directives d’Apple concernant les API nécessitant une justification et avec l’historique autour de #3536 et #2751. Le travail est considéré comme terminé lorsqu’il est documenté si une déclaration est requise et que le manifeste ou les directives sont mis à jour si les mainteneurs confirment un changement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
dart, flutter, ios
Domaine
mobile, security
Type d'issue
Documentation
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.