fix(flet-secure-storage): bump flutter_secure_storage 10.0.0 -> 10.3.1 to fix macOS data-protection keychain (-34018) on unsigned/dev apps - #6591
Merged
FeodorFitsner merged 1 commit intoJun 17, 2026
Conversation
Contributor
Author
|
Retargeted this to |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Bumps the
flutter_secure_storagepin in theflet-secure-storageextension from10.0.0to10.3.1:sdk/python/packages/flet-secure-storage/src/flutter/flet_secure_storage/pubspec.yaml— the source-of-truth pin (flutter_secure_storage: 10.0.0→10.3.1).I intentionally left the lockfiles out of this PR:
client/pubspec.lockandclient/ios/Podfile.lockneed regenerating viaflutter pub get(andpod install) so the transitiveflutter_secure_storage_darwin0.2.0 → ≥ 0.3.2 (currently 0.4.0) bump and its sha256 hashes land correctly — hand-editing them would produce an inconsistent lockfile. Happy to push the regenerated lockfiles, or for a maintainer to regenerate them in CI. Allow edits by maintainers is enabled.Why
The current
10.0.0pin resolvesflutter_secure_storage_darwin 0.2.0, which has a Dart→Swift key-name mismatch that makesMacOsOptions(usesDataProtectionKeychain: false)inert — the data-protection keychain is always used. On an unsigned/dev macOS app (no provisioning profile, so nokeychain-access-groupsentitlement) every write then fails witherrSecMissingEntitlement(-34018), and the login-keychain escape hatch is unreachable. That makes it effectively impossible to persist app data/secrets while developing locally on macOS.Fixed upstream in
flutter_secure_storage_darwin:kSecUseDataProtectionKeychainfix in 0.3.2 (fix: only add kSecUseDataProtectionKeychain if param is set to true juliansteenbakker/flutter_secure_storage#1136)Both ship transitively via
flutter_secure_storage 10.3.1(current latest stable), so bumping the umbrella pin to10.3.1restores a workingMacOsOptions(usesDataProtectionKeychain: false)and removes the-34018failure.Why bump the pin instead of using
dependency_overridesThe
[tool.flet.flutter.pubspec.dependency_overrides]workaround suggested in #6586 only fixesflet build, because that path compiles the Flutter client from source and re-reads the pubspec. It does not helpflet run: the prebuiltflet-desktop/flet-desktop-fullclient bundles this extension (its framework ships inside the prebuilt app), built against the default10.0.0pin, so it still contains the buggy darwin 0.2.0 keys.Bumping the single source-of-truth pin is the only change that fixes both paths:
flet build(compiled from source) andflet run(the prebuilt client, once a newflet-desktoprelease ships with this pin).Verification
With
flutter_secure_storage 10.3.1andMacOsOptions(usesDataProtectionKeychain: false), an unsigned (ad-hoc-signed, no provisioning profile) macOS app successfully wrote and read the login keychain with no-34018. With the default10.0.0pin the same app fails on every write.Notes
CHANGELOG.mdentry and/or retarget to the activerelease/v{version}branch if you'd prefer — just let me know.Summary by Sourcery
Bug Fixes: