Xcode : 在同一目标中构建两个应用程序(使用相同的 plist)

Xcode : build two apps in same target (with the same plist)

现在我的 iOS 应用程序中有 3 个目标,所以我构建了 3 个应用程序 (3 个 ipa)。 但我只想保留 3 个目标,但我想生成 6 个应用程序(6 个 ipa)。

我想在每个目标上创建一个应用程序和一个试点应用程序。 我真的只想为应用程序和试点应用程序保留 1 个 plist。 应用程序和试点应用程序的唯一区别是:

为每个目标保持相同的 plist 很重要(一个目标相当于环境 TEST、INT 和 PROD)。因为如果我在两个目标(例如 PROD 和 PROD PILOT)中复制我的目标,那么维护这些应用程序将更加困难,因为如果有一天我想更改 plist 中的某些内容,我将在 PILOT 目标 plist 中做同样的事情。 所以你明白,如果我忘记重复我的更改,它会产生差异。

最后,如果我可以在 1 次构建中构建应用程序和试点应用程序,并同时生成 2 个存档,那就太好了。

可能吗? 你有实现的想法吗?

我只有几个想法:

谢谢

在您的项目设置下,对于每个目标,查看构建设置 -> 打包,尝试将所有 info.plist 文件设置为指向同一个文件而不是它们自己的版本。

如果是测试目的, 尝试在项目设置中更改 Bundle 标识符并在构建设置中更改产品名称并获取存档文件。 它将作为单独的应用程序部署在设备中。

感谢 Fonix!

我的解决方案采纳了您的建议。 我复制了我的 3 个目标,但一个应用程序目标及其试点版本链接到同一个 plist 文件。 此外,我在每个 pilote 版本中都有一个预处理器宏 "PILOTE=1"。 最后,我在用户定义中声明了一个字符串来定义我的图标(“ICON -> icon.png 或 icon-pilote.png),我在 CFBundleIcon item0 -> ${ICON}.

为了添加部分代码,我只在 :

中声明了代码差异

#IFDEF 飞行员

//代码试点版本

#其他

//代码标准版

#ENDIF

它适合我的需求吗?