The Push Notifications Console now includes metrics for notifications sent in production through the Apple Push Notification service (APNs). With the console’s intuitive interface, you’ll get an aggregated view of delivery statuses and insights into various statistics for notifications, including a detailed breakdown based on push type and priority.
Introduced at WWDC23, the Push Notifications Console makes it easy to send test notifications to Apple devices through APNs.
Learn more.
APNS
RSS for tagSend push notifications to Mac, iOS, iPadOS, tvOS devices through your app using the Apple Push Notifications service (APNs).
Posts under APNS tag
200 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
The Certification Authority (CA) for Apple Push Notification service (APNs) is changing. APNs will update the server certificates in sandbox on January 20, 2025, and in production on February 24, 2025. All developers using APNs will need to update their application’s Trust Store to include the new server certificate: SHA-2 Root : USERTrust RSA Certification Authority certificate.
To ensure a smooth transition and avoid push notification delivery failures, please make sure that both old and new server certificates are included in the Trust Store before the cut-off date for each of your application servers that connect to sandbox and production.
At this time, you don’t need to update the APNs SSL provider certificates issued to you by Apple.
Hi,
I'm making changes in boarding pass through my webService and I changing Seat information but Wallet is not highlighting this information.
Am I doing wrong? What do I need to do? Do need I inform anything?
The request I do to silent push notification:
apns-priority: 5
apns-topic: pass.****
apns-push-type: background
{ "aps": { "content-available": "1" } }
Images links (before/after changes)
https://ibb.co/0sPkbSZ
https://ibb.co/rZR1jcC
https://ibb.co/BCZKF1h
https://ibb.co/zxQNGWW
We have modified the program as we received in the previous(thread 764479) issue.
Our program works very well and the notification problem has been almost solved in the test.
Then, we tested it in the user's environment.
At that time, one of the three iPhones stopped receiving notifications.
After 10 minutes, VoIP notifications were received again.
This device received PUSH notifications even when VoIP notifications did not come.
We must explain to the user why this incident occurred.
We would like to know if these three notifications were sent correctly to the device.
Also, is there any other way for us to deal with this other than improving the network?
[APNS LIST]Nov. 20th
could not receive(failed)
15:06:13 5793987C-D1A4-811F-917F-87DD7F5083B3
15:07:09 667E0A2F-43B5-37FC-2F2A-45A6C27EFC34
15:19:31 1353DF78-519E-B1DC-82B7-8B890E59FE37
received(success)
15:04:09 19CC1937-533A-9AF4-9472-41C839E461D7
15:35:00 CD23AC57-6EC7-4523-941F-B103EDB4DEFB
I'm encountering an unexpected issue in my app since upgrading to iOS 18, and I’m wondering if anyone has found a solution or workaround.
The Problem: The userNotificationCenter(:willPresent:withCompletionHandler:) method is being triggered twice whenever a push notification arrives while the app is in the foreground. Additionally, application(:didReceiveRemoteNotification:fetchCompletionHandler:) is also being triggered once during the same notification event.
This redundant triggering is causing inconsistent behavior and double-processing of notifications, which is obviously problematic for my use case. The exact flow looks like this:
userNotificationCenter(:willPresent:withCompletionHandler:) — called twice.
application(:didReceiveRemoteNotification:fetchCompletionHandler:) — called once.
Has anyone else experienced this behavior specifically in iOS 18? Is this a known issue with the new version? This issue is affecting how we handle notifications in a major way, and I’m hoping there's a more fundamental fix or explanation for this behavior in iOS 18.
I send APNs notifications to my devices with the CloudKit dashboard. I test with two devices;
Device with Silent Push Working Successfully:
iOS version 16.5.1 (c), Model iPhone Xs
Silent Push Failed Device:
iOS version 15.3.1, Model iPhone Xr
Normal alert notifications work successfully on both devices. But I can't see any log in my project even though silent push is sent successfully on one device.
What I've Checked:
content-available is set to 1.
My app is not in kill state, it is in foreground or pending in the background.
When I send simple notifications, I can see logs in my swift project and notifications on physical devices without any problem.
No, my certificate has not expired and if there was a problem with it, I would not be able to see the normal notifications.
My phone is not in power saving mode and the “Background App Refresh” option is turned on in the app's settings.
Both devices in charging state.
App capabilities: Background Modes is enabled with Remote Notifications, Background Fetch, Background Processing.
CloudKit Dashboard After Sending Silent Push:
My AppDelegate Class In Swift Project:
import SwiftUI
import UIKit
import UserNotifications
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
if granted {
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
}
return true
}
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
let tokenParts = deviceToken.map { data in String(format: "%02.2hhx", data) }
let token = tokenParts.joined()
print("Device Token: \(token)")
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
print("Failed to register: \(error)")
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
logInfo("Received Push Notification: \(userInfo)")
if let aps = userInfo["aps"] as? [String: AnyObject], aps["content-available"] as? Int == 1 {
logInfo("This is a silent push notification")
//DO SOME WORK
completionHandler(.newData)
}
completionHandler(.newData)
}
}
We submitted firewall request to below destination subnets and we still see connection refused to port 5223. Please advise why are we seeing connection refused and should we need 5223 port.
Subnets - 17.249.0.0/16, 17.252.0.0/16, 17.57.144.0/22, 17.188.128.0/18, 17.188.20.0/23
Hi) we have two ios apps in same Firebase project - with different apple bundle ids. One of them had connected APNS with Firebase and everything had worked perfectly - push notifications where delivered every time. But recently we occationaly put same APNS to other our Firebase's ios app and as result we lost all pushes - on both app. After deletion APNS from both of them and reconnecting APNS to app with proper apple bundle id push notifications didn't start to work.
could you please suggest what we are suppose to do to resolve issue?
Currently, our provider server uses token-based authentication with APNs.
In addition, to establish a connection with APNs, we have installed the "AAACertificateServices 5/12/2020" certificate from the "Sectigo KnowledgeBase website" on the provider server.
Question 1
Do I need to update the server certificate of the Apple Push Notification Service at the following URL for the above provider server?
URL
https://developer.apple.com/jp/news/?id=09za8wzy
Question 2
If registration is required, how long will it be valid for?
Root certificate
https://developer.apple.com/documentation/usernotifications/setting-up-a-remote-notification-server
Token-based authentication
https://developer.apple.com/documentation/usernotifications/establishing-a-token-based-connection-to-apns
We have an authenticator app (like Google Authenticator & Microsoft Authenticator) with a push notification feature.
From past 2 weeks we are not receiving push notifications in the app. Any changes made recently in Apple Firebase which would impact the push notification functionality.
On apple dev site in the news section here you can find two announcements about their renewal of:
USERTrust RSA Certification Authority certificate.
Context:
now, I have an app delivered via in-house distribution due to Apple developer Enterprise program. My app uses push notifications, but we are using auth tokens.
Should I do something on the app?
Should I advice backend colleague to check or do something server-side?
below you can find the two announcements:
sanbox link
APNs Certificate Update Begins January 20, 2025 The Apple Push Notification service (APNs) will be updated with a new server certificate in sandbox on January 20, 2025. Update your application’s Trust Store to include the new server certificate: SHA-2 Root : USERTrust RSA Certification Authority certificate.
and
production link
APNs Certificate Update Begins February 24, 2025 The Apple Push Notification service (APNs) will be updated with a new server certificate in production on February 24, 2025. Update your application’s Trust Store to include the new server certificate: SHA-2 Root : USERTrust RSA Certification Authority certificate.
I’m looking for advice on implementing an Active Supervision Mode for enhanced parental control. My goal is to restrict access to both iOS system apps and third-party applications to create a safer and more tailored digital experience for my child.
Here’s what I’d like to achieve:
App Restrictions: Block specific apps (both iOS and third-party) and allow access only to approved ones.
Time Limits: Set daily usage limits for individual apps or app categories.
Content Filtering: Apply restrictions to block inappropriate content and age-inappropriate apps.
Remote Management: Manage these settings remotely from my device for added convenience.
Activity Monitoring: View app usage stats or receive alerts for policy violations.
I understand that Screen Time on iOS offers basic parental controls, but I’m exploring whether iOS supports more advanced capabilities natively or through additional configurations.
I’ve also heard that enrolling a device in Apple Business Manager (ABM) and linking it to an MDM (Mobile Device Management) solution might provide greater control. If this is a viable solution, could anyone provide guidance on:
Enrolling a personal or family-owned device into Apple Business Manager.
Linking an MDM for configuring app restrictions and monitoring usage.
Alternatively, if there are third-party parental control apps that work seamlessly with iOS to achieve these goals, I’d appreciate your recommendations!
Thanks in advance for your insights!
I’m looking for advice on implementing an Active Supervision Mode for enhanced parental control. My goal is to restrict access to both iOS system apps and third-party applications to create a safer and more tailored digital experience for my child.
Here’s what I’d like to achieve:
App Restrictions: Block specific apps (both iOS and third-party) and allow access only to approved ones.
Time Limits: Set daily usage limits for individual apps or app categories.
Content Filtering: Apply restrictions to block inappropriate content and age-inappropriate apps.
Remote Management: Manage these settings remotely from my device for added convenience.
Activity Monitoring: View app usage stats or receive alerts for policy violations.
I understand that Screen Time on iOS offers basic parental controls, but I’m exploring whether iOS supports more advanced capabilities natively or through additional configurations.
I’ve also heard that enrolling a device in Apple Business Manager (ABM) and linking it to an MDM (Mobile Device Management) solution might provide greater control. If this is a viable solution, could anyone provide guidance on:
Enrolling a personal or family-owned device into Apple Business Manager.
Linking an MDM for configuring app restrictions and monitoring usage.
Alternatively, if there are third-party parental control apps that work seamlessly with iOS to achieve these goals, I’d appreciate your recommendations!
Thanks in advance for your insights!
The app gets stuck after login on an iOS 18 device. It works in Xcode, but the simulator shows the following console error: IntegrationApp(769,0x1f0094c00) malloc: xzm: failed to initialize deferred reclamation buffer (46).
I am sending push notifications to the app with critical alerts, but there is a significant delay.
If the number of target devices is 1000 or less, notifications will be received normally within a few seconds to a minute.
Once the number of target devices exceeds 1000, some devices will arrive quickly (normally within a few seconds to 1 minute) and others will arrive late (3 minutes to 15 minutes, divided into hundreds of items).
In severe cases, notifications to more than 80% of devices will be delayed.
Example: If you send 3000 notifications at once,
1 minute: Notify 400 items
5 minutes: Notify 1000 items
10 minutes: Notify 1000 items
13 minutes: Notify 600 items
*The timing of 5 minutes, 10 minutes, and 13 minutes changes every time and is not at regular intervals.
We understand that according to the push notification specifications, sending several thousand messages at once is not a problem.
Please let me know if there is a rule, such as sending 1000 items at a time, in order to deliver quickly and with minimal delay.
I am using iphone 11 with ios version 18.1 and I found one issue in call recording during FT audio call. Call gets dropped as soon as call recording start. This bug is also reproducible on iphone 14 pro max having same ios version. I tried it 5/5 times and it is 100% reproducible. Can you please help to fix this issue. This is really a serious quality concern as per apple standards.
Hi there,
We’re using APNs Push delivery metrics, which provide a breakdown including metrics like Received by APNs, Delivered to Device, and Discarded - Token Unregistered.
To track unregistered tokens on our end, we also monitor the 410 error responses from APNs, which typically indicate that a token is no longer valid. However, we’ve noticed a discrepancy: the number of 410 errors we receive is much lower than the Discarded - Token Unregistered count shown in the APNs console.
Is this difference expected? Specifically, does APNs sometimes know that a token is unregistered but still return a success status to us when we attempt to send a push to that token?
Thank you for any insights you can provide!
System Information: iPhone 13, iOS 17.6.1
Steps to reproduce:
Open my app, causing it to register for an APNS token
Kill my app to make sure it is not in the foreground
Send a push notification with a payload similar to this:
{"aps":{"alert":{"title":"My App Name","body":"10:24am 🚀🚀🚀"}},"price":19,"clock":175846989,"time":1731001868.379526}
And the following attributes:
Expiry: (Date that is 7 days from now)
Type: Alert
Priority: High (10)
Payload Size: 141 bytes
The notification appears in the Notification Center, as expected
Turn on Airplane Mode (WiFi=off)
Wait between 60 seconds - 8 hours (varies)
Send the same notification payload/attributes again
Wait between 60 seconds - 8 hours (varies)
Turn on WiFi
Wait 1-30 minutes (varies)
Expected behavior:
The notification appears in the Notification Center
Actual behavior:
Push notifications from other apps immediately appear in the Notification Center
Roughly 30% of the time: The push notification(s) from my app never arrive, even after waiting 30 minutes
Roughly 70% of the time: The notification appears in the notification center, and everything works fine
Thoughts:
Expiry must be set correctly because I've seen my notifications get queued and then delivered (correctly) in the CloudKit Push Notification tool.
Identical notifications (payload, APNS headers, etc.) are also sent to other devices at the same time. They receive the notifications just fine.
It must not be my iPhone's notification Settings, because notifications appear correctly when online
I've tried restarting the iPhone, it did not fix this issue
So it seems it must be an unexpected behavior in APNS or something broken with my specific phone? Not sure what else I could possibly do to make sure the notifications arrive.
This breaks the entire experience of my app. I need to be able to notify users of incoming messages so they do not miss them.
I am developing the iOS application using PushKit and APNS. Some users didn't get any notifications after some events, such as updated iOS 18 or a new version from the App Store. After the event had changed device tokens (PushKit, APNS).
When the app has launched, register the iOS system with PushKit and APN tokens and upload it to our server. Most of the time, the tokens didn't change.
I was investigating the console log when making a call from another device or sending APN. But I didn't get any logs from it. Normally it is looking following apsd, callserviced, Springboard, delivering or launching the app when getting a voip push.
The issue was solved after reinstalling the app. But it still occurred with users—about 1% of total.
How do I solve the issue without reinstalling the app?
When I pressed an early access a few days ago and when I check it it still says we will notify you when it is ready can apple please fix this problem with image playground
Apple Push Notification service server certificate update
https://developer.apple.com/news/?id=09za8wzy
All developers using APNs will need to update their application’s Trust Store to include the new server certificate
What exactly should developers do?
Please tell me the specific method.
Please make sure that both old and new server certificates are included in the Trust Store before the cut-off date for each of your application servers that connect to sandbox and production.
How do I make sure that both the old and new server certificates are in the Trust Store?
Thank you for your understanding.
I updated to iOS 18.2 beta 2, and with it, I am able to see behind the early access requested by just swiping down, but when I do swipe down, the app closes. Does this mean I'm close to getting access?