对不同版本的本机项目自定义包名称进行反应

时间:2019-06-19 00:11:40

标签: git react-native

我正在尝试使用不同的包名称来管理我的React Native应用程序项目(弹出CRNA),以便发布/测试不同的版本:

com.mydomain.internal
com.mydomain.alpha
com.mydomain.beta

理想情况下,我想在git master分支上开发和测试com.mydomain.internal应用程序包,并将更改推送到alpha分支(此分支应构建com.mydomain.alpha包),然后将更改推送到beta应用包所在的分支。

我想避免为每个发行版手动更改软件包名称,因为它涉及很多文件,并且很容易造成问题。我想知道是否有一种很好的方法可以帮助我维护/更新上述多个应用程序版本/版本。如果图标也可以更改,请也指出这一点,以便为不同的口味创建不同的图标。

(我正在考虑配置清单并从静态文件中读取包名称,但似乎不起作用)

谢谢!

2 个答案:

答案 0 :(得分:0)

考虑脚本可以使用以下命令确定已检出分支的名称:

branch=$(git rev-parse --symbolic --abbrev-ref HEAD)

这意味着您可以(在此处使用“ config”作为通用术语,将其替换为正确的文件以进行修改):

  • 仅版本模板文件config.tpl
  • 以分支命名的版本值文件:config.devconfig.master:由于它们是不同的,因此合并或切换分支时没有合并问题。

最后,您将(在.gitattributes declaration中注册 content filter driver

smudge (来自“ Customizing Git - Git Attributes”的图像,来自“ Pro Git book”的图像)

与模板文件(smudge关联的config.tpl脚本将通过在右侧{中查找值来生成(自动在git checkout上)实际的config文件。 {1}}值文件。
生成的实际config.<branch>文件仍然被config忽略。

在“ git smudge/clean filter between branches”中查看完整的示例。

答案 1 :(得分:0)

我为Android找到了一个很好的解决方案Build Varient。本文对如何设置进行了很好的解释:https://medium.com/@ywongcode/building-multiple-versions-of-a-react-native-app-4361252ddde5