6

Quelle est cette erreur lors de la création d'un URLBGTask dans WatchOS4 sur le simulateur?WKRefreshBackgroundTask cleanupStorage Erreur lors de la tentative d'accès au fichier

2017-09-28 16: 05: 26,452999 + 0900 MiFollowers WatchKit Extension [4628: 4.012.814] [bg_app_refresh] - [WKRefreshBackgroundTask cleanupStorage] _block_invoke: 213: erreur en essayant d'atteindre file: /// Users/Ryuuzaki/Bibliothèque /Developer/CoreSimulator/Devices/2E4D6389-93B7-4542-B07F-9A02C720B9AF/data/Containers/Data/PluginKitPlugin/FA4415DF-D984-4394-80B9-EDA199AB587E/Library/com.apple.watchkit/bktaskapp_(null): Domaine d'erreur = NSCocoaErrorDomain Code = 260 "Le fichier" bktaskapp_ (null) "n'a pas pu être ouvert car il n'y a pas un tel fichier." UserInfo = {NSURL = fichier: /// Utilisateurs/ryuuzaki/Bibliothèque/Développeur/CoreSimulator/Périphériques/2E4D6389-93B7-4542-B07F-9A02C720B9AF/data/Conteneurs/Données/PluginKitPlugin/FA4415DF-D984-4394-80B9-EDA199AB587E/Bibliothèque/com.apple.watchkit/bktaskapp_ (null), NSFilePath =/Utilisateurs/ryuuzaki/Bibliothèque/développeur/CoreSimulator/périphériques/2E4D6389-93B7-4542-B07F-9A02C720B9AF/data/conteneurs/Data/PluginKitPlugin/FA4415DF-D984- 4394-80B9-EDA199AB587E/Bibliothèque/com.apple.watchkit/bktaskapp_ (null), NSUnderlyingError = {0x79b0e340 erreur domaine = code NSPOSIXErrorDomain = 2 "Aucun fichier ou répertoire"}}

Ceux d'entre vous brillants esprits là-bas savoir ce que tout cela signifie?

+0

Pourriez-vous résoudre ce problème? – Dirk

+0

Pas encore, jusqu'à présent, j'ai passé des mois avec Apple Developer Support depuis que j'ai payé pour le compte de développeur, mais ils n'ont pas encore de réponse claire. –

Répondre

2

Je recevais cela aussi. M'a rendu fou pour les deux derniers jours.

Je ne sais toujours pas si c'est un bug ou une "fonctionnalité" pour vous obliger à utiliser la propriété userInfo. Cela se produit si vous n'obtenez pas la propriété userInfo de la tâche d'actualisation d'arrière-plan dans la méthode handle(_ backgroundTasks). Tout accès de la propriété fonctionne. Une solution de contournement simple pour se débarrasser de l'erreur consiste à planifier votre actualisation d'arrière-plan suivante dans la méthode handle avec backgroundTask.userInfo dans le paramètre userInfo: qui continue à affecter nil à la tâche suivante.

WKExtension.shared().scheduleBackgroundRefresh(withPreferredDate: refreshDate, userInfo: backgroundTask.userInfo) { (error) in 
    if let error = error { 
     print ("Background task error:\(error.localizedDescription)") 
    } 
} 

Bien sûr cette solution de contournement signifie que vous ne pourrez pas utiliser userInfo. Un meilleur code pourrait être de coller quelque chose là-dedans comme la date de planification ou un identifiant pour la tâche, ou un dictionnaire de [String:Any] pour les deux.

+0

Merci pour cela. Un problème aussi bizarre. Je ne suis pas sûr si ça faisait du mal, mais je suis reconnaissant de ne plus avoir à le voir lors du débogage. La façon dont je l'ai fait est simplement de créer une variable au niveau de la classe appelée userInfoAccess, puis de simplement faire userInfoAccess = backgroundTask.userInfo dans ma boucle de tâches en arrière-plan de la poignée. De cette façon, je peux toujours utiliser l'actualisation de l'arrière-plan userInfo. – Marconelly