Подтвердить что ты не робот

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Это не проблема. 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

Ответ 3

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

Ответ 4

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

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

Наконец,, который, вероятно, возникает, это Reset содержимое и настройки вашего симулятора

В Reset ваш симулятор:

  • Выберите Симулятор
  • Выберите Reset Контент и настройки
  • и Reset.

Apple Simulator, даже IDE, будет иметь ошибки, а также закрытие и повторное открытие, а также перезапуск симулятора, всегда будут рассмотрены на ранних этапах поиска вашего решения.

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

Ответ 5

Согласно Facebook:

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

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

Ссылка на стек: fooobar.com/questions/105034/...

Ответ 6

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

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>

Ответ 7

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

Ответ 9

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