支持iOS 7和包含扩展的iOS 8兼容应用程序

支持iOS 7和包含扩展的iOS 8兼容应用程序,ios,xcode,Ios,Xcode,我已经使用Today小部件扩展为iOS 8构建了一个应用程序。我想知道如何确保使用iOS 7的用户仍然可以下载和使用该应用程序 我是否将今天的小部件开发目标定为iOS 8,而实际的应用程序开发目标定为iOS 7 检查操作系统版本,并对其执行回退行为 NSString*osVersion=[[UIDevice currentDevice]systemVersion] 检查您是否有权使用您希望使用的功能: [YourClass响应选择器:@selector(yourDesiredFunction)]

我已经使用Today小部件扩展为iOS 8构建了一个应用程序。我想知道如何确保使用iOS 7的用户仍然可以下载和使用该应用程序

我是否将今天的小部件开发目标定为iOS 8,而实际的应用程序开发目标定为iOS 7

  • 检查操作系统版本,并对其执行回退行为 NSString*osVersion=[[UIDevice currentDevice]systemVersion]

  • 检查您是否有权使用您希望使用的功能:

    [YourClass响应选择器:@selector(yourDesiredFunction)]

  • 苹果的SDK兼容性指南:

    您的思路是正确的:该应用程序需要使用iOS 8 SDK构建,并且可以有更早的部署目标。小部件的部署目标是iOS 8,在iOS 7设备上它将被忽略。您也可以在模拟器中轻松验证这一点


    如果您在小部件和应用程序之间共享代码,显然,这些代码需要在iOS 7和iOS 8中工作。具体来说,如果您使用框架在应用程序和小部件(即)之间共享代码,您应该阅读。然而,只要你以iOS 7为目标,就不使用(自己的、嵌入式的)框架似乎更容易。

    hagi是对的,但我们已经尝试在iOS 7上使用框架运行应用程序,并且成功了。但最好的方法是弱链接和检查


    这是一个糟糕的场景,因为在我们的框架中几乎都是非UI代码:模型、解析器和加载。

    我发现#2只是让框架成为可选的,但我仍然对today小部件感到困惑。如何为一个完全独立的目标制定回退行为?在第一个选项中,与NSFoundationVersionNumber\u iOS\u 7\u 1相比使用更好