我刚刚开始使用新的GigyaSwift SDK,我正在尝试在现有项目上实现facebook社交登录。但是,当我尝试使用Facebook登录时,出现错误:
致命错误:[facebook]无法使用WebView登录,安装相关的SDK。
我已经在项目中导入了SDK和包装器,并安装了FBSDK吊舱。 这是我的代码:
Gigya.sharedInstance().login(with: .facebook, viewController: self, completion: { (res) in
debugPrint(res)
})
这些是我输入到我的plist中的字段。
<key>GigyaApiDomain</key>
<string>REDACTED</string>
<key>GigyaApiKey</key>
<string>REDACTED</string>
<key>FacebookDisplayName</key>
<string>REDACTED</string>
<key>FacebookAppID</key>
<string>REDACTED</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-share-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fbAPP ID HERE</string>
</array>
</dict>
</array>
我试图在一个新项目中实现这一点,并且能够使它起作用。我试图将新项目的设置复制到我现有的项目中,但这没有用。我发现的可能原因是FacebookWrapper未在登录时执行。有人遇到过这种情况吗?有没有解决的办法?
编辑:根据@Sagi Shmuel的要求,这是我的带有包装名称的Facebook包装程序的打印结果。
([已编辑] .FacebookWrapper)$ R0 = 0x00006000002a4d00 {
ObjectiveC.NSObject = { isa = [已删除] .FacebookWrapper} completeHandler = 0x000000010540f4e0 [已删除]`关闭#1 (快速。可选>, Swift.Optional)->()在变量初始化 [REDACTED] .FacebookWrapper的表达式。( _D4653B6ACC181DF040059B860A43FAE8):(Swift.Optional>, Swift.Optional)->()在FacebookWrapper.swift:16
clientID = nil defaultReadPermissions = 1值{ [0] =“电子邮件”} fbLogin.storage = nil
答案 0 :(得分:3)
建议检查几件事:
产品名称-如果您的Gigya Swift SDK版本低于1.1.1,则在两者之间留有空格也可能导致此问题
说出GigyaDemoApp
-> Gigya Demo App
。
尝试像这样将您的产品名称更改为不带空格GigyaDemoApp
。
尝试将Gigya Swift SDK升级到Swift SDK Core Framework 1.1.1 (Latest)
在此版本中,上述空间问题已得到解决,因为他们引入了一种显式注册包装文件的方法。
let gigya = Gigya.sharedInstance(UserHost.self)
gigya.registerSocialProvider(of: .facebook, wrapper: FacebookWrapper())
gigya.registerSocialProvider(of: .google, wrapper: GoogleWrapper())
gigya.registerSocialProvider(of: .apple, wrapper: AppleSignInWrapper())
希望这会有所帮助!
答案 1 :(得分:2)
之所以发生这种情况,是因为GigyaSwift SDK
找不到FacebookWrapper.swift
文件。
确保安装Facebook SDK
并向项目添加FacebookWrapper.swift
文件。