0
  • 假设我发布了我的应用程序的 1.0 版。
  • 然后说我想完全更改 2.0 版的服务器/数据库,但是这样做会破坏我 1.0 版的服务器通信。

与其让用户想知道为什么他们的 1.0 版应用服务器通信停止为他们工作,有没有办法让他们知道他们需要升级?换句话说,有没有办法向使用旧版应用程序的用户发送推送通知,让他们知道他们需要升级才能使用?

我知道 Family Feud with Friends for iOS 会这样做,主要是因为他们添加了不适用于旧版本的新功能。这是您希望从开发人员向用户发送推送通知的另一个示例。

此外,是否有更好的方法来处理更改服务器/数据库?(对不起,如果那是一个太笼统的问题)。我觉得打破旧版本的服务器/数据库是不好的做法。

这是一个假设性问题,所以我实际上并没有陷入这种情况,我只是在寻找防止/处理未来服务器/数据库更改的方法。

谢谢!

4

1 回答 1

2

通常,应用程序通过 API 与服务器通信,并且不直接连接到数据库。由于 API 返回数据而不是数据库模式,因此它通常不受数据库模式更改的影响。如果底层数据结构发生变化,您可能需要更新 API,但特定 API 函数的输入和输出不应更改。

如果您的 API 函数使用 JSON 等可扩展协议返回数据,那么您可以轻松返回额外数据以支持新功能,并且应用程序的早期版本可以简单地忽略新数据。

如果您必须对可能破坏当前功能的 API 函数进行更改,那么您只需对函数调用进行版本化。users/get可能是您的旧电话,users/get2也可能是您的新电话。

在极少数情况下您必须强制用户更新(可能是安全漏洞),那么最好有办法提前强制更新。

我们的应用程序做的第一件事就是将它的版本号发送到服务器。服务器可以响应需要更新并提供更新的链接。

推送通知不是强制更新的好方法。他们只是“尽力而为”。不是每个人都会收到推送通知,尤其是如果他们在您的应用中禁用了推送通知。另外,为什么要打扰那些可能无意再次启动您的应用程序的人呢?让 App Store 通知他们,或等到他们启动您的应用程序,然后再检查,如上所述。

于 2013-08-06T17:09:23.207 回答