У меня есть приложение ReactNative (опубликовано только для iOS), которое использует ExpoSecureStore для помещения и чтения значений из iOS Связки ключей.
Я перехожу к Flutter и I нужно для того, чтобы пользователи вошли в систему, т.е. чтобы получить их токены авторизации из ранее установленной версии приложения RN.
Итак, вот что я делаю:
- Я устанавливаю приложение RN из магазина приложений,
- Войдите в систему (токен сохраняется в ExpoSecureStore),
- Установите мое приложение Flutter
- Попытайтесь получить доступ к связке ключей - ничего не найдено!
- Переустановите приложение RN из магазина приложений,
- Когда я открываю приложение, вошел пользователь!
Итак, установка Flutter не выполняется. Не удаляйте токены, но они не могут получить к ним доступ.
Обновление 18.3.2020.
Вот как выглядит последняя сборка *1030* ReactNative в AppstoreConnect:
Вот та же информация для нашей Флаттер сборка:
Я попытался установить группу цепочек для ключей в проекте XCode Flutter для всех видов значений: TEAM_ID.*
, TEAM_ID.
, TEAM_ID
, *
, TEAM_ID.com.my_real_app_id
et c .. но ничего помогло
Что-то мне не хватает?
============== оригинальный вопрос продолжается ==== ============
Я использую FlutterSecureStoragePlugin
( ссылку на .m
файл ) для доступа к значениям цепочки для ключей.
Вот ссылка на файл EXSecureStore.m
- EXSecureStore.m на GitHub .
Приложение Flutter имеет тот же идентификатор пакета, поэтому не должно быть проблемой.
Я изменил его исходный код, чтобы использовать тот же сервис цепочки для ключей (kSecAttrService
), который по умолчанию равен "app"
.
Кроме того, я скопировал и адаптировал код для чтения значений цепочки для ключей от ExpoSecureStore.m
до FlutterSecureStoragePlugin.m
, но все равно не повезло ..
Может быть есть ли разница в том, как библиотеки RN и Flutter передают строки в нативный iOS? Я предполагаю, что должно быть что-то происходящее с доступом к Цепочке для ключей, которого я не знаю, поэтому любая помощь очень приветствуется!
Спасибо за чтение!