Cordova Keychain插件和SSKeychain插件无法一起使用

时间:2015-06-18 11:22:27

标签: ios cordova cordova-plugins keychain

我们很难尝试使用钥匙串服务在两个应用之间共享信息。

我们有两个应用程序:

1.- CoreApp,它是原生的并使用此插件SSKEYCHAIN来设置值:

+ (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account; 

为参数设置以下值的位置:

password = aaa
serviceName = bbb
account = ccc

2.- SatelliteApp,它是混合(cordova)并使用此插件KeychainPlugin来获取值:

kc.getForKey(successCallback, failureCallback, 'ccc', 'bbb');

使用以下消息触发failureCallback:

"Error retrieving vale for key ccc : (null)"

我们做了一些测试:

1.-我们已经做了另一个原生应用程序,它可以查询由CoreApp填充的钥匙串,并且效果很好。

2.-我们已经开设了另一个混合应用程序,用于在钥匙串中设置值,而SatelliteApp会成功查询它。

似乎我们没有在同一容器中设置值,我们正在从其他应用程序中检索值。但我们不知道如何将所有应用程序指向同一个地方。

有谁知道会发生什么?任何提示,测试或建议都将受到高度赞赏。

非常感谢。

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我的解决方案是通过com.crypho.plugins.securestorage(http://plugins.cordova.io/#/package/com.crypho.plugins.securestorage)更改Cordova中的插件。

问题是SSKeychain插件有一个与Cordova Keychain插件不同的钥匙串访问组,所以在使用相同插件的应用程序之间运行良好,但是当插件不同时,它们不起作用。

com.crypho.plugins.securestorage文档:在iOS上,秘密通过SSKeychain库直接存储在KeyChain中。