如何为不同的客户复制Xcode项目?

时间:2017-02-05 23:28:14

标签: xcode

我对Swift和Xcode很新。我有一个应用程序将交付给多个客户端。该应用程序本质上是相同的,只更改名称,图标,颜色(显然捆绑,测试和部署的证书等),但100%的源代码是相同的。对此最好的方法是什么?在独特的工作区中拥有不同的项目?我应该在哪里包含每个应用程序的细节。

我也尝试过分拣整个git源代码树(工作区和项目)并更改细节,但是如果我在主项目中更改某些内容(例如错误修复),当我尝试合并到子项目时,我得到了冲突,例如在Info.plist文件中,因为它们有一些不同的值。

2 个答案:

答案 0 :(得分:1)

您可以尝试为每个客户端使用分支,或者您建议为每个客户端分叉代码。然后,您可以在分支或分叉代码中使用info.client.plist,并使用构建事件将其与构建时的info.plist合并。在您的主分支中,您可以拥有info.master.plist。然后只提交这些plist文件并忽略info.plist

您还需要制定合并策略,以便检查正在合并的内容,您可能会遇到clientA分支中的某些代码或功能特定于该客户端的情况。所以不应该合并,或者反过来在master中实现一些不应该合并到特定客户端的东西。

有许多选项可以实现您的要求,并且没有应用程序的细节以及如何为每个客户端实现功能,很难就最佳使用方法给出明确的答案。上面的方法只是解决这个问题的一种方法,HTH。

答案 1 :(得分:0)

这听起来很像白标产品(相同的源代码和行为,但外观不同)。

我过去常常使用多个目标来制作产品。它将避免代码重复。您可以更改项目中每个项目目标的包,名称和其他配置 - >一般

!您还可以为每个目标定义一组图像,颜色,图标甚至不同的代码。只需在“工具”面板上设置目标会员

即可

但不要忘记选择常见源代码文件和资源的所有目标。

enter image description here