iOS 26 didRegisterForRemoteNotificationsWithDeviceToken is not being called

We have an app in Swift that uses push notifications. It has a deployment target of iOS 15.0

I originally audited our app for iOS 26 by building it with Xcode 26 beta 3. At that point, all was well. Our implementation of application:didRegisterForRemoteNotificationsWithDeviceToken was called.

But when rebuilding the app with beta 4, 5 and now 6, that function is no longer being called.

I created a simple test case by creating a default iOS app project, then performing these additional steps:

  • Set bundle ID to our app's ID
  • Add the Push Notifications capability
  • Add in application:didRegisterForRemoteNotificationsWithDeviceToken: with a print("HERE") just to set a breakpoint.
  • Added the following code inside application:didFinishLaunchingWithOptions: along with setting a breakpoint on the registerForRemoteNotifications line:
        UNUserNotificationCenter.current().requestAuthorization(options: [.badge, .alert, .sound]) { granted, _ in
            DispatchQueue.main.async {
                UIApplication.shared.registerForRemoteNotifications()
            }
        }

Building and running with Xcode 26 beta 6 (17A5305f) generates these two different outcomes based upon the OS running in the Simulator:

  • iPhone 16 Pro simulator running iOS 18.4 - both breakpoints are reached
  • iPhone 16 Pro simulator running iOS 26 - only the breakpoint on UIApplication.shared.registerForRemoteNotifications is reached.

Assuming this is a bug in iOS 26. Or, is there something additional we now need to do to get push notifications working?

Accepted Answer

Update: Not a bug in iOS 26. A colleague was able to test both my simplified project as well as our app on real hardware running iOS 26 beta 7. All works as expected.

This may be a limitation of the iOS 26 simulator as running on macOS 15.x perhaps.

I believe this is the same issue as reported here

Glad you have solved the issue with real hardware and unblocked, but this is still worth a bug report.

We'd greatly appreciate it if you could open a bug report, include sample code that reproduce the issue, and post the FB number here once you do.

Bug Reporting: How and Why? has tips on creating a successful bug report.

There are already at least two bugs filed as J-Ouyang pointed out in the linked thread:

  • FB19400926
  • FB19404213

Also, a colleague of mine seems to remember a similar issue a while back where receiving push notifications in the simulator required an updated macOS.

Currently, we cannot run the macOS Tahoe beta, so potentially that's now required (since iOS 26 beta 4) in order for the simulator to receive notifications.

  func application(_ application: UIApplication,
                   didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    let deviceType = UIDevice.current.userInterfaceIdiom == .pad ? "iPad" : "iPhone"
    let tokenString = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
    
    print("🎉 didRegisterForRemoteNotificationsWithDeviceToken CALLED on \(deviceType)!")
    print("✅ APNs device token registered on \(deviceType): \(tokenString)")
    
    Messaging.messaging().apnsToken = deviceToken
    
    // Give Firebase a moment to process the APNs token
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak self] in
      self?.fetchFCMToken(reason: "apnsRegistered")
    }
  }

This method is not being called. Tested device: Ipad Air - iOS 26.0(Simulator) also in real iPad.

  • xcode 26.0.1
iOS 26 didRegisterForRemoteNotificationsWithDeviceToken is not being called
 
 
Q