CocoaUPnPS 1.2.0

CocoaUPnPS 1.2.0

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最新发布2017年11月

wangleeking 维护。



 
依赖项
CocoaAsyncSocket~> 7.5
Ono~> 1.2
AFNetworking~> 3
GCDWebServer~> 3
 

  • 作者
  • Paul Williamson

CocoaUPnP

Build Status
codecov
Pod Version

CocoaUPnP 是基于 upnpx 的发展,旨在易于使用、现代且基于块。它使用 Objective-C 编写,目前适用于 iOS。目前尚不清楚其与 Mac OS X 的兼容性,但我们不认为这会有任何重大影响。

为什么不是 Swift?

我们选择不使用 Swift 作为这个库的第一个版本的原因有几个。首先,我们使用的应用程序完全基于 Objective-C。我们需要快速编写它,因此 Objective-C 是最佳选择。此外,该应用程序的目标是 iOS 7,因此我们无法使用由 CocoaPods 生成的动态库。此外,与早期 Swift 版本有一些初始摩擦,这需要大量的维护。

该库很可能会在某个时候移植到 Swift,但我无法给出具体的时间表。如果您想要一个 Swift 项目的 UPnP 库,我可以推荐 UPnAtom

项目时间表

最初,本项目将专注于 Audio/Video 设备控制协议。一旦这些协议得到适当的实现和测试,其他协议可能会在稍后添加。

依赖关系

我们试图将库中的依赖项数量限制在使用经过充分测试、使用并经批准的库。因此,CocoaUPnP 本身只包含 5 个依赖项。

  • CocoaAsyncSocket - 用于连接到 SSDP 协议。
  • CocoaSSDP - 这个库已经经过大量修改并经严格测试,可用于 CocoaUPnP。
  • Ono - 用于更快、更容易的 XML 解析。
  • AFNetworking - 利用响应和请求数据序列化。
  • GCDWebServer - 提供了 UPnP 事件服务器的大部分基于套接字的功能。

此外,测试目标还使用了 4 个测试库

测试

CocoaUPnP 尽可能进行测试驱动,以确保库按预期工作。提交拉取请求时,您应运行单元测试套件,以确保您的补丁不会破坏现有功能。请确保为新增的功能添加测试。您可以查看现有测试以获取如何进行此操作的思路。

编写测试

当创建一个新的类时,同时创建一个测试类。测试是用 Specta 编写的,配有相应的 Expecta 匹配器。

SpectaExpecta 的导入都声明在 ExampleTests-Prefix.pch 文件中,因此无需在每个 spec 中导入它们。

贡献

拉取请求总是受欢迎的。如果你想要深入了解项目,有几个方式你可以提供帮助。

  • 更新文档(拼写、语法等)
  • 为库设计一个整洁的图标
  • 解决项目中的一些 问题
  • 提交一个新的 问题或特性请求

提交拉取请求

应始终在您的 fork 上的单独主题分支中添加新功能。测试通过 xcpretty 运行,因此请确保先安装它。

平铺,然后克隆仓库

git clone [email protected]:your-username/CocoaUPnP.git

将您的目录更改到您的 CocoaUPnP 文件夹

cd CocoaUPnP

安装 Pods

pod install

运行测试以确保没有出现错误,并确保您的测试环境已设置

make tests

创建并检出功能分支

git checkout -b awesomeNewFeature

进行更改,然后重新运行测试

make tests

提交更改并将其推送到您的 fork,然后 提交拉取请求