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
Added Apple privacy manifests for iOS and macOS #8680
Conversation
</array> | ||
</dict> | ||
<!-- NSPrivacyAccessedAPICategorySystemBootTime() in Remotery.c --> | ||
<dict> |
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.
Does this API end up in release build? I thought Remotery.c
is debug only
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.
Yes, by default at least. But I suppose you could make a release with Remotery available right? The described reason is also not very restrictive:
35F9.1
Declare this reason to access the system boot time in order to measure the amount of time that has elapsed between events that occurred within the app or to perform calculations to enable timers.Information accessed for this reason, or any derived information, may not be sent off-device. There is an exception for information about the amount of time that has elapsed between events that occurred within the app, which may be sent off-device.
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.
"But I suppose you could make a release with Remotery available right"
But then I would also assume that the developer would add a custom privacy manifest?
But if it doesn't matter, then sure.
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.
Yes, the developer can copy the file and modify it. Or we should include one file for release and one for debug builds? Or remove this value from the default?
I honestly don't think it matters much and we can change it later.
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.
It would be nice if we be able to use info from app manifest to keep or remove blocks from there. Something similar we do based on info from game.project using mustache tamplates.
something like this in PrivacyInfo.xcprivacy
...
{{^appmanifest_libs.profilerext_null}}
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
{{/appmanifest_libs.profilerext_null}}
...
But maybe it's something we should think about in a separate iteration
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.
👍
</array> | ||
</dict> | ||
<!-- NSPrivacyAccessedAPICategorySystemBootTime() in Remotery.c --> | ||
<dict> |
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.
It would be nice if we be able to use info from app manifest to keep or remove blocks from there. Something similar we do based on info from game.project using mustache tamplates.
something like this in PrivacyInfo.xcprivacy
...
{{^appmanifest_libs.profilerext_null}}
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
{{/appmanifest_libs.profilerext_null}}
...
But maybe it's something we should think about in a separate iteration
<string>35F9.1</string> | ||
</array> | ||
</dict> | ||
</array> |
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.
I didn't check the full list myself, I hope we didn't miss anything, esp. for things in libs (when we use already compiled libraries from packages
, not source code)
* Added Apple privacy manifests for iOS and macOS * Upload manifest to extender and use in bundle * Update BundleHelper.java * Update BundleHelper.java * Update game.project
This change adds an Apple Privacy Manifest (
PrivacyInfo.xcprivacy
) to builtins for both iOS and macOS. The privacy manifest will also be added as agame.project
setting for both iOS and macOS. If the project also contains native extensions any privacy manifests used by the extensions or any extension dependencies these will be merged with the project manifest. The merged (or original manifest) will be included in the bundled app.Including a privacy manifest will be required by Apple when uploading to App Store Connect:
"If you upload an app to App Store Connect that uses required reason API without describing the reason in its privacy manifest file, Apple sends you an email reminding you to add the reason to the app’s privacy manifest. Starting May 1, 2024, apps that don’t describe their use of required reason API in their privacy manifest file aren’t accepted by App Store Connect."
Source: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api?language=objc
Fixes #8378
PR checklist
Example of a well written PR description:
### Technical changes
Technical changes:
Technical notes: