feat(darwin): add Apple privacy manifest - #1051
Merged
Merged
Conversation
Apple requires third-party SDKs to ship a PrivacyInfo.xcprivacy declaring their data use and any required-reason API access. This plugin only bridges CoreLocation to the host app: it transmits nothing off-device, uses no required-reason APIs, and does no tracking. The manifest declares exactly that (all empty / false). Bundled through both build systems: resource_bundles in the podspec for CocoaPods, and a processed resource in Package.swift for Swift Package Manager. Fixes #947
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
PrivacyInfo.xcprivacyfor iOS and macOS, wired into both build systems so it ships regardless of how the plugin is consumed:s.resource_bundlesinlocation.podspecresources: [.process(...)]inPackage.swiftCloses #947.
What it declares
The plugin surfaces CoreLocation to the host app but does not track users, transmit data off-device, or use any required-reason APIs (that list is UserDefaults / file-timestamp / boot-time / disk-space / keyboards — CoreLocation isn't on it). So the manifest declares:
NSPrivacyTrackingfalseNSPrivacyTrackingDomainsNSPrivacyCollectedDataTypesNSPrivacyAccessedAPITypesThis mirrors the App Store-reviewed
geolocator_applemanifest — the closest comparable plugin — which ships the same no-collection form. The host app remains responsible for declaring how it uses location in its own app-level manifest.Verification
plutil -lint→ OKswift package describelists the manifest as a target resourceflutter build ios --simulator→ builds; manifest is bundled atlocation_location.bundle/PrivacyInfo.xcprivacywith all four keys intact (plutil -pconfirmed)Release
Logged under the existing
## UnreleasedCHANGELOG section — no version bump, not for publication yet.