You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
macOS: sandbox failures now say which entitlement is missing — com.apple.security.files.downloads.read-write when the Downloads write fails, com.apple.security.network.client when the download fails.
Windows saveAs converts initialDirectory and dialogTitle from UTF-8 with MultiByteToWideChar.
Breaking: Android saveFile now throws a PlatformException on failure instead of returning an error message as the path.
Threading and streaming hardening across platforms:
Android: file copies run on a supervised IO scope and reply exactly once; saveAs survives rotation while the picker is open, fails cleanly when the Activity is destroyed or no app can show the picker, and rejects a second saveAs while one is open instead of silently dropping the first. Error details no longer carry a Throwable the channel codec cannot encode.
iOS: temp-file writes and copies run off the main thread, payloads are no longer copied into [UInt8], the picker is presented on the top-most controller, and a second saveAs while one is open is rejected.
macOS: copies stream in 1 MiB chunks off the main thread and failures throw instead of returning "Failed to save file" as the path.
Windows: the dialog is owned by the app window, uses heap buffers instead of a 1 MiB stack array and fixed MAX_PATH statics (a long file name aborted the process), builds the filter correctly, converts names and paths from UTF-8, and reports dialog errors instead of treating them as cancel.
Web: cancelling the File System Access picker resolves to null like other platforms; a failed stream is aborted without masking the original error.
saveAsStream deletes its temp file when the stream fails.
Platform channels are now generated with Pigeon from pigeons/messages.dart (regenerate with tool/pigeon.sh), so argument mismatches fail at compile time. Windows saveAs returns the path as a UTF-8 string. macOS deployment target is now 10.15.
Removed the unused FileUtils.kt and the duplicate macos/Classes sources — macOS builds from macos/file_saver/Sources for both CocoaPods and Swift Package Manager.
Documented macOS entitlement file naming and Windows SDK requirements.