2017-09-28 14 views
6

SimulatorでWatchOS4でURLBGTaskを作成するとこのエラーが発生しますか?WKRefreshBackgroundTask cleanupStorageファイルに到達しようとしたときにエラーが発生しました

2017年9月28日16:05:26.452999 + 0900 MiFollowers WatchKit拡張[4628:4012814] [bg_app_refresh] - [WKRefreshBackgroundTask cleanupStorage] _block_invoke:213:エラーがファイルに到達しようとする:///ユーザ/ ryuuzaki /ライブラリ/Developer/CoreSimulator/Devices/2E4D6389-93B7-4542-B07F-9A02C720B9AF/data/Containers/Data/PluginKitPlugin/FA4415DF-D984-4394-80B9-EDA199AB587E/Library/com.apple.watchkit/bktaskapp_(null):エラードメイン= NSCocoaErrorDomain Code = 260 "このファイルがないため、ファイル" bktaskapp_(null) "を開くことができませんでした。 UserInfo = {NSURL = file:/// Users/ryuuzaki/Library/Developer/CoreSimulator/Devices/2E4D6389-93B7-4542-B07F-9A02C720B9AF/data /コンテナ/データ/ PluginKitPlugin/FA4415DF-D984-4394-80B9-EDA199AB587E /ライブラリ/ com.apple.watchkit/bktaskapp_(null)、NSFilePath =/Users/ryuuzaki /ライブラリ/開発者/ CoreSimulator/Devices/2E4D6389-93B7-4542-B07F-9A02C720B9AF/data/Containers/Data/PluginKitPlugin/FA4415DF-D984- 4394-80B9-EDA199AB587E /ライブラリ/ com.apple.watchkit/bktaskapp_(ヌル)、NSUnderlyingError = 0x79b0e340 {エラードメイン= NSPOSIXErrorDomainコード= 2 "そのようなファイルまたはディレクトリ"}}

あなたのどれそこに明るい心これが何を意味するのかを知っている?

+0

この問題を解決できますか? – Dirk

+0

まだ、私は開発者アカウントの代金を支払って以来、アップルデベロッパーサポートに何ヶ月も費やしてきましたが、まだまっすぐな答えを出していません。 –

答えて

2

私もこれを取得していました。最後の2日間、ナットを運転してください。

userInfoプロパティを使用する必要があるバグや「機能」がまだわかりません。これは、handle(_ backgroundTasks)メソッドのバックグラウンド更新タスクからuserInfoプロパティを取得しないと発生します。プロパティのアクセスはすべて動作します。このエラーを回避する簡単な回避策は、handleメソッドで次のバックグラウンドリフレッシュをbackgroundTask.userInfouserInfo:パラメータに設定して、nilを次のタスクに割り当て続けます。

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

もちろん、この回避策はuserInfoを使用できないことを意味します。より良いコードは、スケジューリング日やタスクの識別子など、そこに何かを貼り付けるか、またはその両方のために[String:Any]の辞書にすることができます。

+0

ありがとうございます。そのような奇妙な問題。私はそれが何らかの害を及ぼしているかどうかはわかりませんが、私はデバッグするときにそれを見る必要はありません。私が行ったのは、単純にクラスレベルの変数userInfoAccessを作成してから、私のバックグラウンドタスクループでuserInfoAccess = backgroundTask.userInfoを実行することです。このようにして、私はまだ背景のリフレッシュuserInfoを使用することができます。 – Marconelly

関連する問題