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

Calendar permission fail on iOS 17 (will be released on Sept 18th) #804

Closed
andrejguran opened this issue Sep 7, 2023 · 3 comments · Fixed by #808
Closed

Calendar permission fail on iOS 17 (will be released on Sept 18th) #804

andrejguran opened this issue Sep 7, 2023 · 3 comments · Fixed by #808
Assignees
Labels
bug Something isn't working

Comments

@andrejguran
Copy link

andrejguran commented Sep 7, 2023

Bug summary

In new iOS 17 (to be relased on 18th of Sept)
this permission request:

[[EKEventStore new] requestAccessToEntityType:EKEntityTypeEvent

is deprecated and throw error:
Error: -requestAccessToEntityType:completion: has been deprecated-calling this method is no longer allowed. Instead, use -requestFullAccessToEventsWithCompletion:, -requestWriteOnlyAccessToEventsWithCompletion:, or -requestFullAccessToRemindersWithCompletion:.

Deprication notice: https://developer.apple.com/documentation/eventkit/ekeventstore/1507547-requestaccesstoentitytype

Library version

3.9.0

Environment info

ios 17

Steps to reproduce

request calendar permissions on iOS 17

Reproducible sample code

`await request(PERMISSIONS.IOS.CALENDARS);`
@andrejguran andrejguran added the bug Something isn't working label Sep 7, 2023
@zoontek
Copy link
Owner

zoontek commented Sep 7, 2023

@andrejguran Does this actually really throw or is it more a deprecation warning?

Those two new methods just landed in iOS 17 beta, that would be weird for Apple to prevent old API usage and publish the replacements in the same version.

Usually, they let developers the time to migrate by supporting both for at least one major version.

@andrejguran
Copy link
Author

@zoontek it's an error. Also they are deprecating EKAuthorizationStatus:authorized
so the library will return incorrect status

case EKAuthorizationStatusAuthorized:

It's possible that they will support both version, but I can't imagine how they'd support old authorized and new fullAccess and writeOnly statuses at the same time. I am leaning towards the possibility that on 18th when iOS 17 is released it will stop working.

@andrejguran andrejguran changed the title Calendar permission fail on iOS 17 (will be released on Sept 12th) Calendar permission fail on iOS 17 (will be released on Sept 18th) Sep 13, 2023
@zoontek
Copy link
Owner

zoontek commented Sep 17, 2023

Fixed in first v4 alpha: #808

github-merge-queue bot referenced this issue in valora-inc/wallet Apr 24, 2024
[![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://togithub.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://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.5)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.4...4.1.5)

- Use `Microsoft.Windows.CppWinRT` version provided by RNW by
[@&#8203;tido64](https://togithub.com/tido64) in
[https://github.com/zoontek/react-native-permissions/pull/860](https://togithub.com/zoontek/react-native-permissions/pull/860)
- Add Apple privacy manifest & usage descriptions for `UserDefaults` by
[@&#8203;johnhatvani](https://togithub.com/johnhatvani) in
[https://github.com/zoontek/react-native-permissions/pull/861](https://togithub.com/zoontek/react-native-permissions/pull/861)

###
[`v4.1.4`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.4)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/pull/850))

###
[`v4.1.3`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.3)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/pull/849))

###
[`v4.1.2`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.2)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/pull/846))

###
[`v4.1.1`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.1)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.0...4.1.1)

- Fix Expo plugin not working on Expo SDK 50 (closes
[#&#8203;840](https://togithub.com/zoontek/react-native-permissions/issues/840))

###
[`v4.1.0`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.0)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.4...4.1.0)

- Add expo config plugin for iOS permissions setup by
[@&#8203;fobos531](https://togithub.com/fobos531) in
[https://github.com/zoontek/react-native-permissions/pull/834](https://togithub.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
[@&#8203;webraptor](https://togithub.com/webraptor) in
[https://github.com/zoontek/react-native-permissions/pull/835](https://togithub.com/zoontek/react-native-permissions/pull/835)

###
[`v4.0.4`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.4)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.3)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.2)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/pull/831)
by [@&#8203;asafkorem](https://togithub.com/asafkorem))

###
[`v4.0.1`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.1)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/issues/714#issuecomment-1855538079))*.
-   Update example app to React Native 0.73.0

###
[`v4.0.0`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.0)

[Compare
Source](https://togithub.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://togithub.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://togithub.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://togithub.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://togithub.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://togithub.com/zoontek/react-native-permissions/issues/823))

##### How to migrate

- Migrate to the
[`setup_permissions`](https://togithub.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://togithub.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 <valorabot@valoraapp.com>
shottah referenced this issue in zed-io/kolektivo May 15, 2024
…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://togithub.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://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.5)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.4...4.1.5)

- Use `Microsoft.Windows.CppWinRT` version provided by RNW by
[@&#8203;tido64](https://togithub.com/tido64) in
[https://github.com/zoontek/react-native-permissions/pull/860](https://togithub.com/zoontek/react-native-permissions/pull/860)
- Add Apple privacy manifest & usage descriptions for `UserDefaults` by
[@&#8203;johnhatvani](https://togithub.com/johnhatvani) in
[https://github.com/zoontek/react-native-permissions/pull/861](https://togithub.com/zoontek/react-native-permissions/pull/861)

###
[`v4.1.4`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.4)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/pull/850))

###
[`v4.1.3`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.3)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/pull/849))

###
[`v4.1.2`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.2)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/pull/846))

###
[`v4.1.1`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.1)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.1.0...4.1.1)

- Fix Expo plugin not working on Expo SDK 50 (closes
[#&#8203;840](https://togithub.com/zoontek/react-native-permissions/issues/840))

###
[`v4.1.0`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.1.0)

[Compare
Source](https://togithub.com/zoontek/react-native-permissions/compare/4.0.4...4.1.0)

- Add expo config plugin for iOS permissions setup by
[@&#8203;fobos531](https://togithub.com/fobos531) in
[https://github.com/zoontek/react-native-permissions/pull/834](https://togithub.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
[@&#8203;webraptor](https://togithub.com/webraptor) in
[https://github.com/zoontek/react-native-permissions/pull/835](https://togithub.com/zoontek/react-native-permissions/pull/835)

###
[`v4.0.4`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.4)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.3)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.2)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/pull/831)
by [@&#8203;asafkorem](https://togithub.com/asafkorem))

###
[`v4.0.1`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.1)

[Compare
Source](https://togithub.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://togithub.com/zoontek/react-native-permissions/issues/714#issuecomment-1855538079))*.
-   Update example app to React Native 0.73.0

###
[`v4.0.0`](https://togithub.com/zoontek/react-native-permissions/releases/tag/4.0.0)

[Compare
Source](https://togithub.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://togithub.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://togithub.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://togithub.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://togithub.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://togithub.com/zoontek/react-native-permissions/issues/823))

##### How to migrate

- Migrate to the
[`setup_permissions`](https://togithub.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://togithub.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 <valorabot@valoraapp.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants