Я использую плагин Firebase Auth для Flutter, чтобы войти с помощью Google в моем приложении, и он отлично работает в iOS и Android.
Моя проблема начинается когда я пытаюсь использовать Firebase Auth в моем iOS «Share Extension». Я новичок в iOS, поэтому я не очень знаком с Swift и XCode, но, насколько я понимаю, я должен включить перекрестную аутентификацию с помощью общей iOS Keychain , чтобы аутентифицировать пользователя в мое общее расширение.
У меня есть 2 цели в моем проекте, «Бегун» и «Расширение общего доступа», поэтому я включил общий доступ к цепочке ключей для них обоих:
Когда включен общий доступ к цепочке для ключей, я получаю следующую ошибку при попытке войти с помощью Firebase Auth:
Unhandled Exception: PlatformException(ERROR_KEYCHAIN_ERROR, An error occurred when accessing the keychain. The @c NSLocalizedFailureReasonErrorKey field in the @c NSError.userInfo dictionary will contain more information about the error encountered, null)
#0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
#1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:321:33)
<asynchronous suspension>
#2 MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:349:48)
#3 MethodChannelFirebaseAuth.signInWithCredential (package:firebase_auth_platform_interface/src/method_channel_firebase_auth.dart:161:23)
#4 FirebaseAuth.signInWithCredential (package:firebase_auth/src/firebase_auth.dart:208:10)
#5 signInWithGoogle (package:matkonit/google_sign_in.dart:17:45)
<asynchronous suspension>
#6 LoginPageState.signInButton.<anonymous closure>.<anonymous clo<…>
Это то, что я получаю при печати NSLocalizedFailureReasonErrorKey :
SecItemCopyMatching (-34018)
Что я могу сделать, чтобы это исправить?
Редактировать: Я заметил, что перезапуск симулятора делает войти в работу, но только иногда ... я не мог понять, почему.