Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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

Open
#3,974 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Documentation
Clarity
Needs clarification
Activity status
Active
Tech stack
dart, flutter, ios
Domain
mobile, security

Research direction

Inspect FPPDeviceInfoPlusPlugin.m and the bundled PrivacyInfo.xcprivacy, focusing on the attributesOfFileSystemForPath:error: call and the empty NSPrivacyAccessedAPITypes array. Compare that usage with Apple's required-reason API guidance and the history around #3536 and #2751. Done means documenting whether a declaration is required and updating the manifest or guidance if maintainers confirm a change.

Written by the indexing model from the issue text.

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 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
  • I searched issues in this repository and couldn't find such bug/problem
  • I searched the web for an explanation of this specific issue and could not find one
  • I searched Stack Overflow via a site-restricted web search and could not find an explanation of this specific issue
  • I read the README.md file of the plugin
  • 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.

Dominant language
Dart
Stars
1.9k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fluttercommunity/plus_plugins

All issues in fluttercommunity/plus_plugins

Similar issues

More Dart issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.