목차
티스토리 뷰
안녕하세요 🐾
오늘은 iOS 구글 로그인 SDK 적용 과정에 대하여 정리해보았습니다.
다른 소셜 로그인 SDK 적용은 아래의 글을 참고해 주세요!
※ 2013.12.26 기준으로 반영되었습니다.
2023.12.22 - [iOS/Swift] - [iOS] 페이스북 로그인 SDK 적용
2023.06.21 - [iOS/Swift] - [iOS] 네이버 로그인 SDK 연동하기
2023.06.21 - [iOS/Swift] - [iOS] 카카오톡 로그인 SDK 연동하기
1. 프로젝트 설정
1.1 SDK 설치
CocoaPods 설치
in podfile,
pod 'GoogleSignIn'
1.2 구글 프로젝트 생성
해당 링크로 접속 → OAuth 클라이언트 ID 만들기
→ Create a new project
프로젝트 이름 입력
사용자 동의화면에 나올 제품명 입력, 프로젝트 이름과 동일하게 입력하겠습니다.
플랫폼은 iOS
, Bundle ID는 프로젝트의 Bundle Identifier
를 입력
발급된 클라이언트 ID를 저장
1.3 Info.plist 업데이트
Xode 프로젝트 → Info.plist
우클릭 → Open As
→ Source Code
선택
<!-- <dict>...</dict> 사이에 아래의 코드블록을 삽입 -->
<key>GIDClientID</key>
<string>YOUR_IOS_CLIENT_ID</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
</array>
</dict>
</array>
위 코드블럭에서 YOUR_IOS_CLIENT_ID
는 직전에 발급받았던 구글 클라이언트 ID를 그대로 붙여넣고,
YOUR_DOT_REVERSED_IOS_CLIENT_ID
는 클라이언트 ID를 반전시킨 값을 아래와 같이 입력합니다.
2. 코드 작성
2.1 AppDelegate.swift
구글 인증 리다이렉션 처리를 위해 아래의 코드 추가
import GoogleSignIn
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
var handled: Bool
handled = GIDSignIn.sharedInstance.handle(url)
if handled {
return true
}
// Handle other custom URL types.
// If not handled by this app, return false.
return false
}
2.2 ViewController.swift
// Created by Assum on 2023/12/26.
import UIKit
import GoogleSignIn
class ViewController: UIViewController {
let googleLogin: UIButton = {
let button = UIButton()
button.setTitle("구글 로그인", for: .normal)
button.setTitleColor(.blue, for: .normal)
return button
}()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
googleLogin.frame.size = CGSize(width: 150, height: 48)
googleLogin.center = view.center
googleLogin.addTarget(self, action: #selector(login(_:)), for: .touchUpInside)
view.addSubview(googleLogin)
}
@objc func login(_ sender: UIButton) {
GIDSignIn.sharedInstance.signIn(withPresenting: self) { signInResult, error in
guard error == nil else { return }
// If sign in succeeded, display the app's main content View.
let email = signInResult?.user.profile?.email ?? ""
let name = signInResult?.user.profile?.name ?? ""
let user = signInResult?.user
let idToken = user?.idToken?.tokenString
let accessToken = user?.accessToken.tokenString
let refreshToken = user?.refreshToken.tokenString
print(email)
print(name)
}
}
}
3. 결과
프로젝트 실행 후 로그인을 진행해보면 결과가 자알 나타나고 있네요.
읽어주셔서 감사합니다. 틀린곳이 있다면 알려주세요 :)
4. 참고
'iOS > Swift' 카테고리의 다른 글
[iOS] ReactorKit 적용하기 (0) | 2024.03.26 |
---|---|
[iOS] 페이스북 로그인 SDK 적용 (0) | 2023.12.22 |
[iOS] 네이버 로그인 SDK 연동하기 (0) | 2023.06.21 |
[iOS] 카카오톡 로그인 SDK 연동하기 (0) | 2023.06.21 |
[iOS] Code Snippet(코드 스니펫), 코드 즐겨찾기 (0) | 2023.06.14 |
- Total
- Today
- Yesterday
- swift nimble
- ios xcframework
- XCTest
- swift google sdk
- swift reactorkit
- iOS Unit Tes
- swift google login sdk
- Framework
- ios google
- XCFramework
- swift google signin
- iOS Framework
- iOS 단위테스트
- swift xctest
- swift framework
- iOS Nimble
- swift 구글 sdk
- iOS Quick
- iOS 유닛테스트
- ios mvvm
- iOS 테스트 코드
- ios google signin
- Quick
- swift 구글 로그인
- Firebase Distribution
- nimble
- ios reactorkit
- ios 구글 로그인 sdk
- swift quick
- swift google login
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |