我是不是需要拥有 Apple Developer ID 才能使用 HomeKit 框架?

Posted

技术标签:

【中文标题】我是不是需要拥有 Apple Developer ID 才能使用 HomeKit 框架?【英文标题】:Do I need to have an apple Developer ID to use HomeKit framework?我是否需要拥有 Apple Developer ID 才能使用 HomeKit 框架? 【发布时间】:2014-12-28 01:21:33 【问题描述】:

您好,我正在尝试向数据库添加主页,但出现错误。

[self.homeManager addHomeWithName:@"Enfield" completionHandler:^(HMHome *home, NSError *error)

    if (error != nil) 
        NSLog(@"Unable to add home. \n%@", error);
     else 
        NSLog(@"Home added Sucessfully \n%@", home);
    
];

我收到一个错误:

Error Domain=NSCocoaErrorDomain Code=4097 “操作无法完成。(Cocoa 错误 4097。)”(连接到名为 com.apple.homed.xpc 的服务) UserInfo=0x7f9e9b965290 NSDebugDescription=连接到名为 com 的服务.apple.homed.xpc

我查看了其他帖子,看起来您必须拥有开发人员 ID,但这没有任何意义 Apple 允许开发没有 ID 的所有东西,但不允许开发 HomeKit。有人可以对此有所了解。

编辑:

GitHub 链接https://github.com/zlDev/HomeKitDemo

NinjaEDIT:一些代码

【问题讨论】:

【参考方案1】:

要查看是否有错误,请不要测试 error。相反,测试应该是

if (home == nil) 

如果有错误,那么error指向错误的描述;如果没有错误,error 可能为 nil 或可能指向垃圾。


好的,我挖得更深了。

错误connection to service named com.apple.homed.xpc 表示 Xcode 无法连接到 HomeKit Accessory Simulator,它通常会通过名为 com.apple.homed.xpc 的 Mach 端口来连接。 (.xpc 是用于程序间通信的线索。它不是 URL。)

HomeKit 文档说要启动 HK Simulator,您需要将 HomeKit 添加到项目功能列表中,然后使用菜单命令 Xcode→Open Developer Tool→HomeKit Accessory Simulator。当我创建一个虚拟 ios 项目并尝试添加 HomeKit 功能时,Xcode 起初拒绝了,因为我还没有同意 Apple 的最新服务条款。

这回答了你的问题。如果没有 Apple Developer ID,您将无法开启 HomeKit 功能。

它没有回答的是开发者 ID 是否必须是付费开发者 ID。设置一个免费的开发者 ID 可能就足够了。这为 Apple 提供了一种机制,让您同意 Apple 的服务条款,这可能是他们目前所需要的。

但即使我终于打开了 HomeKit 功能,菜单命令仍然不可用。显然,您还需要访问 developer.apple.com/downloads 并下载“用于 Xcode 6.1 的硬件 IO 工具”,其中包括 HomeKit 附件模拟器“。您将需要一个 Apple 开发人员 ID(某种级别)才能下载该文件。

【讨论】:

没有区别。这段实际代码sn-p直接取自WWDC大会,所以一定是对的。 所以我明白了。不过,这是相当草率的编码。任何采用NSError** 参数的方法的通常规则正如我所描述的:该方法将有一些其他方式来表示失败,并且您应该只在出现错误时检查错误参数。 -addHomeWithName:completionHandler: 记录了如果出现错误,它会在回调中将 home 设置为 nil。它还记录了它在成功时将error 设置为 nil,但这是不寻常的,并且是一个不好的习惯。从技术上讲,我想这是一个NSError* 而不是NSError** 参数 感谢详细的回复。免费的 acc 不起作用它实际上说 acc 必须在开发程序中注册才能启用 HomeKit。很抱歉不能 +1 没有足够的声望。 如果您注册了免费的 Safari 开发者计划怎么办?只是一个想法。 可能会起作用。我加入了 iOS 程序,所以现在我不知道。也许其他人可以稍后再试一试,然后将结果更新给我们。

以上是关于我是不是需要拥有 Apple Developer ID 才能使用 HomeKit 框架?的主要内容,如果未能解决你的问题,请参考以下文章

获得证书和私钥对是不是需要注册 Apple Developer 计划?

将开发者添加到 Apple Developer 帐户

Apple Watch 应用程序是不是需要随附的 iOS 应用程序才能拥有完整的用户界面?

无法在 Apple Developer 网站中创建分发认证

我是不是必须注册并向 Apple Developer 付款才能创建适用于 iOS 的应用程序

Apple Developer 此应用程序是不是使用广告标识符 (IDFA)?