fluttercommunity / fluttercommunity/plus_plugins
[Question]: device_info_plus — Privacy Manifest declarations for iOS disk space APIs
まだ誰も着手していません。
- 主要言語
- Dart
- スター
- 1.9k
- フォーク
- 1.3k
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
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.mcallsattributesOfFileSystemForPath:error:insidegetDeviceInfo, then reads free and total disk space from the returned dictionary using theNSFileSystemFreeSizeandNSFileSystemSizekeys.- The bundled
PrivacyInfo.xcprivacyhas an emptyNSPrivacyAccessedAPITypesarray.
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.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
FPPDeviceInfoPlusPlugin.m と同梱の PrivacyInfo.xcprivacy を調査し、attributesOfFileSystemForPath:error: の呼び出しと空の NSPrivacyAccessedAPITypes 配列に注目してください。この使用方法を、Apple の理由の提示が必要な API に関するガイダンス、および #3536 と #2751 周辺の履歴と比較してください。宣言が必要かどうかを文書化し、maintainer が変更を確認した場合に manifest またはガイダンスを更新すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- dart, flutter, ios
- 領域
- mobile, security
- issue の種類
- ドキュメント
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 活発
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100