Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Privacy manifest inclusion for SPM and Cocoapods #55

Merged

Conversation

gazreese
Copy link
Contributor

@gazreese gazreese commented May 3, 2024

Description

Due to upcoming https://developer.apple.com/support/third-party-SDK-requirements/ we've updated the SDK to include a Privacy Manifest.

The format and purpose of these is described here: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files

The crux of what I've gone for on here is:

UserDefaults: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#4278401

This is needed to store persistent state info for the SDK. At the moment this is just used to store analytics events in the case they can't be sent immediately. This could possibly be removed in the future if you're (a) not that fussed and we (b) post analytics when the app goes to the background to avoid data loss.

Other Diagnostic Data:

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests#4144131

I've tested this with the unit tests and also creating local packages with Swift Package Manager and Cocoapods to see if the Privacy Manifest is included, which it does appear to be. When running the new SDK in the example app I didn't see any additional privacy dialogs appear.

I've also checked my changes against other popular iOS SDKs and can confirm they're consistent.

Manifest files are typically checked by Apple automatically when submitting to the App Store, so that's going to be the real test for this one.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • 🛠️ Bug fix (non-breaking change which fixes an issue)
  • ❌ Breaking change (fix or feature that would cause existing functionality to change)
  • 🧹 Code refactor
  • ✅ Build configuration change
  • 📝 Documentation
  • 🗑️ Chore

https://developer.apple.com/support/third-party-SDK-requirements/

# Conflicts:
#	Example/Podfile.lock
#	Example/Pods/Manifest.lock
#	Example/Pods/Pods.xcodeproj/project.pbxproj
#	Package.swift
# Conflicts:
#	Example/Pods/Manifest.lock
#	Example/Pods/Pods.xcodeproj/project.pbxproj
#	Package.swift
Example/Podfile.lock Show resolved Hide resolved
@matthewelwell matthewelwell merged commit cbc9e0b into Flagsmith:main May 3, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants