我想我最好解释一下我的情况:
我正在开发一些软件,我正处于将我的项目分成两个功能不同的分支的阶段。碰巧这个应用程序是一个Android应用程序,我将在Market上进行部署,其约束条件是每个应用程序必须具有唯一的包标识符(明智的,不是?)。
我目前的做法是克隆原始项目的git repo,但这会导致包名称出现问题。我希望系统足够健壮,以便一个分支上的错误修复/新功能将合并到另一个分支,但只有当我想要它时。
有人有任何建议吗?
答案 0 :(得分:3)
我自己处理具有相同代码库的付费应用和试用版本的确切情况。我正在使用SVN,但任何支持分支的版本控制软件都可以使用。
我从主干创建了试用版的分支。
然后我修改了试用版的AndroidManifest.xml以更改包名,最后添加.trial。然后我还必须更新所有活动java文件以引用正确的R类。
我的付费应用套餐是com.hewittsoft.baby
我的试用版应用程序包是com.hewittsoft.baby.trial
在我的试验活动I分支中,我这样做
import com.hewittsoft.baby.trial.R;
这会导致对R.id.textField(或其他)的任何引用都起作用。
在我完成这些步骤之后,我可以在主分支上进行开发,然后将所有更改合并到试用版中,而不会有太多痛苦。
答案 1 :(得分:2)
如果唯一的问题是打包和发布管理问题,您可以在一个Git仓库中从历史记录周期中隔离这些步骤(重命名包,并在目标环境中对其进行测试)。
所以你可以继续,分开你的开发,每个分支一个功能,保持两个相同的包名(为了轻松地将修复从一个到另一个合并)。
但是,要测试和部署这两个版本中的一个,您可以使用一个脚本来重命名包,重新编译,打包(jar)并在目标测试环境中部署结果。
答案 2 :(得分:0)