Add Push Notification to your app
The first thing you have to do is implement Push Notifications using the UserNotifications framework.
Create a key
Go to developer.apple.com with an admin account and under Keys -> All click the plus button in the top right corner.
Specify a name for your key and enable Apple Push Notifications service (APNs).


Then download the .p8 key file created and upload it in our dashboard.
Add notifications to your app
Now go to your app settings under Identifier -> AppId and enable the notifications services following the steps. After that, you need to update the Provisioning Profile for your app or create a new one because push notifications don't work for applications signed with a wildcard Provisioning Profile.
Now it's finally time to move to XCode. Open your project and enable push notifications in the capabilities tab.

In AppDelegate.swift
add
import UserNotifications
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
...
let userNotificationCenter = UNUserNotificationCenter.current()
userNotificationCenter.delegate = self
self.registerForPushNotifications()
...
}
// MARK: - Notifications
func registerForPushNotifications() {
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, _) in
guard granted else { return }
self.getNotificationSettings()
}
}
func getNotificationSettings() {
UNUserNotificationCenter.current().getNotificationSettings { (settings) in
guard settings.authorizationStatus == .authorized else { return }
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
}
extension AppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler
completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler(UNNotificationPresentationOptions.alert)
}
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler
completionHandler: @escaping () -> Void) {
completionHandler()
}
}
Last updated
Was this helpful?