¿AFNetworking 2.0 es compatible con iOS 6.0?

AFNetworking 2.0 se anunció la semana pasada. Pero encuentro diferentes requisitos para AFNetworking 2.0.

README.md dice que requiere iOS 7.0 o superior, mientras que la Guía de migration de AFNetworking 2.0 dice que requiere iOS 6.0 o superior.

¿Dose AFNetworking 2.0 es compatible con iOS 6.0?

Accoding a CocoaPods podspec , simplemente puede usar AFN 2.0 pero no include los files relacionados con NSURLSession .

Por ejemplo, si usa CocoaPods (si no lo hace, realmente debería considerar hacerlo, ¡es increíble!), Simplemente use esto en su Podfile para get AFN 2.0 sin las NSURLSession relacionadas con NSURLSession :

 pod 'AFNetworking', '~> 2.0' 

Esto solo obtendrá el subespecie "Core" , que admite el destino de deployment 6.0 para iOS ( s.ios.deployment_target = '6.0' en el podsec) y no integra los files relacionados con NSURLSession . Entonces, esto será compatible con su proyecto con un objective de implementación iOS6 o superior.


Si luego desea eliminar la compatibilidad con 6.0 en su proyecto y aprovechar las capacidades de NSURLSession , puede agregar la NSURLSession NSURLSession a su Podfile :

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

Puede ver en el podspec que agregar la NSURLSession NSURLSession agregará el s.ios.deployment_target = '7.0' como consecuencia, lo que requiere que el objective de implementación de su proyecto sea 7.0 o superior también, por supuesto, como podría esperar.


[EDIT] Desde mi respuesta, Mattt actualizó su código y podspec para que pueda get el NSURLSession NSURLSession incluso cuando se dirige a iOS6. Vea esta request de extracción en su github (y otros relacionados). Entonces, ahora puede get el NSURLSession NSURLSession incluso para usted, proyectos iOS6-min, y simplemente condicionalmente llamarlos en time de ejecución solo if ([NSURLSession class]) es verdadero.

AFNetworking 2.0 es compatible con iOS 6. Mi problema fue que lo había instalado previamente con la plataforma establecida en iOS 7. Lo solucioné haciendo esto:

  1. Se Podfile todo de mi Podfile
  2. Ran pod install , que eliminó todos mis pods.
  3. Se agregó todo de nuevo a mi Podfile , con la platform :ios, '6.0'

Y pude seguir utilizando mi código AFNetworking existente sin problemas.

Sí, admite iOS6, a exception de las partes NSURLSessionTask , que son solo iOS7.

También estaba confundido, pero parece que durante la transición de 1.x -> 2.0 no todos los documentos se habían actualizado todavía. Han estado ahora, y funciona bien en mi proyecto que es compatible con iOS6.

Puede usar AFNetworking 2.0. Solo tiene que asegurarse de que el objective de implementación esté configurado en 6.0 mientras se instala usando cocoa pods. Inicialmente había instalado AFNetworking cuando mi objective de implementación era 7.0. Así que tuve que eliminarlo de los pods de cocoa. luego instala nuevamente.

No utilicé pod en absoluto. En su lugar, lo descargué y arrastré los files al proyecto, y luego encontré este problema también. Para solucionarlo simplemente AFHTTPSessionManager files AFURLSessionManager y AFHTTPSessionManager del proyecto. Luego funcionó