为React Native/Fastlane应用程序配置环境



我有一个React Native应用程序(iOS和Android),需要为两个客户端构建。我想在构建时替换应用程序的徽标和颜色。

我考虑过的一些选项:

  • 分支/分叉存储库。问题:维护两个版本需要做更多的工作
  • 将资产保留在构建时要提供的源树之外。问题:设置起来更难,尤其是CI(?)
  • 签入所有资产,并使用环境变量在它们之间切换。问题:当应用程序在设备上运行时,不知道如何设置环境变量。它也不可扩展,但目前还可以

如何参数化React Native应用程序,尤其是使用Fastlane部署的应用程序。。也许通过传递这样的参数?

一种可能的设置包括:

  1. react-native-config包添加到您的ReactNative项目中(https://github.com/luggit/react-native-config)
  2. 在ReactNative项目中设置.env.someEnv文件(上面的包使用这些文件)
  3. 根据所需环境设置图像路径等的变量
  4. 根据软件包自述执行所需的安装工作,包括在构建之前需要运行命令echo .env.client1 > /tmp/envfile。有几个选项包括:

    a。在package.json文件中设置一个包脚本,并在快速通道命令之前运行该命令,例如echo .env.client1 /tmp/envile && bundle exec fastlane ios release

    b。这有点棘手,但在Xcode项目中为不同的环境设置xcconfig文件,并在其中有一个名为ENVFILE的变量。然后通过gym中的xcconfig参数告诉fastlane使用正确的xcconfig文件。最后,使用命令echo $ENVFILE > /tmp/envfile在Xcode方案中设置预构建操作

抱歉没有时间写更详细的文章,如果你喜欢更多细节,请随时回复,我会尽我所能提供帮助。

相关内容

  • 没有找到相关文章