10

我一直在尝试修改我的项目以支持 WatchOS2 架构。目前我有一个基于 AFNetworking 的网络框架。到目前为止,我一直将它与我的手表应用程序一起使用。现在我正在尝试为 watchos/watchsimulator 平台构建框架。

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

我知道系统配置不是 watchOS2 可用的系统框架之一。对于网络苹果

联网

对基于网络的操作的支持包括以下技术:

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

我想为我的网络 sdk 同时支持 iOS 和 watchos。有没有办法让这个项目为 watchOS 平台构建?或者这是否意味着我只能在手表应用程序中使用 NSURLConnection?

4

2 回答 2

1

这是最近在 github 上提交的 AFNetworking 以支持 watchOS。

看着更新日志..

2.6.0版本支持watchOS...

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

于 2015-08-28T17:45:04.680 回答
1

根据AFNetworking 文档

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

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

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

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

#if os(iOS)
// Include SystemConfiguration framework
#elseif os(watchOS)
// Exclude SystemConfiguration framework
#endif
于 2015-08-18T17:22:47.110 回答