Bring some 12 factor love to your mobile apps!

Overview

Config variables for React Native apps

Module to expose config variables to your javascript code in React Native, supporting iOS, Android and Windows.

Bring some 12 factor love to your mobile apps!

Basic Usage

Create a new file .env in the root of your React Native app:

API_URL=https://myapi.com
GOOGLE_MAPS_API_KEY=abcdefgh

Then access variables defined there from your app:

import Config from "react-native-config";

Config.API_URL; // 'https://myapi.com'
Config.GOOGLE_MAPS_API_KEY; // 'abcdefgh'

Keep in mind this module doesn't obfuscate or encrypt secrets for packaging, so do not store sensitive keys in .env. It's basically impossible to prevent users from reverse engineering mobile app secrets, so design your app (and APIs) with that in mind.

Setup

Install the package:

$ yarn add react-native-config

Link the library:

(Note: For React Native 0.60 or greater, autolinking is available)

(Note: For Windows, this module supports autolinking when used with [email protected] or later. For earlier versions you need to manually link the module.)

$ react-native link react-native-config

if cocoapods are used in the project then pod has to be installed as well:

(cd ios; pod install)
  • Manual Link (iOS)

    1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
    2. Go to node_modulesreact-native-config and add ReactNativeConfig.xcodeproj
    3. Expand the ReactNativeConfig.xcodeprojProducts folder
    4. In the project navigator, select your project. Add libReactNativeConfig.a to your project's Build PhasesLink Binary With Libraries
    5. And go the Build Settings tab. Make sure All is toggled on (instead of Basic)
    6. Look for Header Search Paths and add $(SRCROOT)/../node_modules/react-native-config/ios/** as non-recursive
  • Manual Link (Android)

    android/settings.gradle

    + include ':react-native-config'
    + project(':react-native-config').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-config/android')

    android/app/build.gradle

    dependencies {
    	implementation "com.facebook.react:react-native:+"  // From node_modules
    +	implementation project(':react-native-config')
    }

    MainApplication.java

    + import com.lugg.ReactNativeConfig.ReactNativeConfigPackage;
    
    @Override
    protected List<ReactPackage> getPackages() {
    	   return Arrays.asList(
           		new MainReactPackage()
    +      		new ReactNativeConfigPackage()
        );
    }
  • Manual Link (Windows)

    windows/myapp.sln

    Add the RNCConfig project to your solution.

    1. Open the solution in Visual Studio 2019
    2. Right-click Solution icon in Solution Explorer > Add > Existing Project
    • if using [email protected] or later select node_modules\react-native-config\windows\RNCConfig\RNCConfig.vcxproj
      • if using [email protected] select node_modules\react-native-config\windows\RNCConfig61\RNCConfig61.vcxproj

    windows/myapp/myapp.vcxproj

    Add a reference to RNCConfig to your main application project. From Visual Studio 2019:

    1. Right-click main application project > Add > Reference...
      Check RNCConfig from Solution Projects.

    pch.h

    Add #include "winrt/RNCConfig.h".

    app.cpp

    Add PackageProviders().Append(winrt::RNCConfig::ReactPackageProvider()); before InitializeComponent();.

Extra step for Android

You'll also need to manually apply a plugin to your app, from android/app/build.gradle:

// 2nd line, add a new apply:
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

Advanced Android Setup

In android/app/build.gradle, if you use applicationIdSuffix or applicationId that is different from the package name indicated in AndroidManifest.xml in <manifest package="..."> tag, for example, to support different build variants: Add this in android/app/build.gradle

defaultConfig {
    ...
    resValue "string", "build_config_package", "YOUR_PACKAGE_NAME_IN_ANDROIDMANIFEST_XML"
}

Native Usage

Android

Config variables set in .env are available to your Java classes via BuildConfig:

public HttpURLConnection getApiClient() {
    URL url = new URL(BuildConfig.API_URL);
    // ...
}

You can also read them from your Gradle configuration:

defaultConfig {
    applicationId project.env.get("APP_ID")
}

And use them to configure libraries in AndroidManifest.xml and others:

<meta-data
  android:name="com.google.android.geo.API_KEY"
  android:value="@string/GOOGLE_MAPS_API_KEY" />

All variables are strings, so you may need to cast them. For instance, in Gradle:

versionCode project.env.get("VERSION_CODE").toInteger()

Once again, remember variables stored in .env are published with your code, so DO NOT put anything sensitive there like your app signingConfigs.

iOS

Read variables declared in .env from your Obj-C classes like:

// import header
#import "ReactNativeConfig.h"

// then read individual keys like:
NSString *apiUrl = [ReactNativeConfig envFor:@"API_URL"];

// or just fetch the whole config
NSDictionary *config = [ReactNativeConfig env];

Windows

You can access variables declared in .env from C++ in your App project:

std::string api_key = ReactNativeConfig::API_KEY;

Similarly, you can access those values in other project by adding reference to the RNCConfig as described in the manual linking section.

Availability in Build settings and Info.plist

With one extra step environment values can be exposed to "Info.plist" and Build settings in the native project.

  1. click on the file tree and create new file of type XCConfig img img
  2. save it under ios folder as "Config.xcconfig" with the following content:
#include? "tmp.xcconfig"
  1. add the following to your ".gitignore":
# react-native-config codegen
ios/tmp.xcconfig

  1. go to project settings

  2. apply config to your configurations img

  3. Go to Edit scheme... -> Build -> Pre-actions, click + and select New Run Script Action. Paste below code which will generate "tmp.xcconfig" before each build exposing values to Build Settings and Info.plist. Make sure to select your target under Provide build settings from, so $SRCROOT environment variables is available to the script. (Note that this snippet has to be placed after "cp ... ${PROJECT_DIR}/../.env" if approach explained below is used).

    "${SRCROOT}/../node_modules/react-native-config/ios/ReactNativeConfig/BuildXCConfig.rb" "${SRCROOT}/.." "${SRCROOT}/tmp.xcconfig"
    

    img

  4. You can now access your env variables in the Info.plist, for example $(MY_ENV_VARIABLE). If you face issues accessing variables, please open a new issue and provide as much details as possible so above steps can be improved.

App Extensions

Add dependency to react-native-config.

target 'ShareExtension' do
  platform :ios, '9.0'

  pod 'react-native-config', :path => '../node_modules/react-native-config'

  # For extensions without React dependencies
  pod 'react-native-config/Extension', :path => '../node_modules/react-native-config'
end

Different environments

Save config for different environments in different files: .env.staging, .env.production, etc.

By default react-native-config will read from .env, but you can change it when building or releasing your app.

The simplest approach is to tell it what file to read with an environment variable, like:

$ ENVFILE=.env.staging react-native run-ios           # bash
$ SET ENVFILE=.env.staging && react-native run-ios    # windows
$ env:ENVFILE=".env.staging"; react-native run-ios    # powershell

This also works for run-android. Alternatively, there are platform-specific options below.

Android

The same environment variable can be used to assemble releases with a different config:

$ cd android && ENVFILE=.env.staging ./gradlew assembleRelease

Alternatively, you can define a map in build.gradle associating builds with env files. Do it before the apply from call, and use build cases in lowercase, like:

project.ext.envConfigFiles = [
    debug: ".env.development",
    release: ".env.production",
    anothercustombuild: ".env",
]

apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

Also note that besides requiring lowercase, the matching is done with buildFlavor.startsWith, so a build named debugProd could match the debug case, above.

iOS

The basic idea in iOS is to have one scheme per environment file, so you can easily alternate between them.

Start by creating a new scheme:

  • In the Xcode menu, go to Product > Scheme > Edit Scheme
  • Click Duplicate Scheme on the bottom
  • Give it a proper name on the top left. For instance: "Myapp (staging)"
  • Make sure the "Shared" checkbox is checked so the scheme is added to your version control system

Then edit the newly created scheme to make it use a different env file. From the same "manage scheme" window:

  • Expand the "Build" settings on left
  • Click "Pre-actions", and under the plus sign select "New Run Script Action"
  • Where it says "Type a script or drag a script file", type:
    cp "${PROJECT_DIR}/../.env.staging" "${PROJECT_DIR}/../.env"  # replace .env.staging for your file
    

Also ensure that "Provide build settings from", just above the script, has a value selected so that PROJECT_DIR is set.

Troubleshooting

Problems with Proguard

When Proguard is enabled (which it is by default for Android release builds), it can rename the BuildConfig Java class in the minification process and prevent React Native Config from referencing it. To avoid this, add an exception to android/app/proguard-rules.pro:

-keep class com.mypackage.BuildConfig { *; }

com.mypackage should match the package value in your app/src/main/AndroidManifest.xml file.

If using Dexguard, the shrinking phase will remove resources it thinks are unused. It is necessary to add an exception to preserve the build config package name.

-keepresources string/build_config_package

TypeError: _reactNativeConfig.default.getConstants is not a function

This error stems from .env file being malformed. Accepted formats are listed here https://regex101.com/r/cbm5Tp/1. Common causes are:

  • Missing the .env file entirely
  • Rogue space anywhere, example: in front of env variable: MY_ENV='foo'

Testing

Since react-native-config contains native code, it cannot be run in a node.js environment (Jest, Mocha). react-native-config-node provides a way to mock react-native-config for use in test runners - exactly as it is used in the actual app.

On Windows, the Example app supports running automatic tests by using WinAppDriver. In the Example app folder run:

yarn appium
yarn test:windows

Jest

For mocking the Config.FOO_BAR usage, create a mock at __mocks__/react-native-config.js:

// __mocks__/react-native-config.js
export default {
  FOO_BAR: 'baz',
};

Meta

Created by Pedro Belo at Lugg.

Comments
  • GeneratedInfoPlistDotEnv.h' file not found

    GeneratedInfoPlistDotEnv.h' file not found

    I created a new scheme with new Configuration build : releaseDev

    "react-native": "0.37.0", "react-native-config": "^0.3.0",

    When archiving I got this error:

    fatal error: '/Users/xxx/Library/Developer/Xcode/DerivedData/MyProject-xxx/Build/Intermediates/ArchiveIntermediates/myDevScheme/BuildProductsPath/ReleaseDev-iphoneos/GeneratedInfoPlistDotEnv.h' file not found

    Notes: it works with default configuration builds: release and debug.

    opened by Deno028 62
  • Repo ownership & maintenance status – migrating to react-native-community or a new owner

    Repo ownership & maintenance status – migrating to react-native-community or a new owner

    After going through tons of issues and trying every possible way to get this awful messy repo to work, I tried to work with this "https://github.com/luggit/react-native-config.git#89a602b" and the npm version, it just won't work, does anyone have have a stable fork that i can use ?

    i'm using react-native 0.60.5

    opened by wamry 61
  • 'GeneratedDotEnv.m' file not found

    'GeneratedDotEnv.m' file not found

    If I use this package with Cocoapods and follow the README's instructions, the iOS build fails every time. With C Preprocessor error "'GeneratedDotEnv.m' file not found".

    Without any pods, it works.

    Does anybody have any experience with this? I'm stuck for 2 days now because of this issue. I can't find any solution. I tried a lot of things by now.

    opened by DLevai94 61
  • Not working with RN 0.60.4

    Not working with RN 0.60.4

    The library is not working with RN 0.60.4, automatic linking is not working. If I try to link manually, it throws errors. On pod install it produces error 'GeneratedDotEnv.m' file not found.

    Any help? 🆘

    opened by ravimaurya-nickelfox 50
  • react-native-config example does not read variables from .env file or .env.prod

    react-native-config example does not read variables from .env file or .env.prod

    Windows 10 Mobile Device Nexus 6P react-native-cli: 2.0.1 react-native: 0.38.1 SET ENVFILE='.env.prod' && react-native run-android

    when i run above line on example application its not reading anything from .env file.

    opened by nomaannomii 47
  • Gradle 4.2.0 (distUrl: 6.7.1) fails with 'buildConfigFields' is final error

    Gradle 4.2.0 (distUrl: 6.7.1) fails with 'buildConfigFields' is final error

    Hi,

    Latest gradle v4.2.0 has issues with react-native-config:

    FAILURE: Build failed with an exception.
    --
      |  
      | * Where:
      | Script '/usr/src/app/node_modules/react-native-config/android/dotenv.gradle' line: 90
      |  
      | * What went wrong:
      | Execution failed for task ':app:generateIntegrationBuildConfig'.
      | > The value for property 'buildConfigFields' is final and cannot be changed any further.
    
    opened by tommeier 38
  • Availability in Build settings and Info.plist problem

    Availability in Build settings and Info.plist problem

    where we must to add below code in step 6 of Availability in Build settings and Info.plist section:

    "${SRCROOT}/../node_modules/react-native-config/ios/ReactNativeConfig/BuildXCConfig.rb" "${SRCROOT}/.." "${SRCROOT}/tmp.xcconfig"

    opened by majidln 33
  • Android. Got compiled but Config is undefined

    Android. Got compiled but Config is undefined

    I got it installed and checked everything. My MainApplication.java is like this.

    protected List<ReactPackage> getPackages() {
    
          return Arrays.<ReactPackage>asList(
              new MainReactPackage(),
              new ReactNativeConfigPackage(),
    ...
    

    The app is compiled, but Config is undefined import Config from 'react-native-config'

    opened by ruskid 21
  • Does the 0.12 version support autolink?

    Does the 0.12 version support autolink?

    I'm wondering if 0.12 version support autolink cause:

    First

    In the readme there is:

    Link the library:
    
    $ react-native link react-native-config
    

    But autolink should not need a link command, right?

    Secondly

    With these versions:

    "react-native": "0.61.5",
    "react-native-config": "^0.12.0",
    

    I have an error on iOS:

    built-in>:1:10: fatal error: '/Users/{USERNAME}/Library/Developer/Xcode/DerivedData/XXX-fdoedqtrcjsbppgvncqzfwelgcim/Build/Products/GeneratedInfoPlistDotEnv.h' file not found
    #include "/Users/{USERNAME}/Library/Developer/Xcode/DerivedData/XXX-fdoedqtrcjsbppgvncqzfwelgcim/Build/Products/GeneratedInfoPlistDotEnv.h"
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.
    Command Preprocess failed with a nonzero exit code
    

    See https://github.com/luggit/react-native-config/issues/187#issuecomment-554087367

    opened by MaxInMoon 17
  • Missing .env file in Android Studio

    Missing .env file in Android Studio

    This has been working for some time, but suddenly it has stopped and i'm not sure what's going on. We have several build variants:

    /**
     * Environment configuration
     */
    project.ext.envConfigFiles = [
            debug: ".env.dev",
            staging: ".env.production",
            release: ".env.production",
    ]
    
    apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
    

    if we do react-native run-android

    the project builds fine - it fetched the .env.dev file and everything is fine.

    However if I start Android Studio - it immediately complains that a .env file is missing. Which is correct - we don't have this file. Since sync is not able to run because of that error, we can't do anything.

    If I do add a .env file, then sync runs fine. And after that I see the Build Variants and I can change them. Then I see that the correct dotenv file is being used - either .env.dev or .env.production

    I dug around the dotenv.gradle file and I see that when we try to sync our project we end up here

    https://github.com/luggit/react-native-config/blob/master/android/dotenv.gradle#L33

    but the flavor is empty. So our configuration doesn't match the flavor and we end up with the default .env file

    if I add project.ext.envConfigFiles = [ "":".env.dev", debug: ".env.dev", staging: ".env.production", release: ".env.production", ]

    then android studio picks up the .env.dev file as default, but am I supposed to do this? Or is there something else going on? The docs don't mention anything about that.

    opened by compojoom 15
  • Update README on how to install with CocoaPods

    Update README on how to install with CocoaPods

    After spending some time figuring out how this package can work in my project while using CocoaPods, I've found a working solution from the comment of the issue #125

    This PR updates the guide on how to install this package if you are using CocoaPods(for iOS). This solves the issue faced by CocoaPods user when they try to run the app after installing this package, like issue #125.

    Thanks to @clarsen for the comment on the issue.

    opened by muhozi 14
  • Config codegen error on xcode 14 - Exit status: 65

    Config codegen error on xcode 14 - Exit status: 65

    Hello everyone, I can no longer compile the application, since the update of Xcode14, If I downgrade to version 13 everything works perfectly again Are other people having this problem?

    [10:40:38]: ▸     '[CP-User] Config codegen' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'react-native-config' from project 'Pods')
    [10:40:38]: ▸ ** ARCHIVE FAILED **
    [10:40:38]: Exit status: 65
    
    Xcode: 14.0
    react-native: v0.69.4
    react-native-config: 1.4.6
    fastlane: 2.192.0
    
    +---------------+-------------------------+
    |            Build environment            |
    +---------------+-------------------------+
    | xcode_path    | /Applications/Xcode.app |
    | gym_version   | 2.192.0                 |
    | export_method | app-store               |
    | sdk           | iPhoneOS16.0.sdk        |
    +---------------+-------------------------+
    
    System:
        OS: macOS 12.6
        CPU: (8) arm64 Apple M1
        Memory: 121.98 MB / 16.00 GB
        Shell: 5.8.1 - /bin/zsh
      Binaries:
        Node: 16.17.0 - ~/.nvm/versions/node/v16.17.0/bin/node
        Yarn: 1.18.0 - /opt/homebrew/bin/yarn
        npm: 8.15.0 - ~/.nvm/versions/node/v16.17.0/bin/npm
        Watchman: 2022.08.15.00 - /opt/homebrew/bin/watchman
      Managers:
        CocoaPods: 1.11.3 - /Users/kevinmartin/.rvm/gems/ruby-3.0.0/bin/pod
      SDKs:
        iOS SDK:
          Platforms: DriverKit 21.4, iOS 16.0, macOS 12.3, tvOS 16.0, watchOS 9.0
        Android SDK: Not Found
      IDEs:
        Android Studio: 2021.2 AI-212.5712.43.2112.8815526
        Xcode: 14.0/14A309 - /usr/bin/xcodebuild
    
    opened by kevinmartin-jvs 1
  • Build input file cannot be found with Xcode 14

    Build input file cannot be found with Xcode 14

    I was able to build different environments using Xcode 13, but after updating to Xcode 14, I got this error: error build: Build input file cannot be found: '/Users/user/Library/Developer/Xcode/DerivedData/.../Build/Products/GeneratedInfoPlistDotEnv.h'. Did you forget to declare this file as an output of a script phase or custom build rule which produces it?

    Any ideas? Thanks in advance!!

    Xcode version: 14.0
    react-native: 0.67.4
    react-native-config: 1.4.6
    
    opened by CuongNguyenV 12
  • Bump jszip from 3.5.0 to 3.10.1 in /Example

    Bump jszip from 3.5.0 to 3.10.1 in /Example

    Bumps jszip from 3.5.0 to 3.10.1.

    Changelog

    Sourced from jszip's changelog.

    v3.10.1 2022-08-02

    • Add sponsorship files.
      • If you appreciate the time spent maintaining JSZip then I would really appreciate your sponsorship.
    • Consolidate metadata types and expose OnUpdateCallback #851 and #852
    • use const instead var in example from README.markdown #828
    • Switch manual download link to HTTPS #839

    Internals:

    • Replace jshint with eslint #842
    • Add performance tests #834

    v3.10.0 2022-05-20

    • Change setimmediate dependency to more efficient one. Fixes Stuk/jszip#617 (see #829)
    • Update types of currentFile metadata to include null (see #826)

    v3.9.1 2022-04-06

    • Fix recursive definition of InputFileFormat introduced in 3.9.0.

    v3.9.0 2022-04-04

    • Update types JSZip#loadAsync to accept a promise for data, and remove arguments from new JSZip() (see #752)
    • Update types for compressionOptions to JSZipFileOptions and JSZipGeneratorOptions (see #722)
    • Add types for generateInternalStream (see #774)

    v3.8.0 2022-03-30

    • Santize filenames when files are loaded with loadAsync, to avoid "zip slip" attacks. The original filename is available on each zip entry as unsafeOriginalName. See the documentation. Many thanks to McCaulay Hudson for reporting.

    v3.7.1 2021-08-05

    • Fix build of dist files.
      • Note: this version ensures the changes from 3.7.0 are actually included in the dist files. Thanks to Evan W for reporting.

    v3.7.0 2021-07-23

    • Fix: Use a null prototype object for this.files (see #766)
      • This change might break existing code if it uses prototype methods on the .files property of a zip object, for example zip.files.toString(). This approach is taken to prevent files in the zip overriding object methods that would exist on a normal object.

    v3.6.0 2021-02-09

    • Fix: redirect main to dist on browsers (see #742)
    • Fix duplicate require DataLengthProbe, utils (see #734)
    • Fix small error in read_zip.md (see #703)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Error: cannot find symbol (possible compatibility issue with React Native 'new architecture')

    Error: cannot find symbol (possible compatibility issue with React Native 'new architecture')

    I've got this weird error that I couldn't find in any other thread here or on Google. Perhaps it has something to do with react Native's new architecture.

    Whenever I try to run npm run android, build fails with this error:

    Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081
    /myapp/android/app/src/main/java/ch/myapp/staging/newarchitecture/MainApplicationReactNativeHost.java:111: error: cannot find symbol
                        ReactNativeConfig.DEFAULT_CONFIG,
                                         ^
      symbol:   variable DEFAULT_CONFIG
      location: interface ReactNativeConfig
    

    I've put import com.lugg.ReactNativeConfig.ReactNativeConfigPackage; into my MainApplicationReactNativeHost.java file, but it didn't change anything. Anybody have any ideas or can help me with troubleshooting?

    opened by princefishthrower 3
  • automatically loading .env.production - ignoring other .env files (v1.4.6)

    automatically loading .env.production - ignoring other .env files (v1.4.6)

    I have detected a possible issue which at least has cost me a few hours of scratching my head.

    If one of the .env files is named .env.production, it will automatically be loaded or override the current .env file

    i.e.:

    .env .env.staging .env.production .env.dev

    In theory, the app should automatically load .env if no file is specified, but if we have a file named .env.production, this file will ALWAYS be loaded and will override whatever is in .env

    So when I was trying to load the app with a different .env file, like .env.dev or by replacing .env's contents with .env.dev's contents, the app would still load whatever was in .env.production, effectively preventing me from switching between .env files.

    After a few attempts and playing around with clearing caches and build files, etc, I decided to rename the file .env.production to .env.prod.

    Once I have done this, it stopped ignoring the .env file and I could now swap between environments.

    Is there anything in the code that would cause this?

    opened by nimpx-emanuel 4
Releases(v1.4.7)
  • v1.4.7(Jul 13, 2022)

  • v1.4.6(Jun 10, 2022)

  • v1.4.5(Oct 20, 2021)

  • v1.4.4(Aug 27, 2021)

  • v1.4.3(Jul 21, 2021)

    • Change xml style to mention package name (#575)
    • Add an instruction to configure using Podfile (#547)
    • make react-native-windows peer dependency optional (#585)
    Source code(tar.gz)
    Source code(zip)
  • v1.4.2(Jan 19, 2021)

  • v1.4.1(Nov 10, 2020)

    Release Notes

    • Fix read dot env syntax error
    • Add more details on how to configure step to generate tmp.xcconfig #503
    • Fail iOS builds on malformed .env files, add troubleshooting instruct… #516
    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Oct 27, 2020)

    Release Notes

    • Add important caveat for android gradle env config #505
    • Bump npm-user-validate from 1.0.0 to 1.0.1 #510
    • Support newest Android Gradle Plugin #512
    • Improve Windows support #508
    • Escape cp for PROJECT_DIR with spaces #504
    • Fix React dependency to enable XCode 12 build #500
    • Change the trigger for the Windows CI #494
    • Add Windows support #492
    • Bump node-fetch from 2.6.0 to 2.6.1 #491
    • update readme note that autolinking is available #488
    • Add point about accessing variables in info.plist #480
    • Fix flavor matching in dotenv.gradle #381
    • Update README.md, correct iOS build pre-action #475
    Source code(tar.gz)
    Source code(zip)
  • v1.3.3(Aug 4, 2020)

  • v1.3.2(Jul 25, 2020)

  • v1.3.1(Jul 13, 2020)

  • v1.3.0(Jul 12, 2020)

    Release Notes

    • Update readme.md - different env in ios #281
    • add support for android buildTypes or productFlavors name with numeric #334
    • Fix named import #466
    • Bump npm from 6.14.2 to 6.14.6 #468
    • Added rudimentary system environment variable support #284
    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Jun 6, 2020)

  • v1.2.0(May 26, 2020)

    Release Notes

    • Fix incorrect default env path on iOS #453
    • Fixed regenerating config on each build #458
    • [ios] App extensions support #456
    • create GeneratedInfoPlistDotEnv.h for Info.plist preprocessing #457
    • using root properties for versions (latest rn) #305
    • Update example project to react-native 0.62.2 #455
    • Documentation updates for installation instructions #303
    • Set iOS deployment target to 9.0 #384
    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(May 19, 2020)

    Release Notes

    • Update docs to include react-native-config-node #369
    • Update docs to include Dexguard keep resource rule #447
    • Support spaces in iOS .env file #393
    • Add ouput file to podspec #454
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(May 19, 2020)

    Release Notes

    • fix podspec for pod install from git #385
    • Update react-native to 0.60.5 #383
    • Update index.d.ts #347
    • Fix error in README troubleshooting section #397
    • always set default value instead of .env #373
    • change google() before jcenter() #324
    • Resolving '//' in xcconfig values so that urls can be used #374
    • Remove delete of envfile #404
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Dec 7, 2016)

  • v0.1.0(Sep 14, 2016)

    • Expose the config vars for iOS classes too
    • Do not fail the build if .env doesn't exist
    • Support for commenting out lines in iOS too
    • Added instructions to workaround issues with Proguard
    Source code(tar.gz)
    Source code(zip)
Owner
Lugg
Moving & Delivery When You Want It
Lugg
Mobile app to help you remember to take care of your plants easily. :seedling:

?? Projeto Aplicativo para lhe ajudar a lembrar de cuidar de suas plantas de forma fácil de acordo com cada tipo de plantinha. ?? Licença Esse projeto

João Manoel Neto 13 Aug 23, 2022
Hakeemi is a mobile app for clinics to handle patients' appointments with doctors.

Hakeemi - Doctor appointment app Hakeemi is a demo project based on free Figma design with the purpose of a doctor appointment reservation app showcas

Nadir Alfakesh 31 Aug 24, 2022
Daily Quiz Mobile app

Daily Quiz This is simple react-native application for playing quiz daily. A spring-boot backend for this application here. This app can be used in of

akasky 5 Feb 11, 2022
🚀 Aplicação mobile com React Native produzida durante o Next Level Week #05

✨ Tecnologias Esse projeto foi desenvolvido com as seguintes tecnologias: React Native Typescript Expo ?? Projeto Aplicativo para lhe ajudar a lembrar

Danilo Alexandrino 11 May 28, 2022
Social share, sending simple data to other apps.

react-native-share React Native Share, a simple tool for share message and file to other apps. Sponsors If you use this library on your commercial/per

react-native-share 3.2k Sep 20, 2022
Simple, best and easy to use radio buttons for react native apps.

React Native Radio Buttons Group Simple, best and easy to use radio buttons for react native apps. Getting Started Just a sneak peek (lots more can be

Thakur Ballary 148 Sep 20, 2022
PushyPush - How to Code Push Notifications for React Native Apps

How to Code Push Notifications for React Native Apps Please step through the fol

Nick 5 Apr 27, 2022
Your best friend when working with the latest and greatest Contacts Framework in iOS 9+ in React Native.

Your best friend when working with the latest and greatest Contacts Framework in iOS 9+ and combining that with Android 6 (SDK 23)+ support Platform C

Joshua Pinter 155 Sep 19, 2022
A React Native Module to capture your home and recent app button on Android

react-native-home-pressed Getting started $ npm install react-native-home-pressed --save Automatic installation (no further setup required) $ react-na

Evan Gillogley 22 Jan 1, 2022
Use ESBuild to make your React Native code bundle faster.

metro-minify-esbuild Use ESBuild to make your React Native code bundle faster. Metro Bundler (used for React Native, Instagram, Internal Facebook) all

Evan Bacon 109 Sep 18, 2022
An opinionated template to bootstrap your next React Native app with all the time-wasting packages you need to have.

?? React Native Template TypeScript with Goodies An opinionated template to bootstrap your next React Native app with all the time-wasting packages yo

Gabriel Moncea 120 Sep 16, 2022
It's hard to find your next online race. So I created a calendar of races from multiple leagues so people could just find new places to race on their favourite sims.

A listing tool that allows me to add races into a Firebase database, and then lets users filter by their favourite simracing game. This project was bo

Alex Lillo 0 Oct 11, 2021
Understand and reduce your carbon footprint 🌱 iOS & Android.

?? NMF.earth app Understand and reduce your carbon footprint Repository for the NMF.earth React Native application, built with Expo, Redux Toolkit and

NMF.earth 339 Sep 27, 2022
Aline is a mobile application available on iOS and Android. Made with love and React-native.

Aline ! Aline est une application mobile Android et iOS qui vous aide dans la gestion de vos produits consignés : Trouvez les magasins qui proposent d

Laetitia Langlois 4 Feb 1, 2022
Bring React Native App to foreground from Headless JS

React Native Invoke App Headless JS is a way to run background tasks in a React Native app. Sometimes we may want to open the app from background task

Ganapathy S 53 Jul 27, 2022
Jagrook is a QR code scanning Web app which aims to bring transparency to consumer’s shopping cart

JAGROOK Purchase Smart, Save Time, Save the World Jagrook is a QR code scanning Web app which aims to bring transparency to consumer’s shopping cart.

null 5 Sep 22, 2022
🍑 Responsive Mobile-sized Wrapper for React - Easily prototype your mobile-sized web apps with desktop support

react-mobile-sized-view Featured on reactjsexample.com(thx editor ?? ) ?? Responsive Mobile-sized Wrapper for React ?? Examples ⚠️ Warning: The follow

Junho Yeo 23 Jun 8, 2022
Mobile app development framework and SDK using HTML5 and JavaScript. Create beautiful and performant cross-platform mobile apps. Based on Web Components, and provides bindings for Angular 1, 2, React and Vue.js.

Onsen UI - Cross-Platform Hybrid App and PWA Framework Onsen UI is an open source framework that makes it easy to create native-feeling Progressive We

null 8.6k Sep 29, 2022
React + Canvas = Love. JavaScript library for drawing complex canvas graphics using React.

React Konva React Konva is a JavaScript library for drawing complex canvas graphics using React. It provides declarative and reactive bindings to the

konva 4.8k Sep 25, 2022
One more Twitter clone, but this one is featureful yet concise and fast, built with MERN stack, with love ❤.

React front-end for tclone Try it here back-end repo here looks like twitter, but not ?? It is my own take on building Twitter clone, I have tried to

muzamil 129 Sep 24, 2022