-
Notifications
You must be signed in to change notification settings - Fork 106
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
feat: add react-native-permissions config plugin #126
base: main
Are you sure you want to change the base?
Conversation
]); | ||
}; | ||
|
||
function getPodfileContent(pods: string[]) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be cool if this was a for loop iterating some array in Podfile properties, similar to what we do in ffmpeg.
|
||
function getPodfileContent(pods: string[]) { | ||
return ` | ||
permissions_path = '../node_modules/react-native-permissions/ios' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should use Node module resolution to support monorepos, ex.
Basically you use Node.js to search for react-native-permissions/package.json
then you get a string like ../node_modules/react-native-permissions/package.json
which you can then append ../ios
to. This will allow the module to live anywhere and keep the package working in most cases.
This is a pretty complicated config plugin and the current state won't work in monorepos, so I recommend adding unit tests and an example app. |
I think this PR is no longer necessary! With the addition of |
Why
While Expo provides ways to request various permissions via different Expo modules there is a need for a generic permission library. The most popular permission library in React Native is react-native-permissions which is currently not compatible with Expo. This plugin allows devs to configure the necessary pods inside the
Podfile
for react-native-permissions library as part of the prebuild process.How
This plugin was built by taking a look at the other Expo Config Plugins in this repo and copying their implementation.
Test Plan
This plugin was first implemented and tested outside of this repo by running
expo prebuild
with the plugin added to the list of plugins inapp.config.js
like this:This is the output of that test:
Since the plugin is so simple there is probably no need to add further tests for this plugin or to add an example app inside
/apps
folder for this plugin. However, I'm happy to add those if needed 🙂