GigyaSwift登录方法未打开FacebookWrapper

时间:2019-07-17 10:29:48

标签: ios swift gigya

我刚刚开始使用新的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

2 个答案:

答案 0 :(得分:3)

建议检查几件事:

  1. 产品名称-如果您的Gigya Swift SDK版本低于1.1.1,则在两者之间留有空格也可能导致此问题 说出GigyaDemoApp-> Gigya Demo App。 尝试像这样将您的产品名称更改为不带空格GigyaDemoApp

  2. 尝试将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文件。