Facebook SDK 4.5 iOS 9

У меня возникла проблема с новым FBSDK. Всякий раз, когда я пытаюсь вызвать метод входа в систему logInWithReadPermissions, я получаю это сообщение об ошибке:

ОШИБКА: "canOpenUrl: ошибка для URL-адреса "fbauth2://" ошибка: "(null)"

У меня есть файл конфигурации .plist, следуя инструкциям ios9 ( https://developers.facebook.com/docs/ios/ios9 ) на dev.facebook. Итак, я получил словарь NSAppTransportSecurity и массив LSApplicationQueriesSchemes (со строкой «fbauth2»)

Вы знаете, как решить эту ошибку?


person Bastien    schedule 13.08.2015    source источник
comment
Вы когда-нибудь решали это?   -  person Can Poyrazoğlu    schedule 20.09.2015
comment
это уже решилось?   -  person Phil Andrews    schedule 11.12.2015


Ответы (7)


1] Аутентификация в Developer.facebook и создание идентификатора Facebook, например: => 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
person Nikunj Patel    schedule 03.10.2015

Если у вас все еще есть проблемы, перезагрузите симулятор, это сработало для меня.

person PJ .    schedule 21.09.2015
comment
У меня такая проблема на реальном устройстве, списки обновлены - person CQM; 21.10.2015
comment
Ходил кругами до сброса симулятора. Спасибо! - person kwcto; 05.02.2016

У меня такая же проблема с библиотекой входа в Google+, но я решил обновить Facebook в последней версии SDK 4.6.0!

Не забудьте изменить ключ plist LSApplicationQueriesSchemes после обновления следующим образом:

<key>LSApplicationQueriesSchemes</key>
<array>
        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
</array>
person Jacopo Penzo    schedule 24.08.2015
comment
Просто примечание, согласно часто задаваемым вопросам: почему я вижу сообщения консоли, такие как «canOpenURL: failed for URL: fb...://» или ? Это предупреждение Xcode, указывающее, что вызов canOpenURL: вернул false. Пока вы настроили запись LSApplicationQueriesSchemes в своем plist, как описано выше, вы можете игнорировать это предупреждение. - person Henry T Kirk; 20.09.2015

У меня была та же проблема, но я запустил приложение на своем телефоне, на котором установлен facebook, и оно сработало. Это может быть связано с тем, что он не работает на симуляторе или необходимо установить facebook. Кто-нибудь нашел что-нибудь еще?

person daniel3223    schedule 25.08.2015
comment
Симулятор у меня работает. Мне нужно только добавить fbauth2. Он будет перенаправлен на сайт Facebook. - person Harry Ng; 27.08.2015

если у вас уже есть элементы в LSApplicationQueriesSchemes. позвольте элементам Facebook быть первыми.

Это решило мою проблему.

person Ponja    schedule 16.10.2015
comment
Не могли бы вы уточнить это? Пожалуйста? - person Mohsin Khubaib Ahmed; 28.10.2015
comment
Это неправильный путь ›fbauth2‹/string› ‹string›fbshareextension‹/string› ‹/array› - person Ponja; 28.10.2015
comment
Спасибо, что обратились ко мне. Пожалуйста, объясните здесь одну вещь; com.sample.appid — это идентификатор пакета или, например, мое приложение — xyz на facebook, а мой appid — 1234567890, так что это com.xyz.1234567890? Какой из двух .. спасибо за разъяснение, хотя. - person Mohsin Khubaib Ahmed; 29.10.2015
comment
Является примером идентификатора пакета. Просто поместите свои ключи Facebook в начало массива, и это решит вашу проблему. - person Ponja; 30.10.2015

Из часто задаваемых вопросов Facebook внизу ссылки: https://developers.facebook.com/docs/ios/ios9

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

person Bruno Delgado    schedule 17.06.2016

Используйте так в info.plist

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb123124123123</string>
            <string>fbauth2</string>
        </array>
    </dict>
</array>

После этого вы должны удалить свое приложение из редактора и снова запустить его.

person Arda Ç.    schedule 05.11.2015
comment
Это неверно. Это будет означать, что ваше приложение отвечает на URL-адрес со схемой fbauth2:. За эту схему отвечает Facebook. - person Milan Cermak; 26.01.2016