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

标签 android git multiple-versions library-project

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

我现在想将该应用程序发布到另一个应用程序市场。由于只有少数文件会更改(Android 许可),因此我正在考虑归档此文件的最佳方法。

我认为,一种方法是 Android 库项目。 但是我是否可以使用 git 来归档类似的效果,以便拥有两个共享一个代码库且仅存在几个文件不同的存储库? 由于我目前对git不太熟悉,请准确解释一下我需要做什么或者需要注意的地方。

谢谢。

最佳答案

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

  • 大师
  • 专业版
  • amzn

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

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

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

在 merge 期间,我通常不会发生任何冲突,并且会保留原始修改。但如果没有,很容易解决冲突并使专业分支恢复无广告状态。

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

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

为了保持包名称的唯一性(我实际上不确定这是否是必需的),我首先将我的 Activity 移动到新包中,即 com.whatever.free.appname、com.whatever.pro。应用程序名称...

关于android - 维护多个市场的 Android 应用程序(在 Git 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9295257/

相关文章:

android - huawei App Signing 导出和上传 key 和证书

android - Qt Necessitas 错误 - 找不到 Ministro 服务

git - 为什么不推荐使用 git flow 功能 checkout ?我应该改用什么?

terminal - Bower:安装 2 个版本的 jQuery

python - 重新安装 python 2.7.12 和 python 3.5.2

javascript - 外部加载的同一版本 jquery 的两个不同变体

javascript - react native 如何实现后退按钮

android - 在运行时获取不同屏幕密度的可绘制对象

git - git push 被拒绝时如何修复错误

git - 如何知道受 git commit 影响的所有 Bazel 目标?