Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在WatchKit扩展和iPhone应用程序之间共享钥匙链数据_Ios_Watchkit - Fatal编程技术网

Ios 如何在WatchKit扩展和iPhone应用程序之间共享钥匙链数据

Ios 如何在WatchKit扩展和iPhone应用程序之间共享钥匙链数据,ios,watchkit,Ios,Watchkit,我无法使用共享钥匙链在WatchKit和iPhone应用程序之间共享数据。当我试图在钥匙链包装中使用kSecAttrAccessible作为ksecattraccessibleallways时,SecItemUpdate失败。请帮助我在钥匙链包装器中正确使用kSecAttrAccessible。您应该使用正确的可访问性模式: 默认的钥匙链模式ksecattraccessibleewhen unlocked和ksecattraccessibleewhen unlocked仅此设备在iPhone锁定

我无法使用共享钥匙链在WatchKit和iPhone应用程序之间共享数据。当我试图在钥匙链包装中使用
kSecAttrAccessible
作为
ksecattraccessibleallways
时,
SecItemUpdate
失败。请帮助我在钥匙链包装器中正确使用
kSecAttrAccessible

您应该使用正确的可访问性模式:

默认的钥匙链模式
ksecattraccessibleewhen unlocked
ksecattraccessibleewhen unlocked仅此设备
在iPhone锁定时不允许应用程序扩展访问数据

因此,在这种情况下,使用
kSecAttrAccessibleAfterFirstUnlock
kSecAttrAccessibleAfterFirstUnlock此设备才合适。这允许WatchKit扩展访问钥匙链,即使iOS应用程序位于后台

必须重新保存(读取、删除、使用新的可访问性模式保存)旧项目(未锁定时带有
ksecattracccessible)


更多信息(包括代码)可用,以及

您是否按照文档中的说明打开了钥匙链共享?是的,我已经打开了钥匙链,但问题发生了kSecAttrAccessible值默认设置为KSECattraccessibleWhen unlocked,所以当iphone被锁定时,apple watch中的值不可用。谢谢Vomako。您能告诉我如何在钥匙链包装器中使用新的可访问性模式读取删除保存(目标c)当我试图删除和保存新的一个,但无法做到这一点,并得到-50的错误。我已经尝试和调试了2-3天的问题,但无法使它与苹果手表。Vomako我检查了代码,但仍然得到问题。你能告诉我如何可以更改的keychainitemwrapper苹果类KSecAttracible。尝试了很多时间,但在手机锁定时无法在watch应用程序和iphone之间共享数据。是否有人可以帮助您编辑keychainitemwrapper apple类以支持数据共享KSecAttracibleAllways