iOS 9 Facebook login simulator -canOpenURL: не удалось URL: «fbauth2: ///» – ошибка: «(null)»

Я обновился до Xcode 7 и новейшего SDK для iOS. Я добавил соответствующие записи в plist моего приложения:

введите описание изображения здесь

Мое приложение для входа в Facebook отлично работает на устройстве. Однако на симуляторе iOS 9 я получаю:

-canOpenURL: failed for URL: "fbauth2:///" - error: "(null)"

И логин не работает. Я видел проблему входа в facebook – canOpenURL: не удалось найти URL: «fbauth2: ///» – ошибка: «(null)», но у меня есть FBSDKCoreKit. Я также видел Facebook SDK 4.5 IOS 9, но это ответ не решает мою проблему.

Почему я получаю эту ошибку на симуляторе, а не на устройстве, хотя я сделал контрольный список на https://developers.facebook.com/docs/ios/ios9 ?

Почему я вижу сообщения консоли, такие как «canOpenURL: не удалось для URL:« fb …: // »или?

Это предупреждение Xcode, указывающее на canOpenURL: call возвращает false. Пока вы сконфигурировали запись LSApplicationQueriesSchemes в своем plist, как описано выше, вы можете игнорировать это предупреждение .

Это не проблема. FB SDK пытается открыть собственное приложение facebook, которое имеет тип fbauth2: // url. В Simulator его недоступно, поэтому его просто помещал журнал, чтобы он не мог открыть собственное приложение для Facebook. Вы можете настроить Facebook acct в Simulator, а затем сообщить кнопке FB Login использовать собственную учетную запись Facebook вместо открытия веб-представления. Но Facebook утверждает, что миллионы людей используют Facebook в браузере, и поэтому в iOS 9 они использовали новый SFSafariViewController как поведение по умолчанию для входа в facebook даже на устройствах. Вы можете попробовать использовать родной Facebook и посмотреть, работает ли он.

Проверьте эту ссылку для обсуждения.

https://www.facebook.com/login.php?next=https%3A%2F%2Fdevelopers.facebook.com%2Fbugs%2F786729821439894%2F%3Fsearch_id

Я понизил свой Facebook SDK с версии 4.7 до 4.5.1 и отлично работал как на Simulator, так и на устройстве iphone (без приложения для Facebook).

После обновления файла .plist вашего приложения с LSApplicationQueriesSchemes массива LSApplicationQueriesSchemes , который вы, похоже, уже сделали:

Затем убедитесь, что ваш SDK для Facebook – это версия 4.6.0 . Следуйте указаниям Facebook, если это не так.

Наконец , вероятно, проблема заключается в том, чтобы сбросить содержимое и настройки вашего симулятора

Чтобы сбросить ваш симулятор:

  1. Выберите Симулятор
  2. Выберите Сбросить содержимое и настройки
  3. и опция « Сброс»

Симулятор Apple, даже IDE, будет иметь ошибки, закрытие и повторное открытие, а также перезапуск симулятора, всегда есть что-то, что можно было бы рассмотреть на ранней стадии поиска вашего решения.

Надеюсь это поможет!

Согласно Facebook:

IOS SDK поддерживает SafariViewController, который позволяет нам переключаться на отображение веб-визуализаций вместо того, чтобы делать приложение-переключатель. Этот бета-пакет SDK автоматически определит лучший опыт использования коммутаторов для людей на их устройстве. Например, по умолчанию использование опыта пользователя через SafariViewController вместо Safari для входа в Facebook ….

Ссылка для ссылки Facebook: https://developers.facebook.com/bugs/786729821439894/?search_id

Ссылка на стек: https://stackoverflow.com/a/32593070/2905967

Следуя этим шагам, вы можете избежать этой ошибки:

1) перейти к -> Поддержка файла

2) info.plist

3) Щелкните правой кнопкой мыши на info.plist -> Открыть как -> Выбрать исходный код

* Добавить код ниже внутри <dict>...</dict> *

 <key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array> 

1] Аутентификация в Developer.facebook и генерация Facebook Id: => 460481580805052

2] Установить биткод: нет настроек сборки

3] Настроить файл Plist

 <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>fb460481580805052</string> </array> </dict> </array> <key>FacebookAppID</key> <string>460481580805052</string> <key>LSRequiresIPhoneOS</key> <true/> <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>akamaihd.net</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/> </dict> <key>facebook.com</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/> </dict> <key>fbcdn.net</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/> </dict> </dict> </dict> <key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fbapi20130214</string> <string>fbapi20130410</string> <string>fbapi20130702</string> <string>fbapi20131010</string> <string>fbapi20131219</string> <string>fbapi20140410</string> <string>fbapi20140116</string> <string>fbapi20150313</string> <string>fbapi20150629</string> <string>fbauth</string> <string>fbauth2 </string> <string>fb-messenger-api20140430</string> <string>fb-messenger-platform-20150128</string> <string>fb-messenger-platform-20150218</string> <string>fb-messenger-platform-20150305</string> </array> 

4] Загрузить 4 Sdk Framework, например

 =>Bolts.framework =>FBSDKCoreKit.framework =>FBSDKLoginKit.framework =>FBSDKShareKit.framework 

Для iOS 9 или выше добавьте этот метод в файл AppDelegate:

https://stackoverflow.com/a/43515243/535013

используйте LSApplicationQueriesSchemes или добавьте в plist свой идентификатор приложения.

Interesting Posts
Давайте будем гением компьютера.