Ошибка при доступе к Цепочке для ключей для Игровых площадок Xcode - PullRequest
0 голосов
/ 05 января 2020

Я пытаюсь запустить команды функций Firebase (в соответствии с примером здесь ) в игровых площадках Xcode для упрощения тестирования, которое требует от меня аутентификации в Firebase Auth для генерации токена для запуска функций. Я добавил пользовательскую среду под названием PlaygroundFramework и игровую площадку в своем рабочем пространстве, чтобы мой файл Playground мог использовать мои модули, как показано в моем предыдущем выпуске здесь .

Вызов функции для генерации токена, как указано в приведенном здесь примере, прошел успешно. Однако при попытке входа с использованием кода произошла ошибка: Auth.auth().signIn(withCustomToken: token). Полное сообщение об ошибке таково:

Error Domain=FIRAuthErrorDomain Code=17995 "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" UserInfo= . {FIRAuthErrorUserInfoNameKey=ERROR_KEYCHAIN_ERROR, NSLocalizedFailureReason=SecItemCopyMatching .  (-34018), NSLocalizedDescription=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}  

Как таковое, поскольку ошибка была связана с доступом к цепочке для ключей , я нашел инструкции от Google здесь , и поэтому я создал группу цепочки для ключей в своем основном проекте (названную Foo ), и обратите внимание, что имя группы цепочки для ключей было com.example.Foo , которое было предварительно установлено Xcode и мне не удалось отредактировать его. Мне не удалось добавить группу цепочки для ключей для PlaygroundFramework. Поэтому я использовал следующий код:

            do {
              try Auth.auth().useUserAccessGroup("<team_id>.com.example.Foo")
            } catch let error as NSError {
                print("Error changing user access group: %@", error.userInfo)
            }

Вышеприведенное далее дало мне немного другую ошибку:

Error changing user access group: %@ ["NSLocalizedFailureReason": SecItemCopyMatching (-34018),  
 "NSLocalizedDescription": 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, "FIRAuthErrorUserInfoNameKey":  
 ERROR_KEYCHAIN_ERROR]

Я довольно смущен терминологией в XCode, и я думаю, что я поставил неправильное значение для функции userAccessGroup.

...