【问题标题】:Different Bundle Identifier for different build configurations不同构建配置的不同包标识符
【发布时间】:2012-06-27 06:27:00
【问题描述】:

我现在正在开发一个应用程序,我们正在尝试针对暂存环境和生产环境进行一些测试。自然地,我创建了“Stage”和“Prod”构建配置来在两者之间切换,但我的客户希望将两者并排安装,以便他们可以轻松地在两个环境之间切换。到目前为止,我一直在通过使用不同的包标识符和包显示名称维护我的代码分支来做到这一点,因此它们可以并排安装和测试。不过,我开始怀疑是否有更简单的方法可以做到这一点。有没有一种方法可以定义自定义构建设置,根据构建配置给它一个值,然后将其附加到包标识符的末尾?

类似...

BUNDLE_SUFFIX
    TEST
    STAGE   
    PROD    ".PROD"

...然后将我的 Bundle Identifier 设置为 com.blah.blah$(BUNDLE_SUFFIX)。然后所有使用 PROD 配置的构建将自动获取新的包 ID,我不必一直同步分支。这样的事情有可能吗?

【问题讨论】:

  • 您可以做的一件事是检查代码中的捆绑 ID 并根据捆绑 ID 修改您的应用行为。我有一个应用程序的三个版本;开发版、测试版和正式版:各自使用不同的 Web API。所以我在运行时检查包标识符以确定要使用的 URL。
  • 我还使用具有不同配置文件、包标识符和名称的不同目标,因此我不必为此弄乱任何分支。
  • 只有 url 在您的阶段和生产版本中发生变化吗?

标签: ios xcode


【解决方案1】:

Xcode 7 中:

这可以使用构建设置中的打包配置轻松完成

【讨论】:

  • 这是真的。但是,在目标设置的常规选项卡中还有另一个捆绑标识符占位符。那么,如果您为每个配置保留不同的包标识符,它如何反映在常规窗格中?
  • 编辑你的scheme,把RunBuild Configuration改成Release或者别的什么,默认是Debug。然后您的general 页面将显示Release 的配置。 @RashmiRanjanmallick
  • 除此之外,我还必须在每个配置的构建设置中设置Product Bundle Identifier。否则 General 选项卡中的 Provisioning Profile 设置会报错(Xcode 8)。
  • 这个应该被接受为解决方案,我之前使用了 bundle id 后缀的方法,但这种方法更有效,实际上还允许您为每个环境使用不同的配置文件
【解决方案2】:

是的,你在正确的轨道上。这是一个很好的教程:http://nilsou.com/blog/2013/07/29/how-to-have-two-versions-of-the-same-app-on-your-device/

【讨论】:

  • 不错!我不再从事那个项目,但这看起来正是我当时需要的东西。
  • 那篇文章对我很有效。我唯一需要改变的是,如果你使用 appiconset 作为你的应用程序图标,你可以在 Build Settings -> Asset Catalog App Icon Set Name 中配置它,而不是替换 plist 中的每个图标文件
  • 该教程很有帮助,但是如何在不制作单独方案的情况下指定要构建的构建配置(我不想这样做,因为它会给整个项目增加更多的手动开销)?理想情况下,我会有 3 个配置:dev、staging、production - 所有配置都有不同的 url 和 bundle id
猜你喜欢
  • 1970-01-01
  • 2015-09-17
  • 2011-06-18
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多