SecItemDelete在OS X上的共享钥匙串项失败

时间:2015-02-16 02:26:56

标签: macos keychain uickeychainstore

我正在为已经发布的mac应用程序开发应用程序扩展。我需要在应用程序和扩展之间共享钥匙串项。在阅读项目方面,我能够成功地“共享”应用程序和扩展之间的钥匙串项目。问题是当我尝试从应用程序中删除钥匙串项时。

应用程序和扩展都具有在权利中指定的keychain-access-group,并在调用SecItemCopyMatching,SecItemAdd和SecItemDelete时指定具有应用程序前缀的访问组。

基本上,从应用程序创建和删除钥匙串项。扩展仅通过SecItemCopyMatching读取钥匙串项。问题是扩展读取的任何项目都不能被应用程序删除,因为SecItemDelete失败并出现以下错误。

SecItemDelete returns -25244, which is "Invalid attempt to change the owner of this item"

我找不到任何关于此错误含义的文档,或者为什么调用SecItemCopyMatching会将钥匙串项的“所有者”更改为扩展名。

仅供参考,我使用UIKeyChainStore与钥匙串进行交互,但此时我不认为这是导致问题的原因。

0 个答案:

没有答案