Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift Facebook SDK登录后的空白页_Ios_Swift_Facebook - Fatal编程技术网

Ios Swift Facebook SDK登录后的空白页

Ios Swift Facebook SDK登录后的空白页,ios,swift,facebook,Ios,Swift,Facebook,在使用以下环境时,我无法解析Facebook登录组件: Xcode 8中的Swift 3.0 用于Swift的Facebook SDK(0.2.0) 在iOS 10上运行 我已经按照所有必需的步骤进行了操作(和),甚至这里没有提到的步骤,例如添加默认的AppDelegate方法,如下所示: func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicati

在使用以下环境时,我无法解析Facebook登录组件:

Xcode 8中的Swift 3.0 用于Swift的Facebook SDK(0.2.0) 在iOS 10上运行

我已经按照所有必需的步骤进行了操作(和),甚至这里没有提到的步骤,例如添加默认的AppDelegate方法,如下所示:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        FacebookCore.SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: [
            .sourceApplication: application,
            ])
        return true

    }

private func application(app: UIApplication, openURL url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
        return FacebookCore.SDKApplicationDelegate.shared.application(app, open: url, options: [
            .sourceApplication: app,
            ])
    }

@available(iOS 9.0, *)
private func application(application: UIApplication, openURL url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool {
    return FacebookCore.SDKApplicationDelegate.shared.application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
}
至于Info.plist的内容,关于Facebook部分,我假设我已经拥有了所有必需的标签,甚至还有一些似乎有助于解决问题的其他标签,在下面的一些问题中可以找到:

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb1619016601757957</string>
            </array>
        </dict>
    </array>
<key>FacebookAppID</key>
    <string>1619016601757957</string>
    <key>FacebookDisplayName</key>
    <string>Nossa Cidade</string>
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
    </array>
<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>facebook.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <true/>
            </dict>
            <key>fbcdn.net</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <true/>
            </dict>
            <key>akamaihd.net</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <true/>
            </dict>
        </dict>
    </dict>
我已经经历了很多SO问题,Github问题,有些开发人员遇到了和我一样的情况,对于这个错误的可能结果没有任何具体的回应。最后发生的事情是,我得到了一个大肥肉登录结果。取消回调,不是我想要的

与此相关的控制台输出为:

-canOpenURL: failed for URL: "fbauth2:/" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"

任何帮助都将不胜感激。谢谢大家!

我也遇到了类似的问题,这是由于我的应用程序中AppDelegate中的方法在登录完成后没有被Facebook调用造成的

基于此,我认为您需要更改AppDelegate中的方法,如下所示:

import FacebookCore

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

...

    return FacebookCore.SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
}

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

    return FacebookCore.SDKApplicationDelegate.shared.application(app, open: url, options: options)
}

在做了这个改变之后,我发现Facebook在登录后切换回了我的应用程序,并且没有挂在白色屏幕上

结果发现appDelegate中的函数签名不匹配。复制时要小心,我猜参数名被省略了,即(uu某物),并且没有被调用。我知道它是通用的,但那是很久以前的事了。无论如何谢谢你!
import FacebookCore

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

...

    return FacebookCore.SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
}

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

    return FacebookCore.SDKApplicationDelegate.shared.application(app, open: url, options: options)
}