3

我不太确定要使用什么正确的术语,所以如果我把事情搞砸了,请提前原谅我。

我目前在 git 中为我在 Mac 应用商店中发布的应用维护一个代码库。由于各种原因,我现在也在考虑发布非 MAS 版本。

显然,MAS 和非 MAS 版本将共享 95% 的公共代码库。事实上,他们唯一不会共享的部分是收据检查(MAS 版本)和许可证密钥 + 自动更新(非 MAS 版本)。

这让我明白了我的问题的要点——大概“正确”的方法是在 git 中维护两个独立的分支?如何轻松确保两个分支保持同步,而不必担心在两个版本之间泄露收据检查和许可证密钥代码?xcode 项目管理呢?假设我向 MAS 项目添加了一个文件,有没有一种简单的方法可以让它显示在非 MAS 项目中?

如果需要任何澄清,请告诉我。

提前致谢。

4

2 回答 2

2

我不会使用不同的分支,您会希望 MAS 的 2.0 版和非 MAS 的 2.0 版尽可能地具有相同的功能。我将只有两个目标,并在 MAS 目标的调试和发布配置中定义 MAC_APP_STORE=1。95% 的代码将是两个目标的成员,但许可证和自动更新代码文件将仅是非 MAS 目标的成员。公共代码中会有一些位需要像这样有条件地编译:

#ifdef MAC_APP_STORE
    ...
#else
    ...
#endif
于 2013-05-07T07:02:22.363 回答
1

如果您可以将不同的文件隔离在一个子目录中,那么您可以考虑使用子模块(请参阅Pro Git 书籍章节

那样:

  • 您只需为包含 95% 通用代码的父 repo 维护一个分支
  • 您可以在子模块存储库中维护特定于给定版本的文件的分支。
于 2013-05-07T05:29:42.953 回答