Releases: Jason-Holt-Digital/icloud_storage_plus
Releases · Jason-Holt-Digital/icloud_storage_plus
Release list
2.1.2
Fixed
- iOS
readInPlace/readInPlaceBytesnow marshal the post-download continuation back onto the main actor before invokingreadInPlaceDocument/readInPlaceBinaryDocument. The2.1.0async rewrite ofwaitForDownloadCompletioninadvertently removed theDispatchQueue.mainhop that the callback-based waiter guaranteed, lettingUIDocument.open(completionHandler:)be called from the Swift cooperative pool. This restores the1.2.2invariant thatUIDocumentwork runs under the main queue per Apple's completion-handler contract and avoids the_os_object_retain"Resurrection of an object" crash that motivated that fix. - macOS
uploadFile,readInPlace,readInPlaceBytes,writeInPlace,writeInPlaceBytesnow run theirTaskbodies on the main actor. Because the macOSFlutterMethodChannelis registered without a background task queue,FlutterResultmust be invoked on the main thread; the previousTask { [self] in ... }blocks resumed on the cooperative pool afterawait, causingresult(...)to be called off-main in preflight error paths.
Closes the threading concerns raised on #27, #26, and #25.
Full Changelog: 2.1.1...2.1.2
1.2.0
Added
listContents()API for immediately-consistent container listings using
FileManager.contentsOfDirectorywith URL resource valuesContainerItemmodel withrelativePath,downloadStatus,isDownloading,
isUploaded,isUploading,hasUnresolvedConflicts,isDirectory, and
isDownloadedconvenience getter- iCloud placeholder file resolution (
.originalName.icloudstubs on iOS /
pre-Sonoma macOS; APFS dataless files on Sonoma+) - Hidden file filtering (
.DS_Store,.Trash, etc.) via resolved-name prefix
Changed
ICloudFiledartdoc cross-referencesContainerItemwith consistency guidance- README expanded with
gathervslistContentscomparison table, placeholder
files section, andContainerItemmodel reference - Fixed typo in
InvalidArgumentExceptiondoc comment
See CHANGELOG.md for full details.
1.1.1
1.1.1
Fixed
- GitHub Actions automated publishing trigger for tags like
1.2.3(novprefix). - Removed example ephemeral LLDB helper files that were causing
dart pub publishvalidation warnings.
1.1.0
Swift Package Manager support
Full Changelog: 1.0.1...1.1.0
1.0.1
Fixed
- Avoid reading
NSMetadataItemoff the query thread by runningNSMetadataQueryon a dedicated operation queue and disabling updates during snapshot reads. - Ensure
relativePathgeneration is path-boundary-aware (avoid prefix-collision edge cases).
Changed
- Clarify benchmark documentation around
standardizedFileURLbehavior.
1.0.0 - Initial Release
1.0.0 — Release notes (highlights)
- Path-based transfers for large files: uploadFile() / downloadFile() move files by local path without sending full file bytes over platform channels.
- Coordinated in-place reads/writes for small files: readInPlace / writeInPlace (+ *Bytes variants) for “transparent sync” of text/JSON and small binaries.
- Progress streaming: transfer progress is exposed via an EventChannel as structured ICloudTransferProgress events (including error events).
- Better listing/metadata: gather() returns GatherResult (files + invalidEntries), and metadata includes richer sync-state fields and directory handling.
- Safer API surface: stronger Dart-side path validation plus clearer error codes (including initialization and timeout scenarios) across iOS/macOS.