russhwolf / multiplatform-settings

A Kotlin Multiplatform library for saving simple key-value data
Apache License 2.0
1.7k stars 67 forks source link

Stabilize `KeychainSettings` #121

Open russhwolf opened 2 years ago

russhwolf commented 2 years ago

Currently, KeychainSettings is considered experimental because I want to be cautious about security-related APIs and I've had very little feedback. Please report this ticket if it is or isn't working for you so I can get a sense of when it's ready to be marked stable.

russhwolf commented 2 years ago

This is NOT blocked by #71. There are currently no known issues, just a lack of testing and feedback.

vanniktech commented 2 years ago

Switched out NSUserDefaultSettings with KeychainSettings. I've tried using it once, got the feedback that it wasn't working. Like the values weren't persisted. Didn't look into it again though. Could be something on my side as well. Lazy: Is there anything that needs to be enabled on iOS side in order to use the Keychain?

russhwolf commented 2 years ago

There shouldn't be any extra config necessary. The sample app has an option to use it so maybe compare against that.

archiegq21 commented 2 years ago

Just wondering if KeychainSetting would also implement ObservableSettings in the future as well?

russhwolf commented 2 years ago

See #71. Unfortunately, I'm not aware of a way to observe keychain updates that works outside of macOS.

lukepistrol commented 1 year ago

Just to let you know we use KeychainSettings in one of our projects and it works nicely!

vanniktech commented 1 year ago

Can't this be closed since 1.0.0 is released?

russhwolf commented 1 year ago

It's still marked experimental in 1.0.0

sebj commented 1 year ago

Using KeychainSettings in a project at the moment, providing a couple extra default properties (kSecAttrAccessible & kSecAttrAccessGroup) – seems to be working well, haven't found any issues (will update if there are any)

Edit: opened #144

ryanw-mobile commented 6 months ago

Can't believe it's now 2024.
I don't know much about iOS, but it works without issues when I only have to store key-string pairs.