ios - 如何在 WatchKit 扩展和 iPhone 应用程序之间共享钥匙串(keychain)数据

标签 ios watchkit

我无法使用共享钥匙串(keychain)在 WatchKit 和 iPhone 应用程序之间共享数据。当我尝试在钥匙串(keychain)包装器中将 kSecAttrAccessible 用作 kSecAttrAccessibleAlways 时,SecItemUpdate 失败。请帮助我在钥匙串(keychain)包装器中正确使用 kSecAttrAccessible

最佳答案

您应该使用正确的无障碍模式:

默认钥匙串(keychain)模式 kSecAttrAccessibleWhenUnlockedkSecAttrAccessibleWhenUnlockedThisDeviceOnly 不会让您的应用程序扩展在 iPhone 锁定时访问数据。

因此,在这种情况下,使用kSecAttrAccessibleAfterFirstUnlockkSecAttrAccessibleAfterFirstUnlockThisDeviceOnly 是合适的。这允许 WatchKit 扩展访问钥匙串(keychain),即使 iOS 应用程序在后台也是如此。

必须重新保存旧项目(使用 kSecAttrAccessibleWhenUnlocked)(读取、删除、使用新的辅助模式保存)。

可获得更多信息(包括代码)here , here , 和 here .

关于ios - 如何在 WatchKit 扩展和 iPhone 应用程序之间共享钥匙串(keychain)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30172321/

相关文章:

ios - 当我制作 libobjcipc 时出现此错误。 "' MSFindSymbol' 在 C99 中无效 "

ios - iPhone 关机时 WatchKit 应用程序会发生什么情况?

ios - Apple Watch - 调用 WKInterfaceDevice 添加 CachedImage 时为 "attempt to insert nil"

ios - 如何在 WatchKit 扩展目标(XCode7 beta 6)中重置 watchOS 部署目标

ios - WatchKit 上下文菜单切换界面 Controller

android - Flutter 检查文件存在于 ApplicationDocumentsDirectory

ios - 如何从中心位置为所有 View Controller 在导航栏中设置 Logo

ios - 使用 UISlider 更改字体大小

ios - AFNetworking 似乎与 WatchKit 不兼容

ios - Objective-C : Downloading File With Progress Bar