Xcode / IOS 具有相同代码库/项目的多个应用

Xcode / IOS multiple apps with same code base / project

我正在尝试设置 xcode 以允许我使用相同的代码构建/发布 2 个应用程序,但具有不同的应用程序图标、资产和不同的数据库。

如果我有 2 个应用程序使用相同的代码:

对于这两个应用程序,我会有一个唯一的捆绑包 ID(当然),相同的代码,但不同的图像和数据库。我如何设置 Xcode 拥有 1 个项目并能够 select 我想构建什么应用程序?

我似乎明白我们可以选择使用方案、目标或构建配置,但到目前为止我发现的比其他任何东西都更令人困惑。

欢迎就此提出任何建议/帮助!在这种情况下拥有多个项目并将更改从一个项目复制到另一个项目听起来像是一个疯狂的解决方案。

谢谢。

选项 1:

最简单的方法是拥有一个项目并向其添加多个“app”目标。您需要确保每个目标都添加了正确的源文件(有关如何执行此操作的大量信息,包括:Xcode easily add multiple files to a target)。

正如您提到的,每个目标都可以有一个单独的包 ID,但是您可以选择要添加到每个目标的来源 files/images/etc。您还可以在“构建设置”中为每个目标设置单独的构建标志、环境变量等。

您可以使用 Xcode 工具栏中的目标菜单(在源文件选项卡上方)select 您要构建的目标和 运行。

选项 2:

另一个选项(或者实际上,选项 1 的变体)是在同一个项目中有 2 个应用程序目标(与选项 1 相同),并制作第三个目标,这将是一个框架。该框架可以封装应用程序之间的一些共享代码。例如,在我的一个应用程序中,我有一个在应用程序的 iOS 和 macOS 版本之间共享的音频引擎。该框架的源文件仅属于一个目标(框架),然后该框架被添加为两个应用程序目标的依赖项。

您正在描述一个包含两个应用程序目标的项目。当你构建 / 运行 时,只需将 window 顶部的方案弹出窗口切换为你想要的方案即可。

要在应用之间共享代码,只需将文件添加到两个应用目标即可。