【问题标题】:Xcode : build two apps in same target (with the same plist)Xcode:在同一个目标中构建两个应用程序(具有相同的 plist)
【发布时间】:2015-12-15 07:42:53
【问题描述】:

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

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

  • 捆绑标识符(将这两个应用安装在同一设备上)
  • 图标应用
  • plist 中有 1 个参数
  • 代码中的几行(更改为#IF PILOT 添加代码#ENDIF

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

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

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

我只有几个想法,例如:

  • 在我的目标中添加参数
  • 添加用户定义设置
  • 添加预处理宏

谢谢

【问题讨论】:

    标签: ios xcode build target ipa


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        感谢福尼克斯!

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

        为了添加部分代码,我只需声明代码差异:

        #IFDEF 飞行员

        //代码试点版本

        #ELSE

        //代码标准版

        #ENDIF

        这对我的需求来说是一个不错的选择吗?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-05
          • 1970-01-01
          • 2012-09-03
          • 2021-06-19
          相关资源
          最近更新 更多