4 votes

Comment passer des variables d'environnement à Android build dans le contexte react native ?

Mon code react native utilise des variables d'environnement pour spécifier l'URL de l'API qu'il frappe, de sorte que je peux faire quelque chose comme ça dans le code react-native js : const endpoint = process.env['API_URL']

Lorsque l'application est exécutée sur l'ordinateur, il est facile de passer la variable d'environnement lors du démarrage du bundler : API_URL='http://myapiurl.com' react-native start

Cependant, lorsque je génère mon apk de version, l'API_URL n'est pas définie.

Où dois-je configurer cela dans le build gradle (ou ailleurs) pour que l'API_URL soit correctement définie pour l'apk release générée ?

6voto

Niels Ladekarl Points 260

Une façon rapide de le faire fonctionner :

Assurez-vous que vous passez la variable d'environnement à la commande gradle build API_URL='myapiurl.com' ./gradlew assembleRelease

Une autre approche plus durable :

Je vous recommande de vous pencher sur ce projet :

https://github.com/luggit/react-native-config

Il vous permet de spécifier un fichier .env pour importer des variables dans votre code.

Vous pouvez même spécifier différents environnements en nommant les fichiers

.env.{environment}

Par exemple

.env.development
.env.production

Il vous permet également de spécifier l'environnement à utiliser lors de l'intégration de votre application.

Voici un exemple pour Android :

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

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

Ces exemples sont tirés du fichier readme du projet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X