Xamarin.iOS 中的 KeyChain 访问是基于苹果的 Keychain Services API 的封装。如果你遇到 KeyChain 标识不持久的问题,可以尝试以下步骤来解决:
Entitlements.plist
文件中设置了正确的 Keychain 访问组。例如: <key>com.apple.developer.default-keychain-access-group</key> <string>$(TeamIdentifierPrefix)com.yourcompany.yourapp</string>SecKeyChain
类或者其他可靠的 KeyChain 访问库,如 KeychainAccess
。kSecAttrAccessible
。例如: var query = new SecRecord(SecKind.GenericPassword) { Service = "com.yourcompany.yourapp", Account = "user_identifier", Accessible = SecAccessible.WhenUnlockedThisDeviceOnly };Service
和 Account
字段是唯一的,以避免冲突。Info.plist
文件中,确保有以下条目: <key>NSUbiquitousContainers</key>
<dict>
<key>$(TeamIdentifierPrefix)com.yourcompany.yourapp</key>
<dict>
<key>NSUbiquitousContainerName</key>
<string>com.yourcompany.yourapp</string>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
</dict>
</dict>
领取专属 10元无门槛券
手把手带您无忧上云