我有一个目前在 iOS4-6 上运行良好的应用程序。但是,我想使用仅支持 5 及更高版本的较新库。删除操作系统版本的后果是什么?iOS4上的人如何备份他们的应用程序?我应该告诉他们从 iTunes 备份 IPA 文件吗?我知道当我需要旧 iOS 版本的文件并且无法取回文件时,我曾遇到过几种情况。
如果你不得不放弃一个 iOS 版本,你会怎么做?
如果您想放弃对 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 上执行)。
至于弱链接,转到您的目标选项,显示构建阶段,您可以在“与框架的链接”下添加新框架;只需确保您选择右侧的“可选”选项(见图)。
如果您放弃对 iOS 4 的支持,请告诉现有用户:
事实上,大多数仍在使用旧 iOS 设备的人不会定期将其与 iTunes 同步,因此除非单独删除或擦除整个设备,否则他们不会丢失应用程序。