0

我想知道是否有一种方法可以部署仅 iOS 5 版本的应用程序,并且没有更高版本的 iOS 能够运行此应用程序。我知道 Base SDK 版本和部署目标选项来配置应用程序在哪些系统上运行,但有没有办法指定应用程序只能在 iOS 5 上运行?

原因:我有一个更新版本的应用程序,它具有更多功能,使用更多内存,因此在 iPad 1 上崩溃。旧版本的应用程序功能较少并且运行良好。我只想将旧版本部署到 iOS 5,而对于 iOS 6 及更高版本,我想部署新版本。

有没有办法在不发布两个单独的应用程序的情况下做到这一点,从而使用户不知道要下载哪个应用程序?

4

6 回答 6

3

我想知道是否有一种方法可以部署仅 iOS 5 版本的应用程序并且没有更高版本的 iOS 能够运行此应用程序

不,这是不可能的。即使您的应用具有 5.0 的 Base SDK,也无法阻止 iOS 6 用户安装和运行该应用。

有没有办法在不发布两个单独的应用程序的情况下做到这一点,从而使用户不知道要下载哪个应用程序?

正如“马特”所说,是的。您创建一个应用程序。您将部署目标设置为 5.0,将基础 SDK 设置为“最新”。诀窍是您需要进行大量运行时检查,以便 iOS 5 的用户只能获得“较旧、较低内存”的功能。iOS 6 的用户应该获得所有更新的功能。

您的应用描述(以及“新增功能”说明)应明确说明 iOS 5 和 iOS 6 用户将获得不同的功能。

于 2013-04-05T20:58:37.403 回答
1

您可以对您的应用程序进行编程以实现 iOS5 兼容性并将其发送给 Apple。当您上传您的应用程序时,它会询问一些信息,其中之一是兼容性。如果你说它只兼容 iOS5,他们可能会接受,但我不能 100% 确定。

于 2013-04-05T20:57:57.933 回答
1

您不能将应用程序限制为较新的 iOS 版本。

正如您在问题中所述,您的问题不是 iOS 版本,而是 iPad 1

+[UIDevice model]您可以在运行时使用和检测 iPad 1 -[NSProcessInfo processorCount]。iPad 1 只有一个 CPU 内核,所有其他 iPad 型号都有 2 个或更多内核。

然后只需禁用或更改此设备上的某些功能。

于 2013-04-05T21:03:56.897 回答
0

我只想将旧版本部署到 iOS 5,而对于 iOS 6 及更高版本,我想部署新版本。有没有办法在不发布两个单独的应用程序的情况下做到这一点......?

是的,您必须编写条件代码,如果设备运行 iOS 5 会发生某些事情,如果设备运行 iOS 6 会发生其他事情。

于 2013-04-05T20:50:14.633 回答
0

有没有办法在不发布两个单独的应用程序的情况下做到这一点,从而使用户不知道要下载哪个应用程序?

您应该构建一个应用程序,根据设备是否支持有条件地启用功能。在 iOS5 上运行时,应隐藏在 iOS5 上不起作用的 iOS6 功能。当硬件不存在时,应该隐藏依赖于某些硬件的功能。不过,请尝试测试您需要的特定功能——不要根据操作系统的版本假设某个功能是否存在。

于 2013-04-05T21:10:34.097 回答
0

您只能在 Apple 测试后批准的 App Store 中发布应用程序。据报道,他们通常会在最新版本的 iOS 上测试应用程序,如果您的应用程序崩溃或无法在当前操作系统(今天的 6.1.3)上运行,Apple 可能会拒绝该应用程序。

所以不行。

于 2013-04-07T03:22:51.200 回答