例如,我们正在并行开发移动解决方案和该解决方案的服务,因此可以在发布之前验证某些功能的有用性。在我们的场景中,我们使用签名的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的约束怎么办? : - )
答案 0 :(得分:1)
如果您不介意最终用户查看结束点,那么您可以简单地使用共享首选项(或任何其他存储数据的方式)。我在上一个应用程序中使用了这种技术。
使用PreferenceActivity
和EditTextPreference
个等号作为终点。将默认值设置为生产终点。然后在测试时,将值更改为测试结束点。
当您确实需要连接时,请阅读共享首选项值(默认为您的生产者)并使用它。
答案 1 :(得分:1)
根据您的需要,有几种方法可以做到这一点。一种方法是检查BuildConfig.DEBUG和.RELEASE变量,并根据这些变量以编程方式选择端点。另一种方法是在应用程序中提供一个选择器,允许您根据某些设置命中任何端点(共享首选项的存在/不存在或文件是这样做的好方法)。