Sync files to the cloud with FileProvider on macOS

RSS for tag

Discuss the WWDC21 session Sync files to the cloud with FileProvider on macOS.

View Session

Posts under wwdc21-10182 tag

10 Posts
Sort by:
Post not yet marked as solved
2 Replies
1k Views
I've downloaded the Fruit Basket demo project to get a better understanding of how to implement a file provider for macOS. From running the program and looking through some of the code, I believe I have a vague notion about what it does, only I'm still unsure about a lot of things. Where can someone find more information about how Fruit Basket is supposed to work and how it can be used?
Posted
by
Post not yet marked as solved
2 Replies
882 Views
ISSUE: "testL2R" is a local folder added. After uploaded to server, I set its meta as isUploaded=YES and set the badge as SyncDone, and signal its parent. Through fileproviderctl tool, I can see the badge name is correctly set. But finderUI never update unless I go to root folder and reenter Private folder again. I also tried signal workingSet, signal multiple times. Neither of them work. How can I get FinderUI updated?
Posted
by
Post not yet marked as solved
2 Replies
681 Views
What's the purpose of NSFileProviderReplicatedExtension.item(for:request:completionHandler:) call. It seems like it duplicate what the NSFileProviderEnumerator.enumerateItems(for:startingAt:) already returned. I couldn't find where and why this method is called. What happens if it return different types than from the enumerator? Can you please point me to some explanation what is the relation between these two calls?
Posted
by
Post marked as solved
1 Replies
646 Views
The documentation to NSFileProviderManager.signalEnumerator(for:) says Alerts the system to changes in the specified folder’s content. and headers says: Set the containerItemIdentifier to the identifier of the enumerated container that was specified in -[NSFileProviderExtension enumeratorForContainerItemIdentifier:error:] from that, I understand the parameter is any container identifier that returns valid NSFileProviderEnumerator. I think I tried everything already, and it just doesn't seem to work this way. The only container that seems to work is .workingSet I'm not sure whether it suppose to work with anything else than workingSet container, or I'm missing some important part that makes it happen. Does anyone have a sample that works with eg. rootContainer? help. I'm loosing on this one.
Posted
by
Post not yet marked as solved
0 Replies
283 Views
In fetchContents(..) method, I download file item from server by session.downloadTask. And i copy file from response url to temporary url (which is created from NSFileProviderManager.temporaryURL). After this, it's certain that file contents of temporary url is not 0byte (same length with downloaded file) And then i call completionHandler with this temporary url, file provider item. But i cannot open file in finder with error msg - cannot open because the file is empty. let task = downloadItem(named: filename) { url, error in       let dataURL = makeTemporaryURL()       do {         try FileManager.default.copyItem(at: url, to: dataURL)         completionHandler(dataURL, item, nil)       }       catch let error as NSError {         completionHandler(nil, nil, Error.fileDownloadFailed)       }     }     task.progress.cancellationHandler = { completionHandler(nil, nil, NSError(domain: NSCocoaErrorDomain, code: NSUserCancelledError)) }           return task.progress
Posted
by
Post not yet marked as solved
0 Replies
192 Views
Running disk utility this happens, Running First Aid on "Container disk1" Verifying the startup volume will cause this computer to stop responding. Verifying storage system Using live mode. Performing fsck_apfs-n-X-I/dev/diskOs2 Checking the container superblock. Checking the EFl jumpstart record. Checking the space manager. Checking the space manager free queue trees. Checking the object map. Checking the encryption key structures. Checking volume /dev/rdisk1s1. Checking the APFS volume superblock. Checking the object map. Checking the snapshot metadata tree. Checking the snapshot metadata. Checking snapshot 1 of 12 Checking snapshot 2 of 12 warning: Cross Check : Mismatch between extentref entry reference count (2) and calculated froot entry reference count ((pr extent (278751310 + 1) warning: Cross Check : Mismatch between extentref entry reference count (2) and calculated fsroot entry reference count (1) for extent (655464264 + 1) Checking snapshot 3 of 12 Checking snapshot 4 of 12 warning; Cross Check : Mismatch between extentref entry reference count (2) and calculated fsroot entry reference count (1) for extent (354939587 + 1)
Posted
by
Post not yet marked as solved
0 Replies
135 Views
1 CoreFoundation ___exceptionPreprocess (in CoreFoundation) 2 libobjc.A.dylib _objc_exception_throw (in libobjc.A.dylib) 3 Foundation -[NSAssertionHandler handleFailureInFunction:file:lineNumber:description:] (in Foundation) 4 UIKitCore ___UIKIT_DID_NOT_RECEIVE_A_REMOTE_CACONTEXT_FROM_COREANIMATION_INDICATING_A_POSSIBLE_BACKBOARDD_CRASH (in UIKitCore) 5 UIKitCore ___UIKIT_IS_REQUESTING_A_CACONTEXT_FROM_COREANIMATION (in UIKitCore) 6 UIKitCore +[_UIContextBinder createContextForBindable:withSubstrate:] (in UIKitCore) 7 UIKitCore -[_UIContextBinder _contextForBindable:] (in UIKitCore) 8 UIKitCore -[_UIContextBinder updateBindableOrderWithTest:force:] (in UIKitCore) 9 UIKitCore -[_UIContextBinder createContextsWithTest:creationAction:] (in UIKitCore) 10 UIKitCore -[UIWindowScene _prepareForResume] (in UIKitCore) 11 UIKitCore -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] (in UIKitCore) 12 UIKitCore -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] (in UIKitCore) 13 UIKitCore -[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:] (in UIKitCore) 14 FrontBoardServices -[FBSScene updater:didUpdateSettings:withDiff:transitionContext:completion:] (in FrontBoardServices) 15 FrontBoardServices ___94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke_2 (in FrontBoardServices) 16 FrontBoardServices -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] (in FrontBoardServices) 17 FrontBoardServices ___94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke (in FrontBoardServices) 18 libdispatch.dylib __dispatch_client_callout (in libdispatch.dylib) 19 libdispatch.dylib __dispatch_block_invoke_direct (in libdispatch.dylib) 20 FrontBoardServices _FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK (in FrontBoardServices) 21 FrontBoardServices -[FBSSerialQueue _targetQueue_performNextIfPossible] (in FrontBoardServices) 22 FrontBoardServices -[FBSSerialQueue _performNextFromRunLoopSource] (in FrontBoardServices) 23 CoreFoundation _CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION (in CoreFoundation) 24 CoreFoundation ___CFRunLoopDoSource0 (in CoreFoundation) 25 CoreFoundation ___CFRunLoopDoSources0 (in CoreFoundation) 26 CoreFoundation ___CFRunLoopRun (in CoreFoundation) 27 CoreFoundation _CFRunLoopRunSpecific (in CoreFoundation) 28 GraphicsServices _GSEventRunModal (in GraphicsServices) 29 UIKitCore -[UIApplication _run] (in UIKitCore) 30 UIKitCore _UIApplicationMain (in UIKitCore)
Posted
by