FCM 연동하기
FCM 은 Firebase Cloud Messaging 으로 Firebase 콘솔에서 푸시를 보낼 수도 있으며,
서버에서 푸시를 보낼 수 있도록 지원하는 서비스
Firebase에 앱 추가
앱 추가 클릭
iOS 클릭
번들 id 추가 후 앱 등록 클릭
plist 파일 다운로드 받기! 드래그 해서 프로젝트에도 추가 해 준다.
하라는 대로 해준다.
시키는 대로 한다.
연동하기
톱니바퀴 버튼 클릭
클라우드 메세징 클릭
여기에 인증서를 업로드 해 주는데, 나는 아직 개발 인증서만 만들어 뒀으니까
개발 인증서를 업로드 해 준다.
오나료~
프로젝트 세팅하기
+ Capability
눌러서 Push Notifications 추가해준다.
Background Modes도 추가해주고, 위와 같이 체크 해 준다.
그리고 podfile을 열어서
pod 'Firebase/Messaging'
추가 후 pod install
해 준다.
AppDelegate.swift
import FirebaseMessaging
import UserNotifications
FirebaseMessaging, UserNotifications를 import 해 준다.
UNUserNotificationCenter.current().delegate = self
Messaging.messaging().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter
.current()
.requestAuthorization(
options: authOptions,completionHandler: { (_, _) in }
)
application.registerForRemoteNotifications()
권한 요청하는 부분!
extension AppDelegate : MessagingDelegate {
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
print("Firebase registration token: \(fcmToken)")
}
func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingDelegate) {
print("Received data message: \(remoteMessage.description)")
}
}
extension AppDelegate : UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter,willPresent notification: UNNotification,withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.alert, .badge, .sound])
}
func userNotificationCenter(_ center: UNUserNotificationCenter,didReceive response: UNNotificationResponse,withCompletionHandler completionHandler: @escaping () -> Void) {
completionHandler()
}
}
푸쉬 알림 테스트하기
Cloud Messaging에 들어간다
맘대루..
alert 잘 뜨고..
테스트 메시지 전송을 누르면 이 창이 뜬다.
콘솔에 찍혀있는 토큰 값 입력해주면 된다 ~.~