连接到服务器的应用程序的良好工作流程?

Good workflow for app who connects to server?

情况是这样的。 我制作了一个需要服务器才能正常工作的应用程序。 为了制作新版本,我使用相同的代码启动了一个测试服务器,但 IP 地址不同。 目前我更改了应用程序本身的 ip 地址来测试应用程序,并且为了发布我将其更改回生产 ip 地址(然后 运行ning 新版本)。 当然这样可以,但是每次都改ip地址感觉不太对。 我可以做这样的事情 How to execute a specific function only in DEBUG and AdHoc modes(在开发过程中编写一些代码 运行 并且在生产过程中不要让它 运行),但这是解决这个问题的好方法吗?

简而言之,我真的很想听听你会怎么做或者你现在 运行 是怎么做的。 那么如何在开发期间使用测试服务器,在生产期间使用生产服务器呢?

注意:我正在使用 Amazon AWS 来完成这一切。我不知道这是否使 different/easier 围绕这个。

这只是风格问题。

如果我是你,我会有一个全局字符串来保存生产服务器的 IP 地址,然后在调试编译期间用沙箱 IP 地址覆盖它。

您可以使用您指出的 i-phone 的 #ifdef 块的答案来做到这一点,或者使用

better way to do Debug only assert code

对于 android。

对于移动应用程序(Android 和 iOS),您可以将项目配置为 两个不同的 flavors/environment:生产和测试。这种方式在开发具有多个环境(例如:本地、开发、暂存、生产)的软件时很常见。每个环境都有一个单独的配置文件。

在Android中,您可以为每个环境创建一个风格。每个 flavor 将共享相同的代码,但具有不同的配置(实际上,您也可以有一些不同的代码)。在 official documentation or in this post.

中阅读有关 Android 应用风格的更多信息

iOS 也与 Android 口味相同。您可以在 here.

中阅读相关信息

对于Android,每个口味都有单独的*.apk。您的生产风味将不包含测试配置。我不确定 iOS(我不是 iOS 开发人员),但我猜它的行为与 Android 相同,因为这是一种常见的做法。