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

feat(ios): add bundled resources for privacy manifest #621

Merged
merged 2 commits into from
Apr 22, 2024

Conversation

erisu
Copy link
Member

@erisu erisu commented Apr 17, 2024

Platforms affected

ios

Motivation and Context

Support Apple's Privacy Manifest requirements

closes #620

Description

  • Created a resource bundle
  • Added PrivacyInfo.xcprivacy to the resource bundle
  • Load bundle into iOS project with resource-file in plugin.xml

The bundle is prefixed with Cordova's internal CDV namespace.

Note for third-party plugins: When creating a bundle or even class names, it is recommended to establish your own namespace and utilize a unique identifier to prevent conflicts with other plugins.

Testing

  • platform add
  • plugin add
  • archive project
  • generated privacy report

Checklist

  • I've run the tests to see all new and existing tests pass
  • I added automated test coverage as appropriate for this change
  • Commit is prefixed with (platform) if this change only applies to one platform (e.g. (android))
  • If this Pull Request resolves an issue, I linked to the issue in the text above (and used the correct keyword to close issues using keywords)
  • I've updated the documentation if necessary

@erisu erisu force-pushed the feat/ios-privacy-manifest branch from db860b3 to cdb8423 Compare April 17, 2024 12:11
@erisu erisu merged commit 8c8e33c into apache:master Apr 22, 2024
4 of 10 checks passed
@erisu erisu deleted the feat/ios-privacy-manifest branch April 22, 2024 07:17
@jkronborg
Copy link

@erisu Thanks for this! Do you plan on releasing this change anytime soon? For regulatory reasons it's easier for us to use release versions than development versions.

@erisu
Copy link
Member Author

erisu commented May 31, 2024

@jkronborg I pushed a release vote today.

Cordova's voting process requires a 2+1 positive binding vote to be considered successful. Additionally, the process must remain open for a minimum of 48 hours. Depending on people's availability and the results, it is possible that we will see an official release shortly.

You can monitor the vote via our dev mailing list: https://lists.apache.org/thread/fkdrny5yzjrqcmcc0ls4l25kngo311n9

@jkronborg
Copy link

jkronborg commented Jun 1, 2024

@erisu Thanks 👍

For people that might see this and think it'll fix Apple's privacy manifest error messages: I realized that cordova-ios is not yet ready to support these plugin-provided privacy manifests, so for now you have to merge the plugin's manifest with your app's manifest yourself.

@erisu
Copy link
Member Author

erisu commented Jun 1, 2024

@jkronborg

The comment you linked should not be valid anymore.

At that time we were thinking plugin developers would include the same privacy manifest tag structure in plugin.xml and Cordova would merge them together but that is not actually necessary.

Xcode automatically detects and collects the privacy manifest files from the app, resource bundle, and frameworks/libraries and generates the report.

The way this PR implemented the privacy manifest for plugins is preferred for other plugins.

If a plugin is not updated, then app developers would need to determine the privacy information and include it in the app's config.xml.

@jkronborg
Copy link

@erisu OK, thanks for the clarification.

@jwasnoggin
Copy link

So to clarify, all I need to do to make Apple happy is update the plugin to 8.1.0? I don't need to add the privacy manifest to config.xml as well?

@breautek
Copy link
Contributor

So to clarify, all I need to do to make Apple happy is update the plugin to 8.1.0? I don't need to add the privacy manifest to config.xml as well?

file plugin 8.1 provides a bundled privacy manifest that declares what this plugin uses. Other plugins may do the same. If a plugin doesn't and uses an API that requires a declared reason, then you may have to resort to adding a config.xml.

In otherwords if the only plugin you use is file plugin, then yes 8.1 should satisfy Apple's requirements. We cannot speak for other plugins that might be installed in your project.

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.

iOS - Privacy Manifest
5 participants