Приложение 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