测试已测试 | ✓ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
发布最新发布 | 2017年11月 |
由 wangleeking 维护。
依赖项 | |
CocoaAsyncSocket | ~> 7.5 |
Ono | ~> 1.2 |
AFNetworking | ~> 3 |
GCDWebServer | ~> 3 |
CocoaUPnP 是基于 upnpx 的发展,旨在易于使用、现代且基于块。它使用 Objective-C 编写,目前适用于 iOS。目前尚不清楚其与 Mac OS X 的兼容性,但我们不认为这会有任何重大影响。
我们选择不使用 Swift 作为这个库的第一个版本的原因有几个。首先,我们使用的应用程序完全基于 Objective-C。我们需要快速编写它,因此 Objective-C 是最佳选择。此外,该应用程序的目标是 iOS 7,因此我们无法使用由 CocoaPods 生成的动态库。此外,与早期 Swift 版本有一些初始摩擦,这需要大量的维护。
该库很可能会在某个时候移植到 Swift,但我无法给出具体的时间表。如果您想要一个 Swift 项目的 UPnP 库,我可以推荐 UPnAtom。
最初,本项目将专注于 Audio/Video 设备控制协议。一旦这些协议得到适当的实现和测试,其他协议可能会在稍后添加。
我们试图将库中的依赖项数量限制在使用经过充分测试、使用并经批准的库。因此,CocoaUPnP 本身只包含 5 个依赖项。
此外,测试目标还使用了 4 个测试库
CocoaUPnP 尽可能进行测试驱动,以确保库按预期工作。提交拉取请求时,您应运行单元测试套件,以确保您的补丁不会破坏现有功能。请确保为新增的功能添加测试。您可以查看现有测试以获取如何进行此操作的思路。
当创建一个新的类时,同时创建一个测试类。测试是用 Specta 编写的,配有相应的 Expecta 匹配器。
Specta 和 Expecta 的导入都声明在 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,然后 提交拉取请求。