gpt4 book ai didi

ios - Xcode 使用方案来确定开发/暂存/生产服务器 URL

转载 作者:技术小花猫 更新时间:2023-10-29 10:35:18 27 4
gpt4 key购买 nike

我希望使用 Xcode 的方案来确定要针对哪个服务器运行我的应用程序。我有一个从服务器获取信息的应用程序。像大多数人一样,我有一个开发服务器、一个临时服务器和一个生产服务器。

我希望为其中的每一个创建一个方案,Xcode 将在其中注入(inject)正确的 URL。我是否复制运行方案并添加环境变量?这是做事的最佳方式吗,我并不特别希望在我的服务器类中有#ifdef,并在每次更改服务器时都在代码中设置它。谁能指出我正确的方向?

仅供引用:我使用的是 Xcode 5.0.2 iOS7 SDK。

[编辑] 每个人都提出了一些很好的建议,但我觉得 @redent84 的回答最适合我的需要。尽管我发现有趣的是,实际上没有人建议使用不同的方案。 [/编辑]

最佳答案

我建议您创建不同的 XCode Targets对于每个环境。我建议您更改应用程序的应用程序标识符,例如,生产应用程序将是 com.mycompany.App,DEVEL 版本将是 com.mycompany.App-DEVEL。这样您就可以在 HockeyApp 或 TestFlight 中分别跟踪应用程序,并且您可以同时在同一设备中安装这两个应用程序。

然后,添加为每个目标定义环境的预处理器宏。 DEVEL 用于开发,例如。

如果 URL 是硬编码的,只需添加一条 #ifdef 指令来选择 URL:

#ifdef DEVEL
#define ENDPOINT_URL @"http://develserver:8080/EndPoint"
#elif defined(STAGING)
#define ENDPOINT_URL @"http://stagingserver:8080/EndPoint"
#else
#define ENDPOINT_URL @"http://app.mycompany.com/EndPoint"
#endif

这种方式分发开发版本不易出错,更易于维护,并允许您向不同版本添加自定义代码。例如,您可能希望在登录屏幕中包含版本号或显示警告对话框用于开发,但不用于分发版本。

关于ios - Xcode 使用方案来确定开发/暂存/生产服务器 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20863628/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com