
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
react-native-schemes-manager
Advanced tools
Helps to manage React Native XCode projects that use multiple schemes to manage things like environment variables.
Now you can use Xcode build configurations / schemes with React Native without pulling your hair out.
If your app has multiple environments, you'd probably like to be able to manage these the way native developers have been doing for years, Xcode schemes and build configurations.
By default, React Native doesn't handle these particularly well, and the ability to launch dev tools or run in debug mode is impacted. This package fixes these problems.
Made by Kevin Brown, supported by Tech Insite. Thank you for making this project possible!
yarn add --dev react-native-schemes-manager
or
npm install --save-dev react-native-schemes-manager
Once the package is installed in your project, you just need to configure it by adding an xcodeSchemes
section to your package.json
and adding a postinstall
script which will re-run the script whenever you add or remove packages to/from your project:
{
"name": "your-awesome-app",
"version": "1.0.0",
"scripts": {
"postinstall": "react-native-schemes-manager all"
},
"xcodeSchemes": {
"Debug": ["Staging", "Preflight"],
"Release": ["Beta"],
"projectDirectory": "iOS",
"settings": {
"fix-script": {
// Additional environment variables your code might need
// They will be set using an `export` right before the scheme manager script runs.
"env": {
"NODE_BINARY": "/usr/bin/node6",
"LOGGING_LEVEL": "4"
},
// If you need to use some other command to run the scheme manager script
// (for example, if you use a library like Sentry).
"nodeCommand": "$NODE_BINARY ../node_modules/@sentry/cli/bin/sentry-cli react-native xcode"
}
}
},
}
This configuration will copy the "Debug" build configuration to the "Staging" and "Preflight" build configurations in all your dependent library projects. This configuration will also copy the "Release" build configuration to the "Beta" build configuration for all of the dependent libraries. The "Debug" and "Release" arrays are both optional.
If your Xcode project is not in the default directory, "ios", you can specify the directory using the optional projectDirectory
configuration. The above configuration specifies that the project is in an "iOS" directory instead (directories are case sensitive).
You can also pass in settings for each command. The only one currently supported is fix-script
.
The package is able to do three things:
As long as react-native-schemes-manager all
has run whenever you add react native modules, you should be good to go.
A good starting point for troubleshooting is:
rm -rf node_modules
yarn
or npm i
If you're still having trouble, post an issue so we can look into it.
You can run the three parts of this package on demand by running either:
react-native-schemes-manager fix-libraries
: Adds your build configurations to all library Xcode projects.--single-project
parameter to fix a single Xcode project. Example: --single-project=React
react-native-schemes-manager fix-script
: Swaps a schemes aware build script in instead of the stock react native one.react-native-schemes-manager hide-library-schemes
: Hides any build schemes that come from your node_modules folder xcodeproj files as you don't usually want to see them anyway.And of course you can run all 3 easily if you'd prefer:
react-native-schemes-manager all
: Runs all the scripts above.The best way to give yourself a manual trigger for this is add to your package.json
scripts section like so:
{
"name": "your-awesome-app",
"version": "1.0.0",
"scripts": {
"fix-xcode": "react-native-schemes-manager all",
"postinstall": "react-native-schemes-manager all"
}
}
You can then yarn run fix-xcode
or npm run fix-xcode
which will run the cleanup scripts on demand.
If you decide this isn't working out for you, we'd love to know why and to try to fix it. Please open an issue.
But if you still want to get rid of this and revert the changes to your project, you can follow these steps:
yarn remove react-native-schemes-manager
or npm remove react-native-schemes-manager --save-dev
export NODE_BINARY=node
../node_modules/react-native/scripts/react-native-xcode.sh
Then, you can revert the changes to the installed libraries by:
rm -rf node_modules
yarn
or npm i
You're back to where you started!
These are some great articles about related topics in case you're hungry for more:
Licensed under the MIT License, Copyright © 2017 Kevin Brown.
See LICENSE for more information.
This project builds on a lot of earlier work by clever folks all around the world. We'd like to thank Alek Hurst and Craig Edwards who contributed ideas and inspiration, without which this project wouldn't have been possible.
FAQs
Helps to manage React Native XCode projects that use multiple schemes to manage things like environment variables.
The npm package react-native-schemes-manager receives a total of 2,089 weekly downloads. As such, react-native-schemes-manager popularity was classified as popular.
We found that react-native-schemes-manager demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.