Приложение IOS не может получить данные пользователя Google

Я учусь писать приложение IOS со Swift.

Но когда я следую инструкциям на странице разработчиков Google.

https://developers.google.com/identity/sign-in/ios/start?ver=swift

Xcode показывает, что многие компилируются неправильно для меня.

Например, этот код в инструкции необходимо добавить в AppDelegate:

func application(application: UIApplication,
  openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
    var options: [String: AnyObject] = [UIApplicationOpenURLOptionsSourceApplicationKey: sourceApplication,
                                        UIApplicationOpenURLOptionsAnnotationKey: annotation]
    return GIDSignIn.sharedInstance().handleURL(url,
        sourceApplication: sourceApplication,
        annotation: annotation)
}

Это покажет

ambiguous reference to member 'subscript'

И мне нужно изменить этот код на:

private func application(application: UIApplication,
                     openURL url: URL, options: [String: AnyObject]) -> Bool {
        return GIDSignIn.sharedInstance().handle(url as URL!,
                                                    sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication.rawValue] as? String,
                                                    annotation: options[UIApplicationOpenURLOptionsKey.annotation.rawValue])
    }

Затем он пройдет компилятор.

Другая ошибка компиляции заключается в том, что в AppDelegate необходимо добавить два кода:

func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!,
  withError error: NSError!) {
    if (error == nil) {
      // Perform any operations on signed in user here.
      let userId = user.userID    
      // ...
    } else {
      print("\(error.localizedDescription)")
    }
}
func signIn(signIn: GIDSignIn!, didDisconnectWithUser user:GIDGoogleUser!,
  withError error: NSError!) {
    // Perform any operations when the user disconnects from app here.
    // ...
}

Отладчик скажи мне, что мне нужно заменить имя функции

"вход" будет "знаком"

И это пройдет компилятор.

Последние две ошибки компиляции такие же, как и у upside.

Компилятор говорит мне, что мне нужно изменить функцию "signIn" как "sign" в моем коде UIviewcontroller.

"НО"

Хотя я полностью следую инструкциям компилятора и симулятору успешного запуска, я все еще не могу получить данные, когда пользователь разрешает приложению получать данные пользователя.

И компилятор покажет это для меня:

Реализация приложения:openURL:sourceApplication: аннотация: не найдено. Пожалуйста, добавьте обработчик в ваш делегат приложения. Класс: MyClassName.AppDelegate

ТАК......

Кто-нибудь знает, почему приложение не может найти мой обработчик?

Я предполагаю, что эти ошибки компиляции являются причиной того, что ios обновлен до 10, тогда я не знаю, может ли действие изменить имя функции, которое позволило мне не получить данные Google.

Спасибо за Ваш ответ.:)

Страница разработчиков Google: https://developers.google.com/identity/sign-in/ios/sign-in?ver=swift

0 ответов

Другие вопросы по тегам