GoogleSignIn๋ฅผ ์ค์นํ๋ค. ๋์ ๊ฒฝ์ฐ๋ cocoapods๋ฅผ ์ด์ฉํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ค์นํ์๊ธฐ์ Podfile์ ์ถ๊ฐํ๊ณ pod install๋ก ์ค์นํ์๋ค.
pod 'GoogleSignIn'
Controller ํ์ผ์์ GoogleSignIn๋ฅผ ๋ถ๋ฌ์จ๋ค.
import GoogleSignIn
๊ตฌ๊ธ์์ ์ ๊ณตํ๋ GIDSignInButton๋ก ๋ฒํผ์ ์์ฑํ๋ค. colorScheme๊ณผ style์ ์ ํ ๊ฐ๋ฅํ๋ค. ์ดํ ๋ค์์ ๋ง๋ค handleGoogleLogin ํจ์์ ์ฐ๊ฒฐํ๋ค.
์ ๋ฒํผ์ ์น๋ช ์ ์ธ ๋จ์ ์ ์ปค์คํ ์ด ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๋ค๐ซ. ๊ทธ๋ฆผ์๋ง ์ง์ฐ๋ฉด ์ธํ ๋ฐ ์ฝ๋ ์ถ๊ฐํด๋ ์๋จน๋๋ค. ์ ๋ฐ..
๋๋ ์ ๋ฒํผ ๋์ ์ถ๊ฐ๋ก ์๋กญ๊ฒ ๋ง๋ค์๊ณ , ๋ง์ฐฌ๊ฐ์ง๋ก ํจ์๋ฅผ ์ฐ๊ฒฐํ์๋ค.
private let googleButton: GIDSignInButton = {
let button = GIDSignInButton()
button.colorScheme = .light
button.style = .standard
button.addTarget(self, action: #selector(handleGoogleLogin), for: .touchUpInside)
return button
}()
"YOUR_IOS_CLIENT_ID"์๋ฆฌ์ GoogleService-Info.plist์์์ CLIENT_ID๋ฅผ ๋ฃ์ผ๋ฉด ๋๋ค. ์ด ํจ์๋ฅผ ํตํด ๋ก๊ทธ์ธ์ด ์๋ฃ๋๋ฉด, ์ ์ ์ ํ๋กํ ์ ๋ณด(์ด๋ฉ์ผ ์ฃผ์, ์ ์ฒด์ด๋ฆ, ์ด๋ฆ, ์ฑ)๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
@objc func handleGoogleLogin() {
let signInConfig = GIDConfiguration.init(clientID: "YOUR_IOS_CLIENT_ID")
GIDSignIn.sharedInstance.signIn(with: signInConfig, presenting: self) { user, error in
guard error == nil else { return }
guard let user = user else { return }
let emailAddress = user.profile?.email
let fullName = user.profile?.name
let givenName = user.profile?.givenName
let familyName = user.profile?.familyName
let profilePicUrl = user.profile?.imageURL(withDimension: 320)
}
}
๊ณต์๋ฌธ์๋๋ก ํ๊ธฐ ๋๋ฉด ํด๋ผ์ด์ธํธ ์์ด๋๋ผ๋ ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ๊ทธ๋๋ก ์ปค๋ฐ์ ๋ค์ด๋๊ฒ ๋๋ค. GoogleService-Infoํ์ผ์ ๋ถ๋ฌ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ์ง ๊ณ ๋ฏผํ๋ค๊ฐ FirebaseApp์ผ๋ก๋ถํฐ ํด๋ผ์ด์ธํธ ์์ด๋๊ฐ์ ๋ถ๋ฌ์ฌ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ด ์์ฑํ์๋ค.
let googleClientId = FirebaseApp.app()?.options.clientID ?? ""
let signInConfig = GIDConfiguration.init(clientID: googleClientId)