"在使用GIDSignIn时唱歌时,没有URL方案com-google-gidconsent的注册处理程序"错误

Adr*_*ian 13 ios swift google-signin

我已经手动将google登录集成到sdk(不是与cocoapods)并且它构建正常,但是当我运行项目时,我总是在登录后遇到此错误:

2015-09-07 15:44:14.071 Contacts++[82438:4826277] LaunchServices: ERROR: There is no registered handler for URL scheme com-google-gidconsent-google
2015-09-07 15:44:14.071 Contacts++[82438:4826277] LaunchServices: ERROR: There is no registered handler for URL scheme com-google-gidconsent-youtube
2015-09-07 15:44:14.072 Contacts++[82438:4826277] LaunchServices: ERROR: There is no registered handler for URL scheme com-google-gidconsent
2015-09-07 15:44:14.072 Contacts++[82438:4826277] LaunchServices: ERROR: There is no registered handler for URL scheme com.google.gppconsent.2.4.1
2015-09-07 15:44:14.072 Contacts++[82438:4826277] LaunchServices: ERROR: There is no registered handler for URL scheme com.google.gppconsent.2.4.0
Run Code Online (Sandbox Code Playgroud)

这就是我使用sdk的方式.

首先,我按照https://developers.google.com/identity/sign-in/ios/sign-in?ver=swift中的所有步骤操作.

代码:
AppDelegate.swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {  
    // google
    // Initialize sign in
    GIDSignIn.sharedInstance().clientID = "<client id>"
    GIDSignIn.sharedInstance().delegate = self

    return true
}

func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {

    if error == nil {
        let userID = user.userID
        let idToken = user.authentication.idToken
        let name = user.profile.name
        let email = user.profile.email

        print(userID, idToken, name, email)
    } else {
        print(error.localizedDescription)
    }
}

func signIn(signIn: GIDSignIn!, didDisconnectWithUser user: GIDGoogleUser!, withError error: NSError!) {

}
Run Code Online (Sandbox Code Playgroud)

ViewController.swift

 override func viewDidLoad() {
        super.viewDidLoad()

        // google plus
        //GIDSignIn.sharedInstance().clientID = clientID
        GIDSignIn.sharedInstance().uiDelegate = self
        GIDSignIn.sharedInstance().signIn()
}  
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?我使用的是SDK 2.2.0版

Cez*_*zar 29

您的实施没有问题.所有这些警告意味着每个URL方案引用的应用程序未安装在设备上.

如果您在模拟器上进行测试,您将始终获得这些错误.但是,如果您在设备上进行测试,则可以验证如果安装了相应的应用程序,错误将会消失.

例如,如果您的设备上有Youtube应用,则不会看到该行:

2015-09-07 15:44:14.071 Contacts++[82438:4826277] LaunchServices: ERROR: There is no registered handler for URL scheme com-google-gidconsent-youtube
Run Code Online (Sandbox Code Playgroud)