gpt4 book ai didi

objective-c - 谷歌登录在模拟器上工作正常,但在真实设备上不行

转载 作者:行者123 更新时间:2023-12-03 21:14:46 25 4
gpt4 key购买 nike

我正在使用 iPhone 5 在 Swift 2.0、Xcode 7.1 和 iOS 9.1 中进行测试,并且 wifi 连接良好。

我已经按照本教程( http://www.appcoda.com/google-sign-in-how-to/ )进行操作,并且在模拟器上一切正常,但是当我使用 iPhone 5 在真实设备上运行此应用程序时,它会打开 Google 搜索应用程序(其中包含一些注册帐户)以进行句柄签名中。它提示用户选择一个帐户。选择帐户后,谷歌搜索应用程序就会询问用户我的应用程序是否可以访问他们的信息。用户单击“登录”后,之后,当返回应用程序代码时,不要输入此函数:

 func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
if let err = error {
print(err)
}
else {
performSegueWithIdentifier("idSegueContent", sender: self)
}
}

我的主要 ViewController() 类是这样的:

import UIKit

class ViewController: UIViewController, GIDSignInDelegate, GIDSignInUIDelegate {

@IBOutlet weak var signInButton: GIDSignInButton!

var contentViewController: ContentViewController!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

GIDSignIn.sharedInstance().delegate = self
GIDSignIn.sharedInstance().uiDelegate = self

GIDSignIn.sharedInstance().clientID = "MY_CLIENT_ID"
GIDSignIn.sharedInstance().scopes.append("https://www.googleapis.com/auth/plus.login")
GIDSignIn.sharedInstance().scopes.append("https://www.googleapis.com/auth/plus.me")

GIDSignIn.sharedInstance().signInSilently()

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: Google SignIn Delegate Methods
func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
if let err = error {
print(err)
}
else {
performSegueWithIdentifier("idSegueContent", sender: self)
}
}


func signIn(signIn: GIDSignIn!, didDisconnectWithUser user: GIDGoogleUser!, withError error: NSError!) {
if let err = error {
print(err)
}
contentViewController.dismissViewControllerAnimated(true, completion: nil)

}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "idSegueContent" {
contentViewController = segue.destinationViewController as! ContentViewController
}
}
}

如果未安装 Google 搜索应用,则 Safari 会在该应用中正常打开,并且登录后,委托(delegate)回调方法将按预期工作。

最佳答案

我也遇到了同样的问题,重启手机后终于解决了。 (经过数小时的测试、检查和重新组织代码!)希望这个简单的解决方案可以帮助其他人摆脱麻烦。

关于objective-c - 谷歌登录在模拟器上工作正常,但在真实设备上不行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33644872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com