¿Puedo build mi propio marco de trabajo en networking (que depende de AFNetworking) como marco watchOS2?

He estado intentando modificar mi proyecto para admitir la architecture de WatchOS2. Actualmente tengo un marco de trabajo en networking basado en AFNetworking. Lo he estado usando con mi aplicación de reloj hasta ahora. Ahora estoy tratando de build el marco para las plataforms watchos / watchsimulator.

Lo que obtengo es un error de 'SystemConfiguration / SystemConfiguration.h' no encontrado para algunas classs de AFNetworking.

Sé que la configuration del sistema no es uno de los frameworks de sistema disponibles para watchOS2. Y para la networking manzana dice :

Redes

El soporte para operaciones basadas en networking incluye las siguientes tecnologías:

Las extensiones de WatchKit pueden acceder a la networking directamente utilizando un object NSURLSession. Las extensiones de WatchKit tienen acceso total a las capacidades de NSURLSession, incluida la posibilidad de download files en segundo plano. Para get información sobre cómo usar esta class, consulte la Guía de progtwigción del sistema de carga de URL. El framework Watch Connectivity admite la comunicación bidireccional entre su aplicación Watch y la aplicación iOS. Use este marco para coordinar las actividades entre las dos aplicaciones. Para get más información, consulte Comunicación con su aplicación iOS de Companion.

Quiero admitir iOS y watchos para mi sdk de networkinges. ¿Hay alguna forma de hacer que este proyecto sea construido para la plataforma watchOS? ¿O es que significa que solo puedo usar NSURLConnection dentro de mi aplicación de reloj?

De acuerdo con la documentation de AFNetworking :

Carga de URL Las classs más utilizadas en el sistema de carga de URL permiten que su aplicación recupere el contenido de una URL de la fuente. Puede recuperar ese contenido de muchas maneras, según los requisitos de su aplicación. La API que elija dependerá de la versión de OS X o iOS que tenga su aplicación y si desea get los datos como un file o un bloque de datos en memory:

  • En iOS 7 y posterior o OS X v10.9 y posterior, NSURLSession es la API preferida para el nuevo código que realiza requestes de URL.

Si echa un vistazo a los diagtwigs en esa página, indica que AFNetworking realmente usa NSURLSession en algunos casos. Sin embargo, dado que el framework SystemConfiguration no está disponible en watchkit, debería eliminar esa dependencia para include AFNetworking en sus aplicaciones iOS y watchkit.

No estoy seguro de qué es lo que AFNetworking usa para este marco (¡probablemente sea muy importante!), Pero si hay ciertos files que no necesitarían estos ajustes en la aplicación de reloj, podrías modificar el código fuente de AFNetworking para no include esos elementos en la aplicación de reloj:

#if os(iOS) // Include SystemConfiguration framework #elseif os(watchOS) // Exclude SystemConfiguration framework #endif 

Aquí hay un commit reciente en github para AFNetworking para soportar watchOS.

Mirando el logging de cambios …

La versión 2.6.0 es compatible con watchOS …

Esta versión ahora es compatible con watchOS 2.0, que se basa en condicionales de destino que solo están presentes en Xcode 7 e iOS 9 / watchOS 2.0 / OS X 10.10. Si instala la biblioteca con CocoaPods, AFNetworking definirá estos condicionales de destino en las plataforms más antiguas, permitiendo que su código se complique. Si no usa Cocoapods, necesitará agregar el siguiente código a su file PCH.