Я пытаюсь использовать Xcode 8 для создания приложения с входом в Facebook с помощью Swift 3. Когда я снова переключаюсь на iOS Simulator 9.3, он работает. В iOS 10 я получаю такую ошибку:
""fbauth2:/" The operation couldn’t be completed. (OSStatus error -10814.)"
и
Optional(Error Domain=com.facebook.sdk.login Code=308 "(null)")
У кого-нибудь есть решение для этого?
Примечание 1:
После отладки эта проблема - не удается обновить FBSDK expect_challange
. Функция SecItemUpdate
внутри security.framework
не работает. Это проблема iOS 10
ios
swift
facebook-ios-sdk
ios10
Trquoccuong
источник
источник
Ответы:
Ошибка OSStatus -10814 возникает, когда
canOpenURL:
не удается найти какое-либо приложение , которое может открыть этот URL (на самом деле Facebook пытается найти свое приложение, вызывая егоcanOpenURL:
с аргументом «fbauth2: /»). Печать происходит внутри функции, поэтому вы ничего не можете с этим поделать. Но если вы запустите свое приложение на устройстве с установленным приложением Facebook, вы не увидите этой ошибки.Ошибка 308 возникает из-за ситуации, когда значение, хранящееся в связке ключей, не равно значению, которое хранится в параметрах завершения facebook (для получения дополнительной информации вы можете проверить
-[FBSDKLoginManager completeAuthentication:expectChallenge:]
).Это происходит потому, что Apple изменила способ работы с связкой ключей в iOS 10. Чтобы решить эту проблему, вам просто нужно перейти в Targets-> Capabilities и включить совместное использование связки ключей (это дает доступ к связке ключей для вашего приложения):
Если вы используете Xamarin (прочтите эту ссылку для получения дополнительной информации, спасибо @dynamokaj):
источник
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
и попытки перестроения проблема все еще остается. Теперь я понимаю, что ошибка, которую я вижу, больше похожа на эту stackoverflow.com/questions/39091841/…Та же проблема была в моем приложении, я проверил много решений, но у меня не работает. Я исправил эту проблему, используя метод ниже.
Перейдите по этой ссылке. Выберите свое приложение и настройте
info.plist
import
и добавьте этот код в свойAppDelegate
источник
Основная причина, по которой вы получаете следующую ошибку,
в том, что в вашем симуляторе iOS не установлено приложение Facebook. Пока вы не установите приложение на симулятор iOS, вы будете продолжать получать ошибку. Попробуйте запустить приложение iOS на подготовленном устройстве iOS с установленным Facebook, и вы больше не увидите сообщение об ошибке. Надеюсь это поможет!
источник
В моем случае исправление было *:
* В соответствии с рекомендациями @MoridinBG на странице Facebook SDK Github
источник
Эта ошибка также может быть вызвана использованием FBSDKCoreKit или FBSDKLoginKit версии 4.39.0. В этой версии SDK была ошибка. Обновите до 4.39.1 или выше, чтобы исправить это. Подробности здесь .
В качестве примечания, другие пользователи упомянули, что эта ошибка возникает, если у вас не установлен Facebook на симуляторе. Это правда, но предполагается, что SDK автоматически вернется к методу входа через Интернет, если приложение не установлено. Если этого не происходит, это может быть вызвано другой проблемой, например отсутствующими / неправильно настроенными значениями в вашем Info.plist (проверьте LSApplicationQueriesSchemes) или отсутствием методов в вашем AppDelegate.
источник
В моем случае проблема была в Google Analytics. По умолчанию кажется, что он добавляет свой собственный контроллер представления поверх контроллера представления приложения. Установка FirebaseAppDelegateProxyEnabled на "NO" в {Your app} -Info.plist решила проблему.
источник