Я создаю приложение для Apple Watch, которое требует расширенного времени выполнения. Я реализовал это, написав ниже в HostingController, и он отлично работает в течение двух дней разработки. Но теперь это перестало работать. Приложение все еще работает, но нет никаких признаков того, что оно работает в фоновом режиме, и глифа бегущего человека на вершине Apple Watch больше нет. Как это может произойти?
Я не был уверен, что HostingController был правильным классом для расширения с помощью WKExtendedRuntimeSessionDelegate, поэтому я также попытался расширить ExtensionDelegate. Тот же результат: никаких признаков того, что я это реализовал. Отладка также не попадает в эти строки.
class HostingController: WKHostingController<AnyView>, WKExtendedRuntimeSessionDelegate {
func extendedRuntimeSession(_ extendedRuntimeSession: WKExtendedRuntimeSession, didInvalidateWith reason: WKExtendedRuntimeSessionInvalidationReason, error: Error?) {
// Track when your session starts.
}
func extendedRuntimeSessionDidStart(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
// Finish and clean up any tasks before the session ends.
}
func extendedRuntimeSessionWillExpire(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
// Track when your session ends.
// Also handle errors here.
}
override var body: AnyView {
return AnyView(ContentView().environmentObject(Settings()))
}
let runtimeSession = WKExtendedRuntimeSession();
override init() {
super.init()
runtimeSession.delegate = self;
runtimeSession.start();
}
}