2015-06-18 2 views
1

Нам очень сложно пытаться делиться информацией между двумя приложениями с сервисом keychain.Плагин Cordova Keychain и плагин SSKeychain не работают вместе

У нас есть два приложения:

1.- CoreApp, который является родным и используйте этот плагин SSKEYCHAIN, чтобы установить значение:

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

Где устанавливаю для paramenter следующих значений:

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 запрашивает его успешно.

Похоже, что мы не устанавливаем значения в одном контейнере, чтобы мы возвращали значения из другого приложения. Но мы не знаем, как указать все приложения на одно и то же место.

Кто-нибудь знает, что может случиться? Любые намеки, тесты или советы были бы высоко оценены.

Большое спасибо.

ответ

2

У меня была та же проблема. Моим решением было изменить плагин в Кордове com.crypho.plugins.securestorage (http://plugins.cordova.io/#/package/com.crypho.plugins.securestorage).

Проблема заключается в том, что плагин SSKeychain имеет группу доступа к цепочке ключей, отличную от плагина Cordova Keychain, поэтому между приложениями, которые используют один и тот же плагин, хорошо работает, но когда разные плагины не работают.

com.crypho.plugins.securestorage documentation: В секретах iOS хранятся непосредственно в KeyChain через библиотеку SSKeychain.