iOS 13 Planen Sie iOS-Hintergrundaufgaben


8

Ich implementiere das BackgroundTasks Framework zum Aktualisieren der Daten. Aber ich habe das folgende Problem

Could not schedule refreshApp: Error Domain=BGTaskSchedulerErrorDomain Code=1 "(null)"
Could not schedule data featch: Error Domain=BGTaskSchedulerErrorDomain Code=1 "(null)"
2019-10-01 19:19:32.550320+0530 SOBackgroundTask[34131:1129470] Can't end BackgroundTask: no background task exists with identifier 3 (0x3), or it may have already been ended. Break in UIApplicationEndBackgroundTaskError() to debug.

Antworten:


15

Hier sind mögliche Fehlercodes zum Domain=BGTaskSchedulerErrorDomainExtrahieren aus ObjC-Headern mit einigen Erläuterungen.

BGTaskSchedulerErrorCodeUnavailable = 1// Die Planungsfunktion für Hintergrundaufgaben ist für diese App / Erweiterung nicht verfügbar. Die Aktualisierung der Hintergrund-App wurde möglicherweise in den Einstellungen deaktiviert.

BGTaskSchedulerErrorCodeTooManyPendingTaskRequests = 2// Die Aufgabenanforderung konnte nicht gesendet werden, da zu viele ausstehende Aufgabenanforderungen dieses Typs vorhanden sind. Brechen Sie einige vorhandene Aufgabenanforderungen ab, bevor Sie es erneut versuchen.

BGTaskSchedulerErrorCodeNotPermitted = 3 // Die Aufgabenanforderung konnte nicht gesendet werden, da der entsprechende Hintergrundmodus nicht im UIBackgroundModes-Array enthalten ist oder seine Kennung im BGTaskSchedulerPermittedIdentifiers-Array in der Info.plist der App nicht vorhanden war.


11

Die Lösung besteht darin, auf einem Gerät ausgeführt zu werden. Ich lief auf Simulator. Es wurde jedoch angezeigt, dass die Aktualisierung der Hintergrund-App in den Einstellungen aktiviert wurde, während sie auf dem Simulator ausgeführt wurde.


2

Ich habe auf einem realen Gerät (iOS13.2 und iOS13.2.2) getestet, aber es ist das gleiche Ergebnis.

Error Domain = BGTaskSchedulerErrorDomain Code = 2 "(null)" BackgroundTask kann nicht beendet werden: Es gibt keine Hintergrundaufgabe mit der Kennung 37 (0x25) oder sie wurde möglicherweise bereits beendet. Brechen Sie UIApplicationEndBackgroundTaskError () zum Debuggen ein.

Error Domain = BGTaskSchedulerErrorDomain Code = 1 "(null)" BackgroundTask kann nicht beendet werden: Es gibt keine Hintergrundaufgabe mit der Kennung 113 (0x71) oder sie wurde möglicherweise bereits beendet. Brechen Sie UIApplicationEndBackgroundTaskError () zum Debuggen ein.

Es scheint, dass es noch einen Fehler gibt.

https://forums.developer.apple.com/thread/121990


Wenn ich den Debug-Befehl ausführe, ist der Zeitplan erfolgreich, aber ich erhalte den gleichen Fehler (Code 1) auf dem realen Gerät, wenn es eine Aufgabe plant. (iOS 13.2.3)
Teo

@Teo was hast du gemeint? erfolgreich auf Simulator? und auf echtem Gerät fehlgeschlagen?
user1462586

0

Bitte überprüfen Sie, ob Sie die Registrierung BGTaskSchedulerPermittedIdentifiersin der Datei info.plist Ihres Projekts verpassen .


0

Zum:

BGTaskSchedulerErrorDomain error 3

Suchen Sie in der Projektdatei .xcodeprojnach dem entsprechenden Ziel. Wechseln Sie dann zur Registerkarte "Info" und zu den benutzerdefinierten iOS-Zieleigenschaften, und überprüfen Sie, ob die zulässigen IDs ( BGTaskSchedulerPermittedIdentifiers) für den Hintergrund-Taskplaner ( ) hinzugefügt wurden.

Dies löste mein Problem beim Hinzufügen BackgroundTaskszu einem vorhandenen Projekt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.