如何在iOS 10上使用Facebook iOS SDK

如何在iOS 10上使用Facebook iOS SDK

我正在尝试使用Xcode 8来构建一个使用Swift 3登录Facebook的应用程序。当我切换回iOS模拟器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的问题


喵喔喔
浏览 1086回答 3
3回答

翻阅古今

错误OSStatus -10814在canOpenURL: 找不到任何应用程序时发生,可以打开此URL(实际上,Facebook试图通过canOpenURL:使用参数“fbauth2:/” 来查找其应用程序)。打印发生在函数内部,因此您无法执行任何操作。但是,如果您将在安装了Facebook应用程序的设备上运行您的应用程序,则不会看到此错误。错误308由于这种情况发生,当存储在钥匙串中的值不等于值时,存储在facebook完成参数中(有关您可以检查的更多信息-[FBSDKLoginManager completeAuthentication:expectChallenge:])。之所以发生这种情况,是因为Apple改变了在iOS 10中使用钥匙串的方式。要解决这个问题,您只需转到Targets-> Capabilities并启用钥匙串共享(它可以访问您应用的钥匙串): 如果您正在使用Xamarin:只需确保在Entitlements中启用密钥链访问,并选择Simulator(Debug)版本的权利。默认情况下,此设置未设置。

Cats萌萌

同样的问题在我的应用程序中,我检查了许多解决方案,但对我不起作用。我用下面的方法解决了这个问题。转到此链接选择您的应用程序并配置您的info.plistimport 并在您的。中添加此代码 AppDelegateimport FBSDKCoreKitimport FBSDKLoginKitfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {     return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)}func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {     return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)}

慕哥6287543

您收到以下错误的主要原因,canOpenURL: failed for URL: "fbauth2:/" - error: "The operation couldn’t be completed. (OSStatus error -10814.)是你的iOS模拟器没有安装Facebook应用程序。在iOS模拟器上安装应用程序之前,您将继续收到错误消息。尝试在已安装Facebook的配置iOS设备上运行iOS应用程序,您将不会再看到错误消息。希望这可以帮助!
打开App,查看更多内容
随时随地看视频慕课网APP