0

例如,我们正在并行开发移动解决方案和该解决方案的服务,因此可以在发布某些功能之前验证其有用性。在我们的场景中,我们使用签名的 android 包,但这可能适用于任何不希望手动更新服务端点的客户端应用程序。

所以在开发过程中,我们的 APK 指向https://rest-dev.myapp.com/api. 现在我们必须构建一个全新的 APK 指向它https://rest-qa.myapp.com/api,更糟糕的是我们的生产服务器在https://rest.myapp.com/api.

当我们测试一个包 (myapp-qa.apk) 时,它不是按位发布给客户的应用程序 (myapp-release.apk),我们冒着巨大的风险(即使我们内部知道它“应该”是相同的代码,只是重新编译和打包)。

这个问题以前是怎么解决的?

编辑到目前为止有趣的解决方案。如果我添加了服务可以由客户托管并且我们在编译时不知道端点 URL 的约束怎么办?:-)

4

2 回答 2

1

如果您不介意最终用户看到终点是什么,那么您可以简单地使用共享首选项(或任何其他存储数据的方式)。我在上一个应用程序中使用了这种技术。

使用 aPreferenceActivity和 simleEditTextPreference作为终点。将默认值设置为您的生产端点。然后在测试时,将值更改为测试结束点。

当您实际需要连接时,请阅读共享首选项值(默认为您的生产值)并使用它。

于 2013-03-18T18:00:25.320 回答
1

有几种方法可以做到这一点,这取决于你想要什么。一种方法是检查 BuildConfig.DEBUG 和 .RELEASE 变量并基于这些以编程方式选择端点。另一种方法是在应用程序中提供一个选择器,允许您根据某些设置点击任何端点(共享首选项或文件的存在/不存在是这样做的好方法)。

于 2013-03-18T18:01:37.540 回答