4

我有一个 Android 应用程序,它是一个付费应用程序,我想制作一个免费版本。免费版的源代码将有 95% 相同。我正在使用git源代码控制,我最初的想法是创建一个free分支,master以便我可以轻松地将付费版本的更改合并到免费版本中。

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

其他选项包括:

  1. 为免费版本创建另一个存储库
  2. 保留所有内容master并创建免费和付费版本都使用的库代码
4

3 回答 3

2

我更愿意将代码放在一起,并在分支上使用条件编译和/或“付费”插件库。分支应该代表开发过程中源代码树的转移。不应使用分支来维护单独的代码库。

于 2012-08-21T21:03:25.827 回答
0

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

于 2012-08-21T21:31:44.137 回答
0

使用gradle 构建系统,您可以为您的应用程序创建不同的“风格”。

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 中引用,也不得在付费中引用。

于 2016-03-02T16:47:51.590 回答