AFNetworking 2.0是否支持iOS 6.0?

AFNetworking 2.0上周宣布。 但是我发现对AFNetworking 2.0有不同的要求。

README.md告诉它需要iOS 7.0或更高版本,而AFNetworking 2.0迁移指南则要求iOS 6.0或更高版本。

剂量AFNetworking 2.0支持iOS 6.0?

根据CocoaPods podspec ,您可以简单地使用AFN 2.0,但不包括NSURLSession相关的文件。

例如,如果你使用CocoaPods(如果你不这样做,你应该考虑这样做,这太棒了!),只需要在你的Podfile上使用它来获得AFN 2.0,而不需要NSURLSession相关的特性:

 pod 'AFNetworking', '~> 2.0' 

这只会得到支持iOS的部署目标6.0(“ s.ios.deployment_target = '6.0'中的s.ios.deployment_target s.ios.deployment_target = '6.0' )并且不集成NSURLSession相关文件的"Core"规格。 因此,这将与使用iOS6或更高版本的部署目标的项目兼容。


如果您以后希望删除项目的6.0支持并利用NSURLSessionfunction,则可以将NSURLSession规范添加到您的Podfile

 pod 'AFNetworking', '~> 2.0' # Core, without NSURLSession, compatible with iOS6 pod 'AFNetworking/NSURLSession', '~> 2.0' # Add NSURLSession features, only compatible with iOS7 

您可以在podspec中看到,添加NSURLSession子类会增加s.ios.deployment_target = '7.0'要求,因此当然也需要您的项目的部署目标为7.0或更高。


[编辑]自从我的答案,Mattt更新了它的代码和podspec,以便您可以获得NSURLSession subspec即使在iOS6的目标。 在它的github (和其他相关的) 上看到这个拉取请求 。 所以现在你甚至可以为你的iOS6-min项目获得NSURLSession subspec,并且只有if ([NSURLSession class])为真的情况下才有条件地在运行时调用它们。

AFNetworking 2.0在iOS 6中得到了支持。我的问题是我之前安装的平台设置为iOS 7.我通过这样做来修复它:

  1. 删除我的Podfile所有内容
  2. pod install ,它删除了我所有的豆荚。
  3. 添加一切回到我的Podfileplatform :ios, '6.0'

而且我仍然可以使用我现有的AFNetworking代码,没有任何问题。

是的,它支持iOS6,除了NSURLSessionTask部分,只有iOS7。

我也很困惑,但是从1.x – > 2.0的过渡期看,并不是所有的文档都被更新了。 他们现在已经在支持iOS6的项目中工作得很好。

你可以使用AFNetworking 2.0。只需要确保部署目标设置为6.0,而使用cocoa pods进行安装。当我的部署目标是7.0时,我最初安装了AFNetworking,所以不得不将它从cocoa pods集合中部署到6.0,然后再次安装。

我根本没有使用吊舱。 相反,我下载它并将文件拖到项目中,然后也遇到了这个问题。 要解决它,我只需从项目中删除AFURLSessionManagerAFHTTPSessionManager文件。 然后它的工作。