fluttercommunity / fluttercommunity/plus_plugins
[Question]: device_info_plus — Privacy Manifest declarations for iOS disk space APIs
- 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