我有一个应用程序,目前在iOS4-6上运行良好。但是,我想使用仅支持5及以上版本的较新的库。放弃操作系统版本的后果是什么?iOS4上的人如何备份他们的应用程序?我应该告诉他们备份iTunes中的IPA文件吗?我知道,在某些情况下,我需要旧版iOS的文件,但无法找回该文件。
如果你不得不放弃一个iOS版本,你会怎么做?
发布于 2012-10-19 04:31:11
如果你想放弃对iOS 4的支持,后果可能是多方面的,而且肯定会有一些用户陷入你所描述的“需要一个你无法找回的文件”的境地。
在任何情况下,我认为告诉你的用户备份应用程序数据和IPA文件是一个好策略(你可以设计另一个策略,就像@benzado建议的那个,但你提出的那个肯定会起作用,即使用户决定通过iTunes更新应用程序)。
我唯一不知道的是你将如何告诉他们这样做。也许通过一个中间版本说:这是iOS4的最后一个版本?不确定。
另一方面,我不确定你是否真的需要放弃对iOS4的支持。
请看一下this post,了解一般的方法。
如果你只是在考虑添加一个新的框架(已经存在于iOS5/6,而不是iOS4),这只是一个弱链接的问题,然后有条件地包含这些框架的头部。
假设您想要支持Twitter;然后有条件地包括头文件:
#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上执行)。
至于弱链接,转到你的目标选项,显示构建阶段,在那里你可以在"link with framework“下添加新的框架;只需确保你在右侧选择了"optional”选项(见图)。

发布于 2012-10-19 04:43:24
如果您放弃了对iOS 4的支持,请告诉现有用户:
事实是,大多数仍在使用旧iOS设备的人不会定期将其与iTunes同步,因此除非他们单独删除或擦除整个设备,否则他们不会丢失应用程序。
https://stackoverflow.com/questions/12963169
复制相似问题