2

我有一个目前在 iOS4-6 上运行良好的应用程序。但是,我想使用仅支持 5 及更高版本的较新库。删除操作系统版本的后果是什么?iOS4上的人如何备份他们的应用程序?我应该告诉他们从 iTunes 备份 IPA 文件吗?我知道当我需要旧 iOS 版本的文件并且无法取回文件时,我曾遇到过几种情况。

如果你不得不放弃一个 iOS 版本,你会怎么做?

4

2 回答 2

3

如果您想放弃对 iOS 4 的支持,后果可能是多方面的,并且肯定会有一些用户陷入您所说的“需要一个无法取回的文件”中。

在任何情况下,我认为告诉您的用户备份应用程序数据和 IPA 文件是一个很好的策略(您可能会设计另一种策略,就像 @benzado 建议的那样,但您提出的那个肯定会起作用,即使在用户决定通过 iTunes 更新应用程序的情况下)以降低风险。

我唯一不知道的是你将如何告诉他们这样做。也许通过一个中间版本说:这是iOS4的最后一个?没有把握。

另一方面,我不确定您是否真的需要放弃对 iOS4 的支持。

看看这篇文章的一般方法。

如果您只是想添加一个新框架(存在于 iOS5/6 而不是 iOS4),那么只需弱链接这些框架,然后有条件地包含这些框架的标头即可。

说你想支持推特;然后你有条件地包含标题:

#if defined(__IPHONE_5_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0
#import <Twitter/Twitter.h>
#import <Accounts/Accounts.h>
#endif

并且有条件地保护 Twitter 方法的使用:

Class tweeterClass = NSClassFromString(@"TWTweetComposeViewController");
if (tweeterClass != nil && [tweeterClass respondsToSelector:@selector(canSendTweet)]) {
   ...
}

(此代码只会在 iOS5/6 上执行)。

至于弱链接,转到您的目标选项,显示构建阶段,您可以在“与框架的链接”下添加新框架;只需确保您选择右侧的“可选”选项(见图)。

在此处输入图像描述

于 2012-10-18T20:31:10.550 回答
0

如果您放弃对 iOS 4 的支持,请告诉现有用户:

  1. 与计算机上的 iTunes 同步以备份其应用程序和数据。(无论如何他们都应该这样做。)
  2. 仅在设备上下载应用程序更新,不要在计算机上的 iTunes 中下载应用程序更新。设备永远不会下载它无法运行的更新,但 iTunes 可能会用无法在您的设备上运行的较新副本覆盖您的备份副本。

事实上,大多数仍在使用旧 iOS 设备的人不会定期将其与 iTunes 同步,因此除非单独删除或擦除整个设备,否则他们不会丢失应用程序。

于 2012-10-18T20:43:24.117 回答