-
Notifications
You must be signed in to change notification settings - Fork 986
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: add privacy-manifest config support #1406
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The suggested changes aim to establish a standard filename convention for use across platforms. This would facilitate the process for anyone intending to create a new platform by copying an existing one and making modifications without the need for renaming files.
How does this work with plugins? Can a plugin use I don't want to introduce scope creep but I just want to make sure this was thought about. I think it would be ideal for plugins to be able to declare their privacy entries and the results will get merged into one file for the application. Otherwise it will be a painful process for plugin authors to document and hope end users follows instructions to add the necessary privacy entries. |
The PR will solely focus on adding the minimum support for the We aim to ensure that both Config.xml (for App Developers) and Plugin.xml (for Plugin Developers) support this tag and are completed and released before Apple's Privacy Manifest requirement takes effect. However, in the event that we are unable to complete the support for plugin.xml, at least the support for config.xml will be completed and merged with this PR.
As you mentioned, we're aiming to keep the scope specific for this PR. However, the ultimate goal aligns with your idea of gathering all |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Formatting and code style comments aside, the overall implementation looks good to me 👍
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1406 +/- ##
==========================================
+ Coverage 78.24% 78.50% +0.25%
==========================================
Files 15 16 +1
Lines 1788 1814 +26
==========================================
+ Hits 1399 1424 +25
- Misses 389 390 +1 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
I will currently give it an "Approve" mark and will wait awhile to see if others have any additional feedback before merging.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
When this version could be used or tested? |
Hello, @erisu |
This reverts commit 1974dbb. Revert "feat: add privacy-manifest config support (apache#1406)" This reverts commit c97845a. Revert "ci(gh-action): add Apache RAT & package license checker workflow w/ license header additions (apache#1408)" This reverts commit d316558. Revert "fix: use PROVISIONING_PROFILE_SPECIFIER for manual codesigning (apache#1405)" This reverts commit af6335e. Revert "feat: add PrivacyInfo.xcprivacy for CordovaLib & app template (apache#1383)" This reverts commit b400b70. Revert "fix: WASM MIME type error by specifying it in Info.plist template (apache#1374)" This reverts commit 902df96. Revert "chore: update package & package-lock (apache#1404)" This reverts commit 2091208. Revert "chore: bump 7.1.0-dev for next minor release (apache#1403)" This reverts commit 766adcf. Revert "chore(deps-dev): bump @babel/traverse from 7.21.4 to 7.23.2 (apache#1382)" This reverts commit 92017bb. Revert "chore: Update Slack signup link in SUPPORT_QUESTION.md (apache#1380)" This reverts commit be4c884. Revert "chore: bump version 7.0.2-dev" This reverts commit a1f3ace.
* feat: privacy manifest settings in config.xml * refac: remove unused code and tidy up * refac: update class name PlatformConfigParser * feat: add elementtree in package.json * dev: change privacy manifest tag name to privacy-manifest from privacy-manifest-ios * test: add test codes * refactor: Modified to match Linter. * refac: improve PlatformConfigParser * refac: remove unnecessary blank line --------- Co-authored-by: エリス <[email protected]>
How to build this version to test ios manifest ? |
So, how do you exactly use this feature to comply with Apple guidelines? Because I keep receiving the email, they keep telling me that I need to fill: I've set-up those values in my <privacy-manifest>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>7D9E.1</string>
</array>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>1C8F.1</string>
</array>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
</dict>
</array>
</privacy-manifest> I have also tried using some of the examples above, and the email keeps telling me the same thing. |
I do not see files generated, but when I uploaded a new version with 7.1.1.nightly-, I did not receive an email.
Is this possible? |
Platforms affected
ios
Motivation and Context
To support setting ios privacy manifest according to config.xml setting.
Description
Introducing tag in config.xml ios platform directive.
If user add following directive in config.xml (platform ios)
the ios project PrivacyManifest.xcprivacy is updated as config.xml.
If user does not set
<privacy-manifest>
tag in config.xml, the cordova templatedefault PrivacyManifest.xcprivacy is used.
Note: This
<privacy-manifest>
tag overrides whole PrivacyManifest.xcprivacy file in project each timeuser execute cordova prepare.
Testing
I locally checked this feature with sample project.
I locally exec
npm run coverage
.Checklist
(platform)
if this change only applies to one platform (e.g.(android)
)