Swift: фоновая задача работает в симуляторе Apple Watch, но не на устройстве. - PullRequest
0 голосов
/ 09 мая 2020

Я сделал Apple Watch Complication для просмотра даты хиджры, поэтому он должен обновляться ежедневно, для этого в ComplicationController.swift я сделал фон расписания следующим образом: фоновая задача выглядит так:

    func handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>) {
    // Sent when the system needs to launch the application in the background to process tasks. Tasks arrive in a set, so loop through and process each one.
    for task in backgroundTasks {
        // Use a switch statement to check the task type
        switch task {
        case let backgroundTask as WKApplicationRefreshBackgroundTask:
            // Be sure to complete the background task once you’re done.
            ComplicationController().updateComplications()
            backgroundTask.setTaskCompletedWithSnapshot(false)

        case let snapshotTask as WKSnapshotRefreshBackgroundTask:
            // Snapshot tasks have a unique completion call, make sure to set your expiration date
            snapshotTask.setTaskCompleted(restoredDefaultState: true, estimatedSnapshotExpiration: Date.distantFuture, userInfo: nil)
        case let connectivityTask as WKWatchConnectivityRefreshBackgroundTask:
            // Be sure to complete the connectivity task once you’re done.
            connectivityTask.setTaskCompletedWithSnapshot(false)
        case let urlSessionTask as WKURLSessionRefreshBackgroundTask:
            // Be sure to complete the URL session task once you’re done.
            urlSessionTask.setTaskCompletedWithSnapshot(false)
        case let relevantShortcutTask as WKRelevantShortcutRefreshBackgroundTask:
            // Be sure to complete the relevant-shortcut task once you're done.
            relevantShortcutTask.setTaskCompletedWithSnapshot(false)
        case let intentDidRunTask as WKIntentDidRunRefreshBackgroundTask:
            // Be sure to complete the intent-did-run task once you're done.
            intentDidRunTask.setTaskCompletedWithSnapshot(false)
        default:
            // make sure to complete unhandled task types
            task.setTaskCompletedWithSnapshot(false)
        }
    }
}

Все это отлично работает в симуляторе, но не на реальном устройстве! произошло еще одно - не знаю, связано ли это -: я получаю это сообщение после запуска приложения: libMobileGestalt MGIOKitHelper.m: 239: не удалось получить данные

...