如何使用Xcode的Targets来管理开发和生产版本的构建

Posted Cocoa开发者社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Xcode的Targets来管理开发和生产版本的构建相关的知识,希望对你有一定的参考价值。


  • 原文:

  • 译者:--



编者提示:这篇文章由Eugene Trapeznikov贡献。想象一下,你已经完成了应用程序的开发和测试,现在准备提交正式版本。问题是,一些web服务的url指向了测试服务器,同时API密钥被配置用于测试环境。在提交app给苹果审核前,你需要修改所有这些API密钥和URL以适应生产版本。这听起来还好,对吧?但是相较于在开发环境和生产环境之间来回修改相关数值,有没有更好的方法来处理开发和生产版本的构建?这正是接下来Eugene要和你讨论的。


进入Eugene的教程


对于初学者来说,有些人可能会奇怪,在App开发过程中,为什么需要使用两个单独的数据库和环境。原因是当你继续构建新的功能特性或继续开发你的应用,你希望区分开现有的公开版本和生产版本。


标准的软件开发实践是在不同的开发环境下开发不同版本的软件,像我们案例中讲到的开发iphone应用。应用程序的开发版本通常使用一个不同于生产环境的数据库(或如分析的其他系统)。这就是为什么我们应该为不同的环境中使用单独的服务器和数据库。开发人员在测试期间通常都使用虚拟图像或虚拟数据。在测试环境中,使用诸如 “test comment”, “argharghargh” 和 “one more test comment”之类的测试数据并不少见。显然,你不希望你的真实用户看到这样的消息。如果你的应用程序使用了一个分析系统的情况下,你甚至会在测试阶段发送成千上万的事件。同样的,你不会把测试数据和生产数据放在同一个数据库中。这就是为什么总是推荐区分开发和生产环境。


在使用两个独立的环境时,你的应用程序需要有一个办法找出它应该连接到的环境。一种常用的方法是在你的主应用代理里定义一个全局变量,它会将您的应用程序初始化为开发或生产模式。