如何允许客户在iOS应用中更改其API基本URL而不更改应用代码?

问题描述 投票:-1回答:3

我正在为与客户端API集成的客户端开发iOS应用程序,我在用于与API接口的单例对象中定义API基本URL。

#define kAPIBaseURL @"https://myAPIURL.com/api/"

客户端希望自己更改API Base URL,而不是每次都更改应用程序代码中的URL。

我通过测试飞行将构建分发给客户端或向他们发送IPA文件,而不是代码库。

做这个的最好方式是什么?谢谢。

ios objective-c iphone ipad plist
3个回答
0
投票

实际上,最好的方法是使用像解析这样的东西并从那里拉出API网址。然后他们可以通过解析控制台快速更新它。


0
投票

解决方案1:

  • 在NSUserdefaults中创建一个密钥(“kAPIBaseURL”)并将其值设置为默认的APIURL。 NSUserdefaults的优势在于它甚至可以持续应用程序更新(直到应用程序被删除)。在NSUserdefaults中写一些内容后,不要忘记立即调用NSUserdefaults同步!
  • 在您的委托中,每次应用程序都会完成配置操作(不太经常)或当应用程序确实变为活动状态(更频繁地)时,向您自己的Web服务发送请求,该服务保存当前最新的API基本URL
  • 向您的应用返回最新的最新API基本网址。
  • 比较NSUserdefaults中kAPIBaseURL的现有值,如果不同则更新它。

如果您不想使用webservices,只需将.json文件存储在包含基本URL的ftp上,并直接对该文件发出请求。客户需要访问该ftp才能更新该文件。

JSON文件内容示例:

{"baseURL":"http://www.mybaseurl.com/"}

解决方案2(不推荐):

  • 构建一个中间人:将kAPIBaseURL设置为一个url,只有工作是对真实服务器进行重定向(可能是htaccess)。
  • 实现起来更快,但它会使应用程序中的每个请求都变得更慢。

0
投票

使用DNS服务器

使用域名而不是IP地址。

并使用像http://domainname.com/api这样的域名构建应用程序

如果您要更改IP地址,它将自动从DNS服务器重定向。

© www.soinside.com 2019 - 2024. All rights reserved.