안녕하세요 MangDic 입니다 :)
오늘의 목표는 Firebase 푸시 알림 설정하기 !!
FCM (Firebase Cloud Messaging) 푸시 알림을 실습해 봅시다
가장 중요한 것(?)은 App Store 개발자 계정이 필요하다는 점!
안드로이드는 상관 없지만, iOS는 없으면 진행할 수 없습니다 ㅠㅠ 어쩔 수 없이 눈물을 머금고 129,000 원 FLEX...☆☆☆
각설하고, 본격적으로 설정을 해봅시다 !
우선 설정을 위해 https://firebase.google.com/ 에 접속합니다.
왠지 눌러야 할 것만 같은 저 프로젝트 추가 버튼을 클릭하도록 하죠
그러면 이러한 페이지가 나오는데, 프로젝트 이름을 설정해주고 쭉쭉 넘어갑니다
설정을 끝내면 프로젝트를 생성합니다
두둥 탁 !
프로젝트가 완성되면 iOS 앱 추가 버튼을 클릭합니당
여기서 앱 닉네임, App Store ID 는 선택사항이지만 번들 ID는 꼭 Xcode 번들 ID로 적어주셔야 합니다!
Project - General - Bundle Identifier에서 그대로 복사하시면 됩니다!
내용을 추가해주시고 앱 등록을 클릭해주세요
구성 파일을 다운로드 받아서 Xcode 프로젝트에 추가하시면 됩니다 ! 우선 다운로드 기기
프로젝트 폴더 아래에 넣어주면 됩니다!
그 후에는 podfile을 만들어야 하는데요.
우리는 FCM을 사용할 것이기 때문에 Firebase/Analytics 외에 Firebase/Messaging 도 추가해줍니다 !
이렇게 추가해주시고 터미널 창에서 pod install 하시면 됩니다!
다음 단계는 Xcode에 초기화 코드를 추가하는 부분입니다. 우리는 FCM을 사용할 것이기 때문에 더 추가해야 합니다.
import UIKit
import Firebase
import UserNotifications
@main class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: {_, _ in })
}
else {
let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil) application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
Messaging.messaging().delegate = self Messaging.messaging().token { token, error in
if let error = error {
print("Error fetching FCM registration token: \(error)")
}
else if let token = token {
print("FCM registration token: \(token)")
}
}
return true
}
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
}
}
extension AppDelegate : MessagingDelegate {
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
print("파이어베이스 토큰: \(fcmToken)")
}
}
extension AppDelegate : UNUserNotificationCenterDelegate {
// 푸시알림이 수신되었을 때 수행되는 메소드
func userNotificationCenter(_ center: UNUserNotificationCenter,willPresent notification: UNNotification,withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
print("메시지 수신")
completionHandler([.alert, .badge, .sound])
}
func userNotificationCenter(_ center: UNUserNotificationCenter,didReceive response: UNNotificationResponse,withCompletionHandler completionHandler: @escaping () -> Void) {
completionHandler()
}
}
AppDelegate.swift에 다음과 같이 코드를 추가해줍니다.
정상적으로 완료하면 저렇게 iOS 앱이 추가됩니다 !!
다음 시간에 이어서 쓰도록 하겠습니다 ㅎㅎ
'iOS > Firebase' 카테고리의 다른 글
swift - Firebase 푸시 알림 설정하기 (FCM) (2/2) (8) | 2021.08.30 |
---|