测试 HomeKitApp
如果你没有智能电器(智能配件),你可以使用 HomeKit Accessroy Simulator 来模拟 home 中的智能电器。每个模拟配件都拥有服务和特性,你可以从你的 App 当中控制它。你的 App 在 HomeKit 数据库中创建对象和关系。它可以创建 home 布局,可以添加新的配件到模拟的 home 环境当中,最后向 home 中的每个房间添加智能配件。然后,你的app就能控制这些在 HomeKit Accessory Simulator 展示的模拟智能配件了。为了使用 HomeKit Accessory Simulator,请在iOS模拟器中运行你的应用程序,或者使用Xcode在iOS设备上运行应用程序。
HomeKit Accessory Simulator 是一个附加的开发者工具,不过并没有安装在 Xcode 当中。请按照 Download HomeKit Accessory Simulator 中所述的安装 HomeKit Accessory Simulator。
添加智能电器(配件)
使用HomeKit Accessory Simulator来添加智能电器到模拟网络中。
向网络中添加智能电器配件,请按照下面的步骤添加:
- 在 HomeKit Accessory Simulator 中,点击底部左边‘+’按钮。
- 从弹出菜单中选择添加智能电器(Add Accessory)。
- 输入智能电器的名字和制造商。
- 点击完成
如果想删除一个智能电器,请选择一个智能电器然后点击键盘上的Delete键。
向智能电器(配件)中添加服务
一个智能电器需要一项服务和特性,你可以从 App 控制它。从预定义了服务列表中选择一项服务,并自定义特性。
按照下面步骤向智能电器中添加服务
1.在 HomeKit Accessory Simulator 中,选择 Accessories 列中的某个配件。
该配件的服务信息会展示在一个详情界面中。
2.点击添加服务(Add Service),并从弹出视图中选择一个服务类型。
新添加的服务会在右边详细显示。HomeKit Accessory Simulator 为每种服务创建通用的特性。比如一个灯光服务的默认特性为色彩(Hue),饱和度(Saturation),亮度(Brightness)和开关。(开关特性和电源状态特性是一样的,正如 Accessing Values of Characteristics 中描述的那样。)一些特性是强制性的有一些也是可选择的。比如,开关特性就是强制性的,而色彩,饱和度,亮度这些特性都是可选择的。
向服务中添加特性
你可以向服务中添加预定义的特性,或者自定义的特性。每种特性你都只能添加一个。
按照下面的步骤向服务中添加特性:
- 在 HomeKit Accessory Simulator 中,服务详情视图,点击添加特性(Add Characteristic)
- 在特性类型菜单中,选择一个类型或者自定义类型。
- 在其他文本框中输入此特性的其他信息,并点击完成(Finish).新添加的特性会在详细视图展示出来。
点击特性右边的减号来删除一个特性。如果特性右边并没有减号显示,这说明这个特性对这个服务来说是必须的。比如,你可以删除电灯服务中的色彩(Hue),饱和度(Saturation)和亮度(Brightness),但是你不可以删除开关特性。
通过你的 App 向家庭中添加智能电器(配件)
在你通过 HomeKit Accessory Simulator 创建了一个智能电器后,运行你的App然后添加一个新的智能电器到你的家庭。
如何配对家庭中的智能电器:
在 Xcode 中,点击 Run 并调用 addAccessory:completionHandler:方法(如 Adding Accessories to Homes and Rooms中描述的那样).
- 如果弹出了一个 Add HomeKit Accessory 对话框声明这个智能电器未被信任(这在 HomeKit Accessory Simulator 中是被允许的),不用管它,点击 Add Anyway。
- 在接下来显示的 Add HomeKit Accessory对话框中,输入智能电器的 setup code 然后点击 Add。
在 HomeKit Accessory Simulator,setup code 显示在详情界面智能电器名称下。
关于如何编写代码来添加一个智能电器到家庭和房间请阅读Creating Homes and Adding Accessoris。
控制智能电器(配件)
在HomeKit Accessory Simulator中,你可以获得智能电器的服务,并在其他HomeKit App中设置服务的特性值来模拟控制这个智能电器,或者手动地模拟控制智能电器。
想要控制一个智能电器你需要:
- 在HomeKit Accessory Simulator中的智能电器列表(Accessories column)中选择一个智能电器。这个智能电器的服务和特性会被展示在详情界面。
- 操作一个特性的控件来改变它的值。
比如,为了改变一个灯泡的颜色(Hue),饱和度(Saturation)和亮度(Brightness),请滑动这个滑块。为了打开这个灯泡请选择 On 选项。
如果你的 App 展示了一个服务的特性,比如灯泡的开关状态,当你在HomeKit Accessory Simulator中改变这些特性的值时,它应当更新视图。
为了观察HomeKit数据库的变化,请阅读Observing HomeKit Database Changes。如果你想从 App 中通过编写代码来控制一个智能电器,请阅读Accessing Services and Characteristics。
添加桥接口
为了模拟那些不支持 HomeKit Accessory Protocol 协议的智能电器,需要添加一个虚拟桥接口,然后将智能电器添加到这个虚拟桥接口。配置虚拟桥接口底层的智能电器和配置其他类型的智能电器差不多。
添加一个虚拟桥接口到网络
添加一个代表这个虚拟桥接口的智能电器。
为了添加一个虚拟桥接口到网络你需要:
- 在 HomeKit Accessory Simulator 中,点击智能电器列表底部的“+”按钮。
- 在弹出框中选择 Add 虚拟桥接口。
- 输入一个智能电器的名称和制造商。
- 点击完成
向虚拟桥接口添加智能电器配件
可向一个虚拟桥接口添加一个或多个智能电器。
为了向一个虚拟桥接口添加一个智能电器,需要:
- 在HomeKit Accessory Simulator左边的列表中,选择虚拟桥接口中的一个虚拟桥接口。
- 在详情页面选择 Add Accessory。
- 输入一个智能电器名字和制造商。
- 点击完成。
想要了解虚拟桥接口中的智能电器的详细信息,请选择虚拟桥接口部分中的智能电器。如果需要的话你可以点击虚拟桥接口旁边的查看详情来查看这个虚拟桥接口的智能电器。在你添加了一个服务和特性到这些智能电器之后,如Adding Services to Accessories和Adding Characteristics to Services中描述。它们会在这个虚拟桥接口被选择之后被展示出来。
在你的 App 中添加虚拟桥接口到 home
将虚拟桥接口和home匹配的过程和将一个智能电器配置到一个home的过程是一样的,如 Adding Accessories to a Home in Your App 描述的。在虚拟桥接口底层的智能电器配件也一样被加入到了 home,如 Adding Bridges to Homes and Rooms 所描述。
控制虚拟桥接口底层的智能电器
如何控制虚拟桥接口底层的智能电器和直接控制智能电器的步骤一致,如 Controlling Accessories in HomeKit Accessory Simulator 中描述,除了你直接选择虚拟桥接口下的智能电器之外。
在多设备和多用户环境中测试
在iOS模拟器中你不能测试分享 HomeKit 数据库到多个 iOS 设备和用户。你应该安装你的App到多台iOS设备上,在这些设备中输入 iCloud 证书,然后运行你的 App。或者,使用 ad hoc 授权来在多台注册设备中测试你的app,如 Distributing Your App Using Ad Hoc Provisioning in App Distribution Guide 描述。
- 为了测试单用户多设备环境,你应该使用同一个 iCloud 账户在多台设备登陆。
- 为了测试多用户使用同一家庭的智能电器,你应该在多台设备使用不同的 iCloud 账户登陆。
你的 App 应该应该可以允许一个用户邀请客人到你的家中,如 Managing Users 所述。