我有一个应用,它目前在应用商店中。
我对另一个应用程序有一个想法,它将与我发布的应用程序共享许多相同的结构。它们都是照片处理应用程序,因此用于导入,共享,保存,旋转等的代码库都将在两者之间共享。但是,照片处理的类型会有所不同。
我的想法是,当我更新应用#1时,我希望在应用#2中进行这些更改,反之亦然。
从一个代码库获得两个应用程序的最佳方法是什么?
我考虑过的策略,
我也对其他想法持开放态度。
我发现人们在讨论这个问题,但主要是与微小变化有关......即一个应用程序有几个不同的品牌/数据文件。我的两个应用程序将相当不同,所以我认为这些技术不一定适用。
答案 0 :(得分:3)
使用常见的照片处理或其他共享函数创建静态库,并重新编写现有项目以将库添加为依赖项,并使用用户标题搜索路径中的库的headers文件夹。然后,您可以基本上克隆旧项目,并立即开始修改所有共享库函数。
同一项目的两个目标似乎适用于您的情况。如果你有大量的重叠,那么你基本上只需要编写第二个UI /工作流,对吧?如果是,使用两个目标很有意义。
答案 1 :(得分:2)
我建议将您现有的应用分为两部分。将所有公共部分分离为通用DLL /类库,并在现有项目和新项目中使用dll。
随着第一个项目开发的进展,使用适当的部署脚本在新项目中使用最新版本的dll。这样,您的新项目甚至可以处于单独的代码库中
答案 2 :(得分:2)
我建议你看一下在你的应用程序中使用git子模块。在多个应用程序中共享代码时,这对我们来说非常有效。基本上我们使用一个结构,我们在每个Xcode项目中都有一个"Components/"
文件夹,我们保存子模块。
App A可以有这样的子模块:
Components/SomeAmazingPhotoManipulationStuff
Components/MaybeSomeUsefullFoundationThingsYouUseOften
App B可能只使用:
Components/MaybeSomeUsefullFoundationThingsYouUseOften
这里的想法是你可以单独更新你的子模块项目,只需进入使用它的每个应用程序,并将子模块更新到组件的最新版本,在不失去版本控制的情况下在应用程序之间成功共享内容。它也可以很好地扩展到许多项目。
当然,如果您只在一个应用程序中执行某些特定的东西或非常实验性的东西,或者您可能想到的任何场景,那么您可以分支您的子模块并让App A使用一个分支而另一个App B使用另一个分支。
自从我们开始使用像这样的git子模块以来,我们没有回头看,甚至没有考虑任何其他解决方案。