我可以build立自己的networking框架(依赖于AFNetworking)作为watchOS2框架吗?

我一直在试图修改我的项目来支持WatchOS2架构。 目前我有一个基于AFNetworking的networking框架。 到目前为止,我一直在使用我的手表应用程序。 现在我正在尝试构buildwatchos / watchsimulator平台的框架。

我得到的是一些AFNetworking类的“SystemConfiguration / SystemConfiguration.h”文件找不到错误。

我知道系统configuration不是watchOS2可用的系统框架之一。 而对于networking苹果说 :

联网

支持基于networking的操作包括以下技术:

WatchKit扩展可以使用NSURLSession对象直接访问networking。 WatchKit扩展可以完全访问NSURLSessionfunction,包括在后台下载文件的能力。 有关如何使用此类的信息,请参阅URL加载系统编程指南。 Watch Connectivity框架支持Watch应用程序和iOS应用程序之间的双向通信。 使用此框架来协调这两个应用程序之间的活动。 有关更多信息,请参阅与您的Companion iOS应用程序通信。

我想支持iOS和watchos为我的networkingsdk。 有没有办法使这个项目为watchOS平台build立? 或者是这意味着我只允许在我的手表应用程序内使用NSURLConnection?

根据AFNetworking文件 :

URL加载URL加载系统中最常用的类允许您的应用程序从源检索URL的内容。 您可以通过多种方式检索该内容,具体取决于您的应用程序的要求。 您select的API取决于您的应用程序所针对的OS X或iOS的版本,以及您是否希望将数据作为文件或内存数据块获取:

  • 在iOS 7及更高版本或OS X v10.9及更高版本中,NSURLSession是执行URL请求的新代码的首选API。

如果您查看该页面上的图表,则表明AFNetworking在某些情况下实际上使用了NSURLSession。 但是,由于SystemConfiguration框架在watchkit中不可用,所以您需要删除该依赖项以将AFNetworking包括在iOS和Watchkit应用程序中。

我不确定AFNetworking使用这个框架(这可能是非常重要的!),但是如果在手表应用程序中有某些文件不需要这些设置,那么您可以修改AFNetworking源代码,使其不包含这些项目手表应用程序:

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

下面是最近在github上提交AFNetworking支持watchOS的提交。

看着更新日志..

版本2.6.0支持watchOS …

此版本现在支持watchOS 2.0,它依赖于仅在Xcode 7和iOS 9 / watchOS 2.0 / OS X 10.10中存在的目标条件。 如果您使用CocoaPods安装库,AFNetworking将在较老的平台上定义这些目标条件,从而允许您的代码进行complile。 如果您不使用Cocoapods,则需要将以下代码添加到PCH文件中。