我应该为我的Android应用程序的免费版本创建一个分支吗?

时间:2012-08-21 21:00:31

标签: android git version-control

我有一个Android应用程序,这是一个付费应用程序,我想制作一个免费版本。对于免费版本,源代码将是95%相同。我使用git进行源代码管理,我最初的想法是在free之外创建一个master分支,这样我就可以轻松地将付费版本中的更改合并到免费版本中。

这是正确的策略,请记住free分支中的某些更改永远不会合并回master吗?

其他选项包括:

  1. 为免费版本创建另一个回购
  2. 将所有内容保存在master中并创建免费版和付费版都使用的库代码

3 个答案:

答案 0 :(得分:2)

我希望将代码保持在一起,并在分支上使用条件编译和/或“付费”插件库。在开发期间,分支应该表示源树的转移。分支不应该用于维护单独的代码库。

答案 1 :(得分:0)

您可以创建付费主人和免费主人。使用git flow技术管理新功能和错误修复。

答案 2 :(得分:0)

使用gradle build system,您可以为您的应用创建不同的“风味”。

android { ... defaultConfig { ... } signingConfigs { ... } buildTypes { ... } productFlavors { paid { applicationId "donturner.app.paid" versionName "1.0-paid" } free { applicationId "donturner.app.free" versionName "1.0-free" } } }

然后,您可以为这些构建版本创建其他源文件夹,这些文件夹可用于提供不同的实现。例如。 app/src/free/java/ClassWithDifferences.java将提供“免费”实施app/src/paid/java/ClassWithDifferences.java

注意:app/src/main/中的代码在所有风格之间共享;所以一定不能app/src/main/java/ClassWithDifferences.java。并确保正确使用这些口味,例如只存在于自由味道中的类不得在main中引用,也不得在pay中引用。