yarn react-native-permissions 3.9.0

latest releases: 5.1.0, 5.0.2, 5.0.1...
14 months ago

Run setup_permissions directly in your Podfile

This release come with an alternative permission linkage system for iOS: calling a function, setup_permissions inside your Podfile.
It offers the same benefits as the react-native setup-ios-permissions command (and actually perform the exact same operation), but it lives in your Podfile, so there's no need to run it each time your delete your node_modules directory.
The only requirement is to run pod install when your update your Podfile, which make much more sense 😄
This method also solves issues with monorepos / dependencies hoisting.

To migrate, remove your reactNativePermissionsIOS config, and update your Podfile:

# with react-native >= 0.72
- # Resolve react_native_pods.rb with node to allow for hoisting
- require Pod::Executable.execute_command('node', ['-p',
-   'require.resolve(
-     "react-native/scripts/react_native_pods.rb",
-     {paths: [process.argv[1]]},
-   )', __dir__]).strip

+ def node_require(script)
+   # Resolve script with node to allow for hoisting
+   require Pod::Executable.execute_command('node', ['-p',
+     "require.resolve(
+       '#{script}',
+       {paths: [process.argv[1]]},
+     )", __dir__]).strip
+ end

+ node_require('react-native/scripts/react_native_pods.rb')
+ node_require('react-native-permissions/scripts/setup.rb')
# with react-native < 0.72
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
+ require_relative '../node_modules/react-native-permissions/scripts/setup'

Then in the same file, call setup_permissions with the wanted permissions:

# …

platform :ios, min_ios_version_supported
prepare_react_native_project!

# ⬇️ uncomment wanted permissions (don't forget to remove the last comma)
setup_permissions([
  # 'AppTrackingTransparency',
  # 'BluetoothPeripheral',
  # 'Calendars',
  # 'Camera',
  # 'Contacts',
  # 'FaceID',
  # 'LocationAccuracy',
  # 'LocationAlways',
  # 'LocationWhenInUse',
  # 'MediaLibrary',
  # 'Microphone',
  # 'Motion',
  # 'Notifications',
  # 'PhotoLibrary',
  # 'PhotoLibraryAddOnly',
  # 'Reminders',
  # 'SpeechRecognition',
  # 'StoreKit'
])

# …

And run pod install. Done! ✨

📌 The React Native CLI plugin still exists and will not be removed until next major version.


  • request now accepts () => Promise<boolean> as rationale argument.
    This way, you can display custom rationale alerts instead of the native ones (fixes #710)

Don't miss a new react-native-permissions release

NewReleases is sending notifications on new releases.