-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Apple Privacy Manifest #5007
Comments
@LFMAKER - How to check which library needs to add the iOS privacy manifest for the react-native project? |
I got some hints by running this script: https://github.com/Wooder/ios_17_required_reason_api_scanner |
@LFMAKER - Thanks. |
@LFMAKER - Is this sh required_reason_api_text_scanner.sh {directory_name} script is enough to find out which library needs iOS privacy manifest file? |
This script helps but it can't identify everything. I recommend using it and investigating library by library along with the documentation of functions that Apple has provided. |
"Google Maps Workaround: For everyone who needs to declare GoogleMaps only (this will not declare NSFileModificationDate of react-native-maps):
You can download the privacy at the link (https://developers.google.com/maps/documentation/ios-sdk/config#add-apple-privacy-manifest-file) and add it into your Xcode project's top level directory. You need to add it to the Build Phase 'Copy Bundle Resources'. The Apple Privacy Manifest for react-native-maps is still necessary due to NSFileModificationDate, and we should update the Google Maps iOS SDK to the latest version. The correct approach is to add the privacy manifest directly into the SDK, not at your app level. |
fixed in v1.15.2 |
Hey @salah-ghanim We had an AppStore submission today, and it seems that _ITMS-91054: Invalid API category declaration - The PrivacyInfo.xcprivacy for the “App” file contains “NSFileModificationDate” as the value for a NSPrivacyAccessedAPIType key, which is invalid. Values for NSPrivacyAccessedAPIType keys in any privacy manifest must be valid API categories. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api. ITMS-91054: Invalid API category declaration - The PrivacyInfo.xcprivacy for the “Frameworks/libswift_Concurrency.dylib” file contains “NSFileModificationDate” as the value for a NSPrivacyAccessedAPIType key, which is invalid. Values for NSPrivacyAccessedAPIType keys in any privacy manifest must be valid API categories. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api._ To verify, I |
Yeah based on that error I think it should be changed to "NSPrivacyAccessedAPICategoryFileTimestamp" - I'm encountering the same thing. |
@TiKevin83 @artyorsh Same issue here, did you find a workaround ? |
I may find one:
|
Just bind react-native maps to v1.15.1. It includes privacy manifest since v1.15.2 |
Artur, the issue is that the privacy manifest is broken. NSFileModificationDate should instead be NSPrivacyAccessedAPICategoryFileTimestamp. For people looking for a quick fix you can swap it out using patch-package. |
I believe for most of the apps it should be fine (unless react-native-maps uses it with different reasons) since |
Ah I see you mean downgrading to 1.15.1 - that seems reasonable temporarily as well. |
@TiKevin83 @artyorsh @jblemee I just created a new pull request with the NSPrivacyAccessedAPICategoryFileTimestamp value instead of NSFileModificationDate, would be nice if someone can quickly review this else I will merge it soon since there shouldn't be a downside (current version is broken) |
closing since it's merged |
Summary
About: https://developer.apple.com/news/?id=r1henawx
I found the use of NSFileModificationDate in react-native-maps and (mach_absolute_time, NSFileCreationDate, NSFileModificationDate, NSURLContentModificationDateKey, NSUserDefaults, NSFileSystemFreeSize, NSURLCreationDateKey, stat) in other libraries of Google Maps.
Should we create an Apple Privacy Manifest and declare it?
Reproducible sample code
The text was updated successfully, but these errors were encountered: