react-nativeenvironment-variablesvisual-studio-app-centerreact-native-config

Use .env variables to set up appcenter on a react-native app


I started using MS appcenter in my bare react-native app, and during the set up they ask me to add two new files to the project:

  1. For IOS: AppCenter-Config.plist with
    <dict>
    <key>AppSecret</key>
    <string><MY_SECRET_KEY></string>
    </dict>
  1. And for Android I need to add a JSON file with the key:
 {
    "app_secret": "<MY_SECRET_KEY>"
 }

I'm already using a package in my app to handle .env files: https://github.com/luggit/react-native-config

Is there any way to use this package or another one, in order to get the APP_SECRET for the appcenter config files from a ENV variable?

I just don't want to keep these keys under version control.


Solution

  • Appcenter allows us to use build scripts, you can see more details here: https://learn.microsoft.com/en-us/appcenter/build/custom/scripts

    The workaround I found to fix this was using a post-clone script. You need to create a bash script on the root folder of your app that will write the .env file using the environment variables.

    First, create a new file called appcenter-post-clone.sh.

    And after you can write your .env file with something like this:

    #!/usr/bin/env bash
    
    echo "Creating .env file"
    cat > ./.env <<EOL
    API_URL=${API_URL}
    API_KEY=${API_KEY}
    EOL