본문 바로가기
📚 Database/Firebase

FCM(Firebase Cloud Messaging) 구현하기

by Fomagran 💻 2020. 1. 22.
728x90
반응형

1.키체인 들어가서 인증서 받기

2.애플 개발자에서 키생성하기

 

키옆 플러스버튼을 누르거나 처음인 경우는 create key를 해준다.

key name을 정해주고 Apple Push Notification service에 체크를 해주고 컨티뉴를 눌러준다

리지스터를 눌러준다

key ID를 따로 적어두고 다운로드를 누른다.

그럼 이렇게 다운받아진다. 좀 이따 써야되니깐 잘 보관해놓도록

다시 애플 identifiers로 들어가서 앱을 누른뒤에

App ID Prefix는 팀ID로 쓰이므로 이것 역시 따로 적어두도록

컨피겨레이션에서 Push Notifications를 체크해준다. 컨피겨눌렀을 때는 따로 안해도 됨.

3.Xcode Project

podfile에 아래 두개를 추가해주고 pod install을 해준다.

그리고 Signing & Capabillities에 들어가서 Background Modes를 추가해주고 Remote notifications를 체크해준다 그리고 Push Notifications를 따로 또 추가해주도록 한다.

App delegate에 가서 아래 두개를 import해주고

didfinishLaunching이 있는 곳에 아래 코드를 추가준다.

Messaging.messaging().delegate = self
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(options: authOptions,completionHandler: {_, _ in })
application.registerForRemoteNotifications()

그리고 따로 didRegisterForRemoteNotificationsWithDeviceToken이라는 함수를 만들어주고 아래 코드를 작성한다.

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
     Messaging.messaging().apnsToken = deviceToken
  }

그리고 따로 UNUserNotificationCenterDelegate와 MessaginDelegate를 extension해주고 아래 코드를 넣는다.

extension AppDelegate: UNUserNotificationCenterDelegate {
  func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    print("\(#function)")
  }
}
extension AppDelegate: MessagingDelegate {
  func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
    print("Firebase registration token: \(fcmToken)")
    let dataDict:[String: String] = ["token": fcmToken]
    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "FCMToken"), object: nil, userInfo: dataDict)
  }
}

 

 

그 다음 앱을 실행시켜보면 아래와 같이 토큰이 나오는데 나중에 써야되니 기록해두록 하자

4.파이어베이스 콘솔

 

설정에(톱니바퀴버튼) 들어가서 클라우드메시징을 누른 뒤

아래로 내리면 iOS 앱 구성이 있는데 거기에 APN인증 키를 아까 적어놨던 키 ID와 팀 ID를 적어준 뒤 애플 개발자에서 다운받았던 파일을 첨부해준다.

그리고 성장에 Cloud Messaging을 들어가서

원하는 알림을 설정해준다.

참고한 사이트

https://medium.com/@jang.wangsu/ios-swift-fcm-firebase-cloud-messaging-push-%EB%A9%94%EC%8B%9C%EC%A7%80-%EC%84%A4%EC%A0%95%ED%95%B4%EB%B3%B4%EA%B8%B0-852a9af23b96

728x90
반응형

댓글