-
-
Notifications
You must be signed in to change notification settings - Fork 840
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
add apple privacy manifest & usage descriptions for UserDefaults #861
add apple privacy manifest & usage descriptions for UserDefaults #861
Conversation
@johnhatvani Thanks! I merge that in a separate branch as it's still need a bit of work (ideally, we want to add the manifest only if the concerned permission is used: FaceID) Then I will do a release. |
@zoontek Thanks! I'm not sure that the manifests are conditional like that, unless you have seen something different? |
@johnhatvani I updated the setup script to conditionally comment / uncomment the line: https://github.com/zoontek/react-native-permissions/blob/master/scripts/setup.rb |
nice change! was wondering how you would achieve that 🙏🏼 -- will that code be omitted if the end-user does not use FaceID? - I would assume that the scanner apple have won't look for when a particular API is utilised, only scan the binary for the symbol being present in the code |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [react-native-permissions](https://github.com/zoontek/react-native-permissions) | [`^3.10.1` -> `^4.1.5`](https://renovatebot.com/diffs/npm/react-native-permissions/3.10.1/4.1.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-permissions/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-permissions/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-permissions/3.10.1/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-permissions/3.10.1/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>zoontek/react-native-permissions (react-native-permissions)</summary> ### [`v4.1.5`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.5) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.1.4...4.1.5) - Use `Microsoft.Windows.CppWinRT` version provided by RNW by [@​tido64](https://github.com/tido64) in [https://github.com/zoontek/react-native-permissions/pull/860](https://github.com/zoontek/react-native-permissions/pull/860) - Add Apple privacy manifest & usage descriptions for `UserDefaults` by [@​johnhatvani](https://github.com/johnhatvani) in [https://github.com/zoontek/react-native-permissions/pull/861](https://github.com/zoontek/react-native-permissions/pull/861) ### [`v4.1.4`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.4) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.1.3...4.1.4) - Improve new architecture code ([https://github.com/zoontek/react-native-permissions/pull/850](https://github.com/zoontek/react-native-permissions/pull/850)) ### [`v4.1.3`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.3) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.1.2...4.1.3) - Switch to Objective-C++ ([https://github.com/zoontek/react-native-permissions/pull/849](https://github.com/zoontek/react-native-permissions/pull/849)) ### [`v4.1.2`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.2) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.1.1...4.1.2) - Replace deprecated microphone API on iOS >= 17 ([https://github.com/zoontek/react-native-permissions/pull/846](https://github.com/zoontek/react-native-permissions/pull/846)) ### [`v4.1.1`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.1) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.1.0...4.1.1) - Fix Expo plugin not working on Expo SDK 50 (closes [#​840](https://github.com/zoontek/react-native-permissions/issues/840)) ### [`v4.1.0`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.0) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.0.4...4.1.0) - Add expo config plugin for iOS permissions setup by [@​fobos531](https://github.com/fobos531) in [https://github.com/zoontek/react-native-permissions/pull/834](https://github.com/zoontek/react-native-permissions/pull/834) - Improved error handling for `Attempt to invoke interface method 'void com.facebook.react.bridge.Callback.invoke(java.lang.Object[])'` by [@​webraptor](https://github.com/webraptor) in [https://github.com/zoontek/react-native-permissions/pull/835](https://github.com/zoontek/react-native-permissions/pull/835) ### [`v4.0.4`](https://github.com/zoontek/react-native-permissions/releases/tag/4.0.4) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.0.3...4.0.4) - Fix a regression caused by the example app (now using `yarn link`) that updated the project `podspec` ### [`v4.0.3`](https://github.com/zoontek/react-native-permissions/releases/tag/4.0.3) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.0.2...4.0.3) - Add Android Gradle plugin 8 compatibility - Fix `AndroidManifest.xml` namespace deprecation warning ### [`v4.0.2`](https://github.com/zoontek/react-native-permissions/releases/tag/4.0.2) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.0.1...4.0.2) - Support `PERMISSIONS.IOS.MEDIA_LIBRARY` permission request on the iOS simulator ([https://github.com/zoontek/react-native-permissions/pull/831](https://github.com/zoontek/react-native-permissions/pull/831) by [@​asafkorem](https://github.com/asafkorem)) ### [`v4.0.1`](https://github.com/zoontek/react-native-permissions/releases/tag/4.0.1) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.0.0...4.0.1) - Enforce `checkNotifications` behaviour on Android < 13 to match the Android runtime permissions flow and all others permissions behaviour *(for more details, I made a post [here](https://github.com/zoontek/react-native-permissions/issues/714#issuecomment-1855538079))*. - Update example app to React Native 0.73.0 ### [`v4.0.0`](https://github.com/zoontek/react-native-permissions/releases/tag/4.0.0) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/3.10.1...4.0.0) #### Version 4.0.0, with iOS 17 and Android 14 support 🎉⚠️ This version requires [**Xcode 15**](https://developer.apple.com/xcode/) and drops support for iOS < 12.4 and React Native < 0.70. ##### What's changed - Deprecated iOS permission setup methods have been removed. [`setup_permissions`](https://github.com/zoontek/react-native-permissions/releases/tag/3.9.0) is now the unique way to do it - `openLimitedPhotoLibraryPicker` has been renamed `openPhotoPicker` - `PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL` has been renamed `PERMISSIONS.IOS.BLUETOOTH` ##### What's new - New Android permission: `PERMISSIONS.ANDROID.READ_MEDIA_VISUAL_USER_SELECTED` (closes [https://github.com/zoontek/react-native-permissions/issues/827](https://github.com/zoontek/react-native-permissions/issues/827)) - New iOS permission: `PERMISSIONS.IOS.CALENDARS_WRITE_ONLY` (closes [https://github.com/zoontek/react-native-permissions/issues/804](https://github.com/zoontek/react-native-permissions/issues/804)) - `openPhotoPicker` now resolves on picker close, not immediately (closes [https://github.com/zoontek/react-native-permissions/issues/689](https://github.com/zoontek/react-native-permissions/issues/689)) - `PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY` now resolves the `requestTrackingAuthorizationWithCompletionHandler` callback value (closes [https://github.com/zoontek/react-native-permissions/issues/823](https://github.com/zoontek/react-native-permissions/issues/823)) ##### How to migrate - Migrate to the [`setup_permissions`](https://github.com/zoontek/react-native-permissions/releases/tag/3.9.0) method - Replace `PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL` with `PERMISSIONS.IOS.BLUETOOTH` - Replace `BluetoothPeripheral` with `Bluetooth` in `setup_permissions` - Replace `NSCalendarsUsageDescription` with `NSCalendarsFullAccessUsageDescription` - Replace `NSRemindersUsageDescription` with `NSRemindersFullAccessUsageDescription` - Replace `openLimitedPhotoLibraryPicker` with `openPhotoPicker` ##### What's next? This release is quite minimal. If your company wants a new feature, feels free to reach me [via email](https://github.com/zoontek/react-native-permissions/blob/7f9e774947e4baf7f0db6a0fe954453a783b84be/package.json#L6) to hire me for it 🙂 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone America/Los_Angeles. 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/valora-inc/wallet). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJucG0iLCJyZW5vdmF0ZSJdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: valora-bot <[email protected]>
…nc#5311) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [react-native-permissions](https://github.com/zoontek/react-native-permissions) | [`^3.10.1` -> `^4.1.5`](https://renovatebot.com/diffs/npm/react-native-permissions/3.10.1/4.1.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-permissions/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-permissions/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-permissions/3.10.1/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-permissions/3.10.1/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>zoontek/react-native-permissions (react-native-permissions)</summary> ### [`v4.1.5`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.5) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.1.4...4.1.5) - Use `Microsoft.Windows.CppWinRT` version provided by RNW by [@​tido64](https://github.com/tido64) in [https://github.com/zoontek/react-native-permissions/pull/860](https://github.com/zoontek/react-native-permissions/pull/860) - Add Apple privacy manifest & usage descriptions for `UserDefaults` by [@​johnhatvani](https://github.com/johnhatvani) in [https://github.com/zoontek/react-native-permissions/pull/861](https://github.com/zoontek/react-native-permissions/pull/861) ### [`v4.1.4`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.4) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.1.3...4.1.4) - Improve new architecture code ([https://github.com/zoontek/react-native-permissions/pull/850](https://github.com/zoontek/react-native-permissions/pull/850)) ### [`v4.1.3`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.3) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.1.2...4.1.3) - Switch to Objective-C++ ([https://github.com/zoontek/react-native-permissions/pull/849](https://github.com/zoontek/react-native-permissions/pull/849)) ### [`v4.1.2`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.2) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.1.1...4.1.2) - Replace deprecated microphone API on iOS >= 17 ([https://github.com/zoontek/react-native-permissions/pull/846](https://github.com/zoontek/react-native-permissions/pull/846)) ### [`v4.1.1`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.1) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.1.0...4.1.1) - Fix Expo plugin not working on Expo SDK 50 (closes [#​840](https://github.com/zoontek/react-native-permissions/issues/840)) ### [`v4.1.0`](https://github.com/zoontek/react-native-permissions/releases/tag/4.1.0) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.0.4...4.1.0) - Add expo config plugin for iOS permissions setup by [@​fobos531](https://github.com/fobos531) in [https://github.com/zoontek/react-native-permissions/pull/834](https://github.com/zoontek/react-native-permissions/pull/834) - Improved error handling for `Attempt to invoke interface method 'void com.facebook.react.bridge.Callback.invoke(java.lang.Object[])'` by [@​webraptor](https://github.com/webraptor) in [https://github.com/zoontek/react-native-permissions/pull/835](https://github.com/zoontek/react-native-permissions/pull/835) ### [`v4.0.4`](https://github.com/zoontek/react-native-permissions/releases/tag/4.0.4) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.0.3...4.0.4) - Fix a regression caused by the example app (now using `yarn link`) that updated the project `podspec` ### [`v4.0.3`](https://github.com/zoontek/react-native-permissions/releases/tag/4.0.3) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.0.2...4.0.3) - Add Android Gradle plugin 8 compatibility - Fix `AndroidManifest.xml` namespace deprecation warning ### [`v4.0.2`](https://github.com/zoontek/react-native-permissions/releases/tag/4.0.2) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.0.1...4.0.2) - Support `PERMISSIONS.IOS.MEDIA_LIBRARY` permission request on the iOS simulator ([https://github.com/zoontek/react-native-permissions/pull/831](https://github.com/zoontek/react-native-permissions/pull/831) by [@​asafkorem](https://github.com/asafkorem)) ### [`v4.0.1`](https://github.com/zoontek/react-native-permissions/releases/tag/4.0.1) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/4.0.0...4.0.1) - Enforce `checkNotifications` behaviour on Android < 13 to match the Android runtime permissions flow and all others permissions behaviour *(for more details, I made a post [here](https://github.com/zoontek/react-native-permissions/issues/714#issuecomment-1855538079))*. - Update example app to React Native 0.73.0 ### [`v4.0.0`](https://github.com/zoontek/react-native-permissions/releases/tag/4.0.0) [Compare Source](https://github.com/zoontek/react-native-permissions/compare/3.10.1...4.0.0) #### Version 4.0.0, with iOS 17 and Android 14 support 🎉⚠️ This version requires [**Xcode 15**](https://developer.apple.com/xcode/) and drops support for iOS < 12.4 and React Native < 0.70. ##### What's changed - Deprecated iOS permission setup methods have been removed. [`setup_permissions`](https://github.com/zoontek/react-native-permissions/releases/tag/3.9.0) is now the unique way to do it - `openLimitedPhotoLibraryPicker` has been renamed `openPhotoPicker` - `PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL` has been renamed `PERMISSIONS.IOS.BLUETOOTH` ##### What's new - New Android permission: `PERMISSIONS.ANDROID.READ_MEDIA_VISUAL_USER_SELECTED` (closes [https://github.com/zoontek/react-native-permissions/issues/827](https://github.com/zoontek/react-native-permissions/issues/827)) - New iOS permission: `PERMISSIONS.IOS.CALENDARS_WRITE_ONLY` (closes [https://github.com/zoontek/react-native-permissions/issues/804](https://github.com/zoontek/react-native-permissions/issues/804)) - `openPhotoPicker` now resolves on picker close, not immediately (closes [https://github.com/zoontek/react-native-permissions/issues/689](https://github.com/zoontek/react-native-permissions/issues/689)) - `PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY` now resolves the `requestTrackingAuthorizationWithCompletionHandler` callback value (closes [https://github.com/zoontek/react-native-permissions/issues/823](https://github.com/zoontek/react-native-permissions/issues/823)) ##### How to migrate - Migrate to the [`setup_permissions`](https://github.com/zoontek/react-native-permissions/releases/tag/3.9.0) method - Replace `PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL` with `PERMISSIONS.IOS.BLUETOOTH` - Replace `BluetoothPeripheral` with `Bluetooth` in `setup_permissions` - Replace `NSCalendarsUsageDescription` with `NSCalendarsFullAccessUsageDescription` - Replace `NSRemindersUsageDescription` with `NSRemindersFullAccessUsageDescription` - Replace `openLimitedPhotoLibraryPicker` with `openPhotoPicker` ##### What's next? This release is quite minimal. If your company wants a new feature, feels free to reach me [via email](https://github.com/zoontek/react-native-permissions/blob/7f9e774947e4baf7f0db6a0fe954453a783b84be/package.json#L6) to hire me for it 🙂 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone America/Los_Angeles. 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/valora-inc/wallet). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJucG0iLCJyZW5vdmF0ZSJdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: valora-bot <[email protected]>
Summary
#830
Starting May 1, Apple will enforce 3rd party SDK's to sign & provide privacy manifests for specific API's being accessed by the code. This change adds a privacy manifest and reason for using the data. Apple Documentation
I have added a declaration for use of
UserDefualts
viaNSPrivacyAccessedAPICategoryUserDefaults
and from reading the code have stated the reasonTest Plan
What's required for testing (prerequisites)?
Build and run the example app
What are the steps to test it (after prerequisites)?
Upon building the IPA you can inspect the IPA and find
RNPermissions_PrivacyInfo.bundle
and within that findPrivacyInfo.xcprivacy
Compatibility
Checklist
README.md
example/App.tsx
)Notes