(Swift)iOS应用程序崩溃,然后询问HomeKit访问



在我的iOS应用程序中,当我从手机上删除该应用程序并重建应用程序时,启动应用程序时,应用程序会从尝试访问我设置的HMHomeManager变量,然后要求获得HomeKit访问权限。

我有什么可以做的事情来让应用程序要求homekit的许可, 它崩溃了吗?

我尝试将其放在appDelegate文件中。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    //push notifications
    registerPushNotifications()
    let home = HMHomeManager()
    home.accessibilityActivate()
    return true
}

,但它不起作用。感谢您的帮助!

编辑:

这是崩溃的代码,当第一个视图控制器加载时,这就是调用。

//adding the accessories
func addAcessories() {
    for accessory in (homeManager.primaryHome?.accessories)! { // <-- crashes right here
        if accessory.isBridged == true {
            devices.append(accessory)
            print(accessory.name)
        }
    }
    print("")
}

编辑:当它崩溃时,它在控制台中给了我(lldb),而文本编辑器中的Thread 1: EXC_BREAKPOINT

我还尝试将其放入我的appDelegate文件中。我尝试使AppDelegate符合HMHomeManagerDelegate

class AppDelegate: UIResponder, UIApplicationDelegate, HMHomeDelegate, HMHomeManagerDelegate {

并在我的ApplicationDidFinishLoadingWithOptions方法中调用此。

 let home = HMHomeManager()
    home.accessibilityActivate()
    home.delegate = self
    homeKit.addAcessories()
    homeKit.addCharacteristics()
    return true

您必须将NSHomeKitUsageDescription添加到info.plist中以防止崩溃。

这将自动要求许可。另外,您还必须为其添加描述,就像iOS 10一样。您只能说"(应用程序名称)需要访问家用套件",但是您可以将其做出想要的内容。

编辑:尝试从AppDelegate

中删除HomeKit代码

相关内容

  • 没有找到相关文章

最新更新