In my iOS application, when I delete the app off of my phone and rebuild it, when I launch it the app crashes from trying to access the HMHomeManager variables I have set up, and THEN asks for permission for HomeKit access.
Is there anything I can do to have the app ask for permission for HomeKit, before it crashes?
I tried putting this in my appDelegate
file.
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
}
But it's not working. Thanks for the help!
edit:
This is the code that crashes, this is called when the first view controller loads.
//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("")
}
edit:
When it crashes, it gives me (lldb)
in the console, and Thread 1: EXC_BREAKPOINT
in the text editor.
I've also tried putting this in my appDelegate
file.
I've tried making appDelegate conform to HMHomeManagerDelegate
class AppDelegate: UIResponder, UIApplicationDelegate, HMHomeDelegate, HMHomeManagerDelegate {
and calling this in my ApplicationDidFinishLoadingWithOptions
method.
let home = HMHomeManager()
home.accessibilityActivate()
home.delegate = self
homeKit.addAcessories()
homeKit.addCharacteristics()
return true