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

时间:2014-10-12 22:05:31

标签: ios objective-c iphone ipad plist

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

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

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

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

最好的方法是什么?感谢。

3 个答案:

答案 0 :(得分:0)

实际上,执行此操作的最佳方法是使用类似解析的内容并从那里提取API网址。然后他们可以通过解析控制台快速更新它。

答案 1 :(得分: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)。
  • 实施起来更快,但它会使应用程序的每一个请求都变得更慢。

答案 2 :(得分:0)

使用DNS服务器

使用域名代替IP地址。

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

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