Skip to content

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 into
flet-dev:flet-0.86from
EH-MLS:fix/flet-secure-storage-pin-10.3.1
Jun 17, 2026
Merged

Conversation

@EH-MLS

@EH-MLS EH-MLS commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

What

Bumps the flutter_secure_storage pin in the flet-secure-storage extension from 10.0.0 to 10.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.010.3.1).

I intentionally left the lockfiles out of this PR: client/pubspec.lock and client/ios/Podfile.lock need regenerating via flutter pub get (and pod install) so the transitive flutter_secure_storage_darwin 0.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.0 pin resolves flutter_secure_storage_darwin 0.2.0, which has a Dart→Swift key-name mismatch that makes MacOsOptions(usesDataProtectionKeychain: false) inert — the data-protection keychain is always used. On an unsigned/dev macOS app (no provisioning profile, so no keychain-access-groups entitlement) every write then fails with errSecMissingEntitlement (-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:

Both ship transitively via flutter_secure_storage 10.3.1 (current latest stable), so bumping the umbrella pin to 10.3.1 restores a working MacOsOptions(usesDataProtectionKeychain: false) and removes the -34018 failure.

Why bump the pin instead of using dependency_overrides

The [tool.flet.flutter.pubspec.dependency_overrides] workaround suggested in #6586 only fixes flet build, because that path compiles the Flutter client from source and re-reads the pubspec. It does not help flet run: the prebuilt flet-desktop / flet-desktop-full client bundles this extension (its framework ships inside the prebuilt app), built against the default 10.0.0 pin, 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) and flet run (the prebuilt client, once a new flet-desktop release ships with this pin).

Verification

With flutter_secure_storage 10.3.1 and MacOsOptions(usesDataProtectionKeychain: false), an unsigned (ad-hoc-signed, no provisioning profile) macOS app successfully wrote and read the login keychain with no -34018. With the default 10.0.0 pin the same app fails on every write.

Notes

Summary by Sourcery

Bug Fixes:

  • Resolve macOS keychain write failures on unsigned/dev apps by updating flutter_secure_storage to a version that includes the fixed darwin implementation.

@CLAassistant

CLAassistant commented Jun 15, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We've reviewed this pull request using the Sourcery rules engine

@EH-MLS
EH-MLS changed the base branch from main to flet-0.86 June 17, 2026 12:58
@EH-MLS

EH-MLS commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

Retargeted this to flet-0.86 so it can ride the current release cycle (since main hasn't moved). flet-0.86 is only one commit ahead of main, and that commit doesn't touch this extension's pubspec.yaml, so the diff is unchanged (still the single pin line) and it merges cleanly. Happy to move it back to main if you'd prefer — edits-by-maintainers is on either way.

@FeodorFitsner
FeodorFitsner merged commit a720070 into flet-dev:flet-0.86 Jun 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

flutter_secure_storage pinned to 10.0.0 — secure storage unusable on unsigned/dev macOS (darwin 0.2.0 bugs fixed upstream)

3 participants