Configurar el entorno para la aplicación React Native / Fastlane

Tengo una aplicación React Native (iOS y Android) que necesito comstackr para dos clientes. Quiero replace el logotipo y los colors de la aplicación en time de compilation.

Algunas opciones que he considerado:

  • Rama / tenedor el repository. Problema: más trabajo para mantener dos versiones.
  • Mantenga los activos fuera del tree fuente para proporcionarlos en time de compilation. Problema: más difícil de configurar, especialmente con CI (?)
  • Verifique todos los activos y cambie entre ellos con una variable de entorno. Problema: no sé cómo configurar la variable de entorno cuando la aplicación se ejecuta en el dispositivo. Además, no es escalable, pero por ahora está bien.

¿Cómo puedo parametrizar una aplicación React Native, particularmente una implementada con Fastlane ? .. tal vez al pasar parameters como este ?

Una posible configuration incluye:

  1. Agregue el package react-native-config a su proyecto ReactNative ( https://github.com/luggit/react-native-config )
  2. Configure los files .env.someEnv en su proyecto ReactNative (el package anterior los usa)
  3. Configure sus variables para routes de imágenes, etc. en function del entorno deseado
  4. Realice la configuration requerida de acuerdo con el file Léame, incluida la necesidad de ejecutar el command echo .env.client1 > /tmp/envfile antes de la compilation. Hay algunas opciones para esto, que incluyen:

    a. configure una secuencia de commands de package en su file package.json y ejecute el command antes de su command de línea rápida, por ejemplo, echo .env.client1 /tmp/envile && bundle exec fastlane ios release

    segundo. Un poco más complicado pero configura files xcconfig para tus diferentes entornos en tu proyecto Xcode y tiene una variable llamada ENVFILE. Luego dile a fastlane que use el file xcconfig correcto a través del xcconfig en el gym . Finalmente configure una acción previa a la construcción en su esquema Xcode con el command echo $ENVFILE > /tmp/envfile

Las disculpas no tienen time para escribir más detalladamente, no dude en responder si desea más detalles y ayudaré donde pueda.