web-dev-qa-db-fra.com

React Variables d'environnement Native Expo

Je suis donc satisfait du concept de variables d'environnement comme expliqué dans cet article et d'autres https://www.freecodecamp.org/news/how-to-gracefully-use-environment-variables-in-a- react-native-app /

Super, j'ai mon SOMETHING = "quelque chose" stocké donc je peux juste utiliser env.SOMETHING ou autre

La partie sur laquelle je suis un peu perdu est l'endroit où vous conservez les variables en direct ?

Je préfère ne pas faire une solution comme celle-ci car il semble que vous gardiez toujours vos clés assez publiques et que vous choisissez simplement en fonction de l'environnement avec les instructions if

Gérer l'environnement avec expo react native

Par exemple, avec un déploiement Express App que nous avons, nous spécifions

let endPointURL = env.endPointURL

puis nous gardons un versoin de cette variable localement et lorsqu'elle se trouve avec AWS, elle est remplacée par les serveurs AWS comme expliqué ici

Je me demandais simplement si quelque chose comme ça existe pour Android et les builds iOS (sur les magasins respectifs) ou via Expo?

Merci à tous

3
Ash Hogarth

Une approche plus simple serait d'exporter l'objet env au lieu de la fonction:

import Constants from 'expo-constants';
import { Platform } from "react-native";

const localhost =
 Platform.OS === "ios" ? "localhost:8080" : "10.0.2.2:8080";


const ENV = {
    dev: {
      apiUrl: localhost,
      amplitudeApiKey: null,
    },
    staging: {
      apiUrl: "[your.staging.api.here]",
      amplitudeApiKey: "[Enter your key here]",
      // Add other keys you want here
    },
    prod: {
      apiUrl: "[your.production.api.here]",
      amplitudeApiKey: "[Enter your key here]",
      // Add other keys you want here
    }
};

const getEnvVars = (env = Constants.manifest.releaseChannel) => {
  if (env === null || env === undefined || env === "" || env.indexOf("dev") !== -1) return ENV.dev;
  if (env.indexOf("staging") !== -1) return ENV.staging;
  if (env.indexOf("prod") !== -1) return ENV.prod;
}

const selectedENV = getEnvVars();

export default selectedENV;
// Import
import env from '..xxx/utility/env';
1
Arbaaz Dossani