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

replace deprecated microphone api #846

Merged
merged 2 commits into from
Feb 18, 2024
Merged

Conversation

zoontek
Copy link
Owner

@zoontek zoontek commented Feb 18, 2024

No description provided.

@zoontek zoontek merged commit abfe1f2 into master Feb 18, 2024
@zoontek zoontek deleted the replace-deprecated-microphone-api branch February 18, 2024 13:43
@ridwansameer
Copy link

Hey @zoontek Not sure if this is the best place for this (Lmk if you rather me create an issue), But ever since we (accidentally) upgraded to 4.1.2 we're receiving these errors that look like they are because of this PR

image

Happening on an EAS Build as well as local

@ridwansameer
Copy link

Not sure if this is an issue for building to iOS 16, it should still be supported right?

@zoontek
Copy link
Owner Author

zoontek commented Feb 22, 2024

Be sure to compile with the latest version of Xcode (that supports iOS 17). It's a requirement since 4.0.0, maybe you just didn't use the permissions that require that until now.

@ridwansameer
Copy link

Yep sorry just to chime in here that it was indeed an Xcode issue. My colleague using xcode 14 couldn't build it and neither could EAS which defaults to Xcode 14. Bumped EAS to use Xcode 15 and it works. Sorry about that! :)

(Anyone seeing this later, just add "image": "latest" to your eas.json under ios for your selected profile

"development-simulator": {
      "developmentClient": true,
      "distribution": "internal",
      "ios": {
        "simulator": true,
        "image": "latest"
      }
},

@pierroo
Copy link

pierroo commented Mar 2, 2024

not sure I understand this release, does it mean that version prior to 4.1.2 will crash or have error if they request for microphone permission on ios>17 ?

github-merge-queue bot referenced this pull request 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 <[email protected]>
shottah referenced this pull request 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 <[email protected]>
@ghashi
Copy link

ghashi commented Jun 15, 2024

@pierroo , I think the answer is no.
According to this PR, the code will use AVAudioSession prior to ios 17 and will use AVAudioApplication for ios 17+.
it seems AVAudioSession is not deprecated https://developer.apple.com/documentation/avfaudio/avaudiosession . So the code prior to 4.1.12 will continue to work

ps: An advantage of using AVAudioApplication (instead of AVAudioSession): you can request this permission on the iOS simulator. https://twitter.com/zoontek/status/1759214416376033448

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants