credential_manager_ios 3.2.0
credential_manager_ios: ^3.2.0 copied to clipboard
iOS implementation of the credential_manager plugin using Keychain and Autofill.
3.2.0 #
- Fixes #92: passkey registration/authentication silently hangs since 3.0.1.
savePassKeyCredentialsandgetPasskeyCredentialscreatedPasskeyServiceas a local variable with no strong reference held anywhere; once the enclosing method returned, it deallocated immediately. SinceASAuthorizationController's delegate and presentation-context-provider are held weakly, this silently dropped the completion callback (success or failure) and the DartFuturenever resolved — no exception, no error code, forever.[weak self]inPasskeyService's own completion closures (added in 3.0.1's SwiftLint cleanup) is what exposed this: previously an unintentional retain cycle kept the object graph alive long enough to mask the bug. CredentialManagerPluginnow holds a strong reference to each in-flightPasskeyServicefor the duration of its call, removed once its ownFlutterResultfires. Uses a collection rather than a single slot, so overlapping passkey calls (e.g. register and get in flight together) don't cause one call'sPasskeyServiceto release another's out from under its still-active authorization.- No breaking changes to the public Dart API
3.1.0 #
- Bumped
credential_manager_platform_interfaceto^3.0.0(required — the previously-declared^2.0.8resolves to a published version that predates thenonceparameter this package'ssaveGoogleCredentialoverride already relies on) savePasswordCredentialsandsaveGoogleCredentialnow throw an explicitCredentialException(code 103, "Not implemented") instead of silently reporting success without saving (savePasswordCredentials) or surfacing an uncaughtMissingPluginExceptionfrom a method-channel call with no native handler (saveGoogleCredential) — neither has a native Swift implementation on iOS today- No breaking changes to the public Dart API
3.0.1 #
- Added SwiftLint configuration and CI checks; fixed all reported violations (force casts replaced with safe casts, wrapped long lines, aligned switch cases, extracted long functions)
- No functional or API changes
3.0.0 #
- Added Swift Package Manager (SPM) support via a new
Package.swiftmanifest, alongside the existing CocoaPods podspec - Moved Swift sources from
ios/Classestoios/credential_manager_ios/Sources/credential_manager_ios(single source of truth for both CocoaPods and SPM) - No breaking changes to the Dart API; existing CocoaPods-based apps continue to work unchanged
2.0.8 #
- Added
isGmsAvailableto platform interface - Handle
exception code 209for Google Play Services not available - on Android, Google account is not logged in, the plugin will launch Google Sign-In flow.
- Updated documentation
2.0.7 #
- Fixed plugin score issues
2.0.6 #
- Removed plugin_platform_interface dependency
2.0.5 #
- Initial release of iOS implementation package
- iOS-specific implementation using Keychain and Autofill
- Supports password credentials, passkeys, and Google Sign-In
- Includes iOS-specific passkey attestation parsing