fluttercommunity / fluttercommunity/plus_plugins

[Request]: The missing PrivacyManifest support

Open
#3,627 2 comments 3 reactions 0 assignees View on GitHub
enhancement triage
Dominant language
Dart
Stars
1.9k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

### Plugin

package_info_plus

### Use case

Hi package_info_plus team,

First, thank you for maintaining this incredibly useful package.

I am writing to report a potential issue regarding the privacy manifest (PrivacyInfo.xcprivacy) that may require your attention to ensure compliance with Apple's App Store policies.

#### Issue Description
While using a scanner tool ([omarzl/ios_17_required_reason_api_scanner](https://github.com/omarzl/ios_17_required_reason_api_scanner)) and manually inspecting the framework binary, I found that package_info_plus seems to use an API that requires a "Required Reason" declaration.

Specifically, the symbol [_NSFileCreationDate](https://github.com/fluttercommunity/plus_plugins/blob/main/packages/package_info_plus/package_info_plus/ios/package_info_plus/Sources/package_info_plus/FPPPackageInfoPlusPlugin.m#L64) was found, which is part of the File Timestamp API category (NSPrivacyAccessedAPICategoryFileTimestamp). However, the package's current PrivacyInfo.xcprivacy does not include a declaration for this API category.

Without this declaration, apps using this package may face warnings or rejections during the App Store review process.

#### Steps to Reproduce

Build a Flutter app that includes package_info_plus for an iOS target.

Locate the built framework at build/ios/Debug-iphoneos/package_info_plus/package_info_plus.framework/package_info_plus.

Run the nm command to inspect the symbols used by the binary:

```shell
nm -u path/to/package_info_plus | grep '_NSFileCreationDate'
```

The output confirms that the _NSFileCreationDate symbol is being used.

### Proposal

I would like to request that you update the [PrivacyInfo.xcprivacy](https://github.com/fluttercommunity/plus_plugins/blob/main/packages/package_info_plus/package_info_plus/ios/package_info_plus/Sources/package_info_plus/PrivacyInfo.xcprivacy) file to include the necessary declaration for the File Timestamp API. Based on Apple's documentation, the following entry should be added to the NSPrivacyAccessedAPITypes array:

```yaml

NSPrivacyAccessedAPIType
NSPrivacyAccessedAPICategoryFileTimestamp
NSPrivacyAccessedAPITypeReasons


C617.1

```

I've suggested reason code C617.1 as it seems the most likely fit for this package's functionality (displaying app information). Please confirm if this is the appropriate reason.

Thank you for your time and consideration on this matter.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.