如何防止iOS应用程序在用户下载最新可用版本之前运行?

如何防止iOS应用程序在用户下载最新可用版本之前运行?,ios,Ios,我是Xcode新手,所以我不确定所有可用的命令。如果app Store中有新的更新可用且用户尚未下载,是否有特定的技术允许我阻止应用被使用 我在想 [检查应用程序版本]->[检查应用程序商店中应用程序的最新版本]->[如果不相等,则显示一个对话框,告诉他们下载所需的更新]->[对话框上的“确定”按钮将他们发送到应用程序商店下载更新] 这些都有可能吗?我在《辛普森一家:出击》游戏中看过,但我不知道自己该如何处理 如果真的很复杂,请让我知道这是可以做到的,并告诉我正确的方向,我会做我自己的侦探工作。

我是Xcode新手,所以我不确定所有可用的命令。如果app Store中有新的更新可用且用户尚未下载,是否有特定的技术允许我阻止应用被使用

我在想

[检查应用程序版本]->[检查应用程序商店中应用程序的最新版本]->[如果不相等,则显示一个对话框,告诉他们下载所需的更新]->[对话框上的“确定”按钮将他们发送到应用程序商店下载更新]

这些都有可能吗?我在《辛普森一家:出击》游戏中看过,但我不知道自己该如何处理


如果真的很复杂,请让我知道这是可以做到的,并告诉我正确的方向,我会做我自己的侦探工作。我不想要简单的答案,但我想知道我不是在追求死胡同。

你应该有一个服务器来回答你的应用程序的请求。在服务器脚本中,您可以重播应用程序的上一个版本以及应用程序应该执行的操作

在你的应用程序中,你打开一个对这个url的HTTPRequest并处理回复。代码的剩余问题是,如果未连接到服务器(例如,启动应用程序时没有网络连接),应该怎么做


在用户友好的处理过程中要小心,否则苹果可能会拒绝您的应用。

您需要在检查的服务器上输入最新的版本号

如果服务器报告有更新,请温和地让用户知道并提供更新选项。如果你阻止用户在没有更新的情况下使用应用程序,你可能会在苹果(和你的用户)身上遇到麻烦

如果您无法访问服务器,请假设您是最新的,并且什么也不做

当应用商店发布新版本时,请等待12-24小时,然后再更新服务器上的号码,因为应用程序更新有时可能需要很长时间才能传播到所有应用商店服务器

请务必考虑用户无法升级的原因。例如,您的新版本是否能够在设备的用户版本上运行(当您仅使用iOS 7时为iOS 6等)。这可以通过在服务器上提供比当前版本号更多的信息来解决。可能有一个包含兼容性信息的plist

以下是一些代码,可用于获取应用程序中的版本号:

NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
NSString* build = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

如果无法对应用商店执行查找,则可以使用发布最新版本应用的web服务。然后,应用程序将在启动时对此进行检查,并按照您的描述进行操作。但是,无法处理脱机情况。如果应用程序的用户继续使用旧版本,但从未连接到网络,该怎么办?您还可以要求应用程序在每次发布或每周左右通过网络检查最新版本号。你能更具体地解释一下为什么要这样做吗?专业开发的应用程序在服务器上的文件中有最新版本(ex 2.0)。当应用程序启动时,应用程序会将应用程序中的版本号与服务器上的版本进行比较。如果服务器上的版本大于应用程序上的版本,它将显示相应的消息。另一个需要考虑的问题是,您是否曾经停止支持较旧的操作系统版本。因此,您确实需要获取设备的操作系统版本,并获取该操作系统版本的最新可用软件版本。请参阅