维护多个市场的Android应用程序(在Git上)

时间:2012-02-15 14:32:57

标签: android git multiple-versions library-project

我将我的应用程序作为免费和专业版发布到Android市场。所有源代码都存储在一个git存储库中。

我现在想将该应用程序发布到另一个应用程序市场。由于只有少数文件会发生变化(Android许可),我正在考虑将这种文件存档的最佳方式。

我认为,一种方法是Android Library Projects。 但是我可以使用git归档类似的效果,因此我有两个共享一个代码库的存储库,并且只有几个文件不同吗? 由于我目前不熟悉git,请准确说明我需要做什么或需要注意的地方。

感谢。

2 个答案:

答案 0 :(得分:4)

对应用程序的所有变体使用一个git repo是我如何存储我的。例如,我的一个应用程序有免费版和专业版,并且可以在Android市场和亚马逊应用商店中使用。在git中,我有3个分支:

  • AMZN

Master是免费版本,pro是Android市场上的付费版本,amzn是亚马逊应用商店的免费版本。

我在master中完成了所有功能更改。一旦我准备好发布,我构建并测试免费版本,然后用版本号标记master。然后我切换到专业版,并运行一个git merge master来引入所有新的更改。

由于pro是付费版本,当我第一次从master分支时,我注释掉了与广告相关的代码(因为它只有几行,我认为不需要任何重构), 并更改了任何字符串以引用“Some App Pro”而不仅仅是“Some App”。

在合并期间,我通常没有任何冲突,并保持原始修改。但如果没有,那么很容易解决冲突并让专业分支恢复为免费广告。

同样对于amzn分支,我最初删除了对Google市场的任何引用,并在我准备好发布时从master进行合并。

然后对于pro和amzn,我可以构建测试和标记。

为了保持包名称的唯一性(我实际上不确定是否要求),我首先将我的活动转移到新包中,即com.whatever.free.appname,com.whatever.pro。 APPNAME ...

答案 1 :(得分:0)

为新版本的应用程序设置新分支,执行不同的更改。然后继续处理master分支并在释放新分支之前重新绑定新分支。