-5

我使用 Google 登录集成和 facebook 登录集成,但我在 appDelegate 中遇到了这样的问题

错误线

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        return GIDSignIn.sharedInstance().handle(url as URL?,
                                                 sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplication.OpenURLOptionsKey.annotation])
        return ApplicationDelegate.shared.application(
            app,
            open: url,
            options: options
        ) 
    }
4

1 回答 1

0

您不能return像这样使用 s ,因为此代码返回return GIDSignIn.sharedInstance()...line 并且从不执​​行第二return ApplicationDelegate.shared...


您的问题与第二return行无关,但您无法执行第二return

请查看此处以了解有关 swift 函数的更多信息 -> Apple Docs about functions


GID登录文档

// Old:
GIDSignIn.sharedInstance().handle(url,
    sourceApplication: sourceApplication,
    annotation: annotation)

// New:
GIDSignIn.sharedInstance().handle(url)
  • 正如文档所说,您应该使用新的GIDSignIn.sharedInstance().handle(url)

  • 并且不要在application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool

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

    GIDSignIn.sharedInstance().handle(url)
    return true // Because this `return` about did the app initialize properly? Not about the `handle()` returned value. The `handle` can fail but this is not related to all application execution.
}

奖金

关于application(_:didFinishLaunchingWithOptions:)

返回值

如果应用程序无法处理 URL 资源或继续用户活动,则返回 false,否则返回 true。如果应用程序作为远程通知的结果启动,则忽略返回值。

苹果文档

于 2020-04-07T08:22:16.390 回答