Today 5/15
Notification의 종류에는 local과 server를 통한 push가 있다. 오늘은 이 중 push를 학습한다.
APNs - Apple Push Notification Service
Provider(FCM) - APNs - Device 의 상태로 서로 연결되어 있고, APNs가 중간에서 토큰을 사용하여 서로를 중재하고 있다고 생각하면 된다.
APNs에서 인증서 설정을 하는 방법에는 크게 두 가지가 있다.
그 중 두 번째 방법은 하나의 bundle identifier을 대상으로 동작하기 때문에 첫 번째 방법보다 간편하다.
두 번째 방법 또한 p12와 p8로 나뉘는데, 요즘에는 1년마다 인증서를 갱신하지 않아도 되고, 프로젝트마다 다른 인증서를 발급받지 않아도 되는 p8 방식을 더 많이 사용한다고 한다.
P12방식 설명
[iOS] FCM(Firebase Cloud Messaging) + APNs - 푸쉬 알림 등록 (2)
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
FirebaseApp.configure()
Messaging.messaging().delegate = self
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(options: authOptions) { granted, error in
if granted {
print("알림 등록이 완료되었습니다.")
}
}
application.registerForRemoteNotifications()
return true
}
extension AppDelegate: UNUserNotificationCenterDelegate {
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Messaging.messaging().apnsToken = deviceToken
}
}
extension AppDelegate: MessagingDelegate {
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
// 이 받은 값을 서버로 보내주어야함.
print("FCM Token: \(fcmToken)")
}
}