【问题标题】:One Xcode 4 Project, Four Target "Variations" ... With A Twist一个 Xcode 4 项目,四个目标“变体”……稍有不同
【发布时间】:2011-03-22 15:28:39
【问题描述】:

我有一个偷偷摸摸的怀疑,我想要做的事情可以在 Xcode 4 中更优雅地完成......但我以前错了。这是独家新闻:

我有一个带有常规调试/发布版本和常规、单元测试和 ui-test 目标的 iOS 应用程序。那里没有什么不寻常的。该应用程序还调用服务器。那里也没什么特别的。除了...

现在我希望能够为四种不同的服务器环境构建应用:开发、QA、UAT/Beta 和生产。此外,对于开发人员构建或临时分发,每个构建必须能够在同一设备上共存。

那么让我们看看......这会如何发展?每个应用程序都需要自己的启动目标标识符。也许检测构建类型可以帮助确定要使用的服务器:

调试构建目标开发。 (Ad Hoc Distribution) Release 构建目标 QA(... 或 UAT/Beta?)。 (App Store 分发)发布版本以生产为目标。

至于那些目标标识符(com.companyname.appname),我想我可以为每个构建使用不同的 Info.plist 文件......但这闻起来很难用(重复信息)。也许这是唯一的方法?

底线:我不确定 a) 如何解决 Ad Hoc 与 App Store 分发案例,以及 b) QA/UAT 案例,以及 c) 如何在不搞砸的情况下做到这一点(至少对我来说)更优雅的设置 Xcode 4 提供了那些简单的“Press Play”调试/发布构建操作。

也许我必须添加新的方案?也许这只是添加更多 Info.plist 文件……或构建……或配置……或目标……或某种混合的问题。同样,如果我能提供帮助,我会尽量避免重复大量信息(仅更改一两个设置)。 Debug/Release 看起来很干净,我想确保我沿着正确的轴进行更改。正如他们所说,测量两次,切割一次。

欢迎/赞赏线索!

【问题讨论】:

  • FWIW,“scheme”标签是指关于 Scheme 语言的问题,而不是 XCode 4 构建方案。
  • 很好 - 谢谢约翰!赞赏。
  • 是的,Xcode4。将更新标题。

标签: build-process xcode4 target xcodebuild


【解决方案1】:

这就是我最终要做的。希望这是最明智的做法:

  • 目前,我将 QA 和 UAT 结合在一起。 (以后可能会拆分。)
  • 我制作了三个 Info plist,一个用于开发(调试)、Beta/QA/UAT(发布)和生产(发布)。其中每一个都有略微不同的包显示名称、包标识符和包名称,但在其他方面是相同的。 (这是重复信息最多的地方。必须更改所有三个方面的内容 - 例如,如果我添加新字体或 URL 类型。)
  • 我创建了一个新配置 Beta(基于原始发布/生产配置),因此现在还有开发、Beta 和生产配置。
  • 在 Provisioning Portal 中,我使用之前声明的捆绑包 ID 设置了应用 ID,并为 Beta、Dev 和 Production 生成了新证书。 (现有的应用 ID 最终会用于 App Store 版本。)
  • 在构建设置中,我使用条件设置来指定适当的信息列表和代码签名身份。

我认为这可以解决问题!但是,如果有更清洁的方法,请权衡一下。谢谢!

【讨论】:

  • ... aaaa 这是一个令人沮丧的失败。无法附加到进程。回到绘图板。我确定这是飞行员错误,但我不知道在哪里。 :\
  • 你找到更好的解决方案了吗?
  • 还没有。在此期间,我正在减轻一些事情。不过,如果有人提出了一些建议(或者如果这完全是荒谬的并且有更好的方法),我会全力以赴。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多