2016-08-18 76 views
4

我有几个单独的应用程序具有绝对相同的逻辑和功能,但具有不同的图标和一些设计元素。问题是,当对逻辑和功能进行一些更改时 - 我需要手动将此功能添加到所有应用程序,之后 - 我需要重新提交每个应用程序。构建具有相同内核的多个应用程序

也许有一些方法来分离所有的逻辑,所以我需要改变它只在一个地方,我所有的应用程序会得到它?

+0

您的项目如何设置?或者你有不同的项目? – Wain

+0

如果您的应用中有后端。你可以通过在你的ios应用程序端编写一些包装来从你的服务器端控制输入系统。实际上在服务器端需要更多的工作。 –

+0

现在有不同的项目具有相同的服务器API。 – moonvader

回答

0

一个解决方案(虽然不一定是最好的)是有一个单一的代码库。即你只有每个类的一个实体副本。所有代码文件都位于其中一个项目的文件夹中,其他项目也使用这些文件。这只是一个设置路径的问题。 在这个结构中,当您在其中一个项目中更改或添加一些代码(并且哪一个并不重要)时,所有项目都会更新。 每个项目的图像目录都不相同。 这种方法的缺点是,您仍然需要单独构建和提交每个应用程序,并且在添加新类时需要手动将其添加到所有项目中。否则,他们不会编译。 的优点是,当建立一个应用程序,你只建立一个应用程序,而不是所有在一起(更少的时间)。管理对特定应用程序的更改也很容易 - 只需将一些扩展功能添加到只有一个项目的其他功能中 - 其他功能就不需要它了。

2

在我看来,最好的解决方案是有一个代码库与多个目标。是的,当你改变一些代码时,你仍然需要重新提交每个应用程序,但是如果你不改变某些代码,你必须这样做。

您可以选择一个应用程序转换为您的“主”代码库。

E.g.挑选的应用程序之一,并复制目标多次:

enter image description here

你会想这样做后更改计划名称:

enter image description here

enter image description here

可以设置捆绑标识符和部署信息分别为每个应用程序,就像你之前做的一样,图标集:

enter image description here

要在代码的应用程序之间的区别,您可以使用编译器标志(目标 - >构建设置 - 其他SWIFT标志):

enter image description here

然后你可以做这样的事情在你的代码:

#if APP_ONE 
... 
#else 
... 
#endif 
相关问题