ApplePersistenceConfig
Apple-platform configuration for Kalium's encrypted key/value storage.
Consumers (host apps) construct this and hand it to CoreLogic. It is then carried through to every Apple-side site that talks to the iOS Keychain.
Extend this class — do NOT add new top-level parameters to CoreLogic — when new iOS Keychain options (access group, accessibility class, synchronizable, etc.) need to be exposed.
Properties
When Kalium-managed entries can be read, as the iOS Keychain kSecAttrAccessible value. Null keeps Apple's default, KeychainAccessibility.WhenUnlocked, under which Kalium can't read its tokens and database keys while the device is locked, e.g. when the app is launched in the background by a push. Apps that run Kalium in the background should use KeychainAccessibility.AfterFirstUnlockThisDeviceOnly. Must be stable across app versions, like serviceName: it is part of every Keychain lookup, so entries stored with a different value are neither found nor overwritten (storing one again fails), and they are not migrated. Applies on iOS only; the file-based macOS keychain ignores it.
Stable identifier used as the iOS Keychain kSecAttrService value for all Kalium-managed entries (auth tokens, passphrases, per-user config). Must be stable across app reinstalls — typically the host app's bundle identifier. Must NOT be derived from NSHomeDirectory(), which embeds the iOS Application UUID and changes on every reinstall, orphaning every previously stored entry.