Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

Silent Push notifications XCode 16.3 stop working on production

Hello, we have recently started signing and building our applications using Xcode 16.3. Since we made this change, we’ve noticed that the applications have stopped receiving silent push notifications (content-available: 1) when they are distributed via TestFlight or the App Store, even though we haven’t changed anything in the way these notifications are sent.

As I mentioned, this started happening after migrating our project from Xcode 15 to Xcode 16.3. Regular push notifications are still working as expected, but silent ones are not being received by the apps.

We are desperate because we rely on these silent notifications to inform the apps of updates, and we haven’t been able to identify the root cause of the issue.

I am certain the silent notifications were not working as you thought they were even before, as silent notifications are heavily throttled, and you can expect no more than 1 or 2 notifications per hour to reach your app, and depending on the device conditions, it is possible that you receive none.

This is not a new change, and has been how things are for a long time. You may want to read about iOS Background Execution Limits

In any case, if you need to execute some code or process notifications in your app, your better option is using a Notification Service Extension where your extension will execute for every (visible) notification.


Argun Tekant /  DTS Engineer / Core Technologies

We found the problem. When we implemented the delegate methods for remote notifications we use didReceiveNotification delegate without completion handler. Before the update to XCode 16 did method is called with normaly but after we update to XCode 16 this method not called more with the app signed with distribution certificates but works well with development certificates. We change the delegate method for the new delegate method with completion handler:

        didReceiveRemoteNotification userInfo: [AnyHashable: Any],
        fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void
    ) 

and voila! all the notifications continue working normally. Its curious but de deprecated method continue works when build in develop mode but stop working when build for production.

Silent Push notifications XCode 16.3 stop working on production
 
 
Q