Hello,
I received this message below. I reached out to support but they said they can not help with something this specific. Any organization in the same boat? Which of the certificates in the provided link should I use?
Hello,
We’re reaching out with a final reminder that the Certification Authority (CA) for Apple Push Notification service (APNs) is changing. APNs updated the server certificates in sandbox on January 21, 2025. APNs production server certificates will be updated on February 24, 2025. To continue using APNs without interruption, you’ll need to update your 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.
Notifications
RSS for tagLearn about the technical aspects of notification delivery on device, including notification types, priorities, and notification center management.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi,
Regarding the announcement about the Apple Push Notification Service (APNs) Server Certificate Update, I wanted to clarify whether it will impact my app’s push notification setup.
I use Firebase Cloud Messaging (FCM) to send push notifications to iOS devices, and in my Firebase project settings, I have configured an APNs Authentication Key under the Apple app configuration tab (Firebase Console > Project Settings > Cloud Messaging > iOS app configuration).
The authentication key I am using was generated from Apple Developer > Certificates, Identifiers & Profiles > Keys.
Since I am using this authentication method instead of APNs certificates, are there any changes I need to be aware of due to the APNs server certificate update, and do I need to update anything in my current configuration to ensure push notifications continue to work?
Thanks in advance!
Topic:
App & System Services
SubTopic:
Notifications
Tags:
APNS
App Store Server Notifications
Notification Center
User Notifications
I received the email from Apple: “Action Required: Apple Push Notification Service Server Certificate Update”.
I'm not quite clear on what exactly I need to do.
In my case, I have my own APN service on a DigitalOcean server and I have both .pem and .p12 certificate there.
Can anyone help me?
We are attempting to update our app to use the PTT framework, as it has been made clear that this will be required in a future iOS version as opposed to using the Unrestricted VoIP entitlement we are using for several features of our app.
However, the behavior of this framework poses some problems with implementing our app's functionality:
It is not possible to programmatically join a channel when the app is not in the foreground. This hinders our ability to implement the Automatically activate radio stream feature of our app, which allows users who have opted into this feature to immediately begin hearing live PTT audio from their agency following an incident alert. Having the app constantly "joined to a channel" and using the restoration delegate could potentially work, however this is not ideal as this would result in the PTT UI needing to be displayed at all times, even when no radio stream is activated.
We have a "Text to Speech" option that, when enabled, reads out the content of an incident alert after the alert sound has played. This currently happens by triggering an AVSpeechSynthesizer in the PushKit incoming push callback. It may be possible to render TTS audio on the fly in a Notification Service Extension and assign it as the notification's sound, if that is possible this is less of a problem.
We also use the PushKit callback to, again if the user has enabled it, activate a "Shake to Respond" feature, allowing a short period of time after receiving an incident alert in which the user can shake their device to indicate that they are responding to the incident. There does not appear to be any way to have the level of background execution required to implement this using an NSE, and this is of course beyond the scope of the PTT framework.
What options do we have to be able to continue to provide this functionality, without risk of it being disabled in a future iOS version?
Hello Everyone,
I have some questions regarding the Apple notification alert update received in October 2024 for the APNs server certificate update.
We are using Azure Notification Hub to receive push notifications. I confirmed with the Azure team, and they have already implemented the required changes. However, push notifications are still not working in the sandbox environment.
Could you please provide any insights on this?
Thanks.
Hello Everyone,
We have some doubts regarding the apple notification alert update received in Oct 2024 for APNS server certificate update.
Does this change is already live for sandbox environment?
As we have checked on sandbox environment without changing any certificate its working and we are able to get push notification.
Does that means our system does not need any change for production as well?
If required where we should add https://www.sectigo.com/knowledge-base/detail/Sectigo-Intermediate-Certificates/kA01N000000rfBO. This certificate.
For FYI we are using python library called django-push-notifications which internally call to the APNS server for push notifications.
The app will be wake up from killed status by silent notification or not?
This is a question for years, from my test. It will wake up.
Here the wake up means it will call the "didFinishLaunchingWithOptions" method. But we can not see the app in the "recent apps" list after switching home-screen up.
So any Apple dev can give me a detailed explain for this?
Hello,
I am encountering an issue with maintaining socket connections in iOS applications that need to remain active while in background mode.
I am developing an application that requires maintaining an active socket connection in the background to receive real-time data. However, I've noticed that the socket connection is terminated as soon as the app enters background mode, which affects the intended functionality of my app.
I understand that there are restrictions on background activities in iOS to preserve battery life and system resources. However, I would like to know what approach Apple recommends for handling this type of requirement. Are there specific APIs or configurations I should consider to ensure the socket remains active in the background?
I would greatly appreciate any guidance or resources you could provide. I am eager to ensure that my app complies with Apple's guidelines and delivers the best possible experience for users.
Topic:
App & System Services
SubTopic:
Notifications
Hi there,
I’m currently working on an app designed for doctors to respond to life-threatening situations in hospitals. The goal is for critical alerts to trigger an alarm, regardless of whether the app is in the foreground or background. The critical alerts entitlement is already set up, but there’s a limitation: I can only attach a 30-second audio file to the notification, as I can’t run code to loop the sound when the app is swiped away.
Does anyone have suggestions on how I might approach this problem?
Thanks so much in advance!
Topic:
App & System Services
SubTopic:
Notifications
@App Store Commerce Engineer hi, have you already implement something for handle server notification if user buy non consumable purchases product, how my server should know if user boutght something ?
Topic:
App & System Services
SubTopic:
Notifications
We are struggling with the lack of information provided by Apple re: Apple Push Notification service server certificate update
We want help from other developers on HOW TO: make sure that both old and new server certificates are included in the Trust Store
Exactly HOW is this done?
What is the Trust store and how is it accessed?
Is this done for our account once OR for each for the apps utilising APNs?
Can anyone assist?
Thanks
Louise
Topic:
App & System Services
SubTopic:
Notifications
PLATFORM AND VERSION: iOS
Development environment: Other: .net MAUI with vscode
Run-time configuration: iOS 18.1.1
DESCRIPTION OF PROBLEM
APNS notifications of apns-push-type pushtotalk sometimes stop arriving after switching networks.
STEPS TO REPRODUCE
We have created a simple app which can be used to deminstrate this issue. When you launch the app it displays the APNS token which you can then use fromn the Apple Push Console to manually send it PTT push notifications.
https://github.com/trampster/PttPushNotificationIssue
On an iPhone SE (we havn't been able to reproduce on our iPhone 11)
Start the APP to register for the APNS push notifications
Turn off the WiFi wait for 5 seconds
Attempt a push to the app manually using the Push Notifications Console (this should fail, which is fine)
Turn on Cellular and wait for it to connect
Attempt to push to the app manually using the Push Notifications Console
-> This fails, and all attempts to send an pushtotalk push notifications fail until the we switch network again.
Send a push while offline before connecting to the new network seems to make it happen more often but hard to tell for sure.
The results of the failed push in the console look like this:
Delivery LogLast updated: 30/01/25, 16:45:06 GMT+13 Refresh
30 Jan 2025, 16:45:03.661 GMT+13
received by APNS Server
30 Jan 2025, 16:45:03.662 GMT+13
discarded as device was offline
The device is actually very much online.
Switching networks again oftern makes things come right. But it doesn't seem to come right by itself.
We can't respond to network changes and do anything as the whole point of using push-to-talk push notifications is to wake up the app when in the background to answer a call, this means we are not running and therefore cannot respond to network changes to try to work arround this issue.
iOS has a feature that suppresses or limits the display of push notifications when multiple notifications are sent in quick succession (often referred to as rate limiting or filtering). Specifically, how many notifications within what timeframe might trigger such suppression?
Topic:
App & System Services
SubTopic:
Notifications
I'm having trouble displaying the Apple Wallet pass logo on iOS 18 when a notification occurs. It works on iOS 17 but not on iOS 18 (tested on versions 18.1 and 18.3).
I ensured the Wallet pass icon sizes are correct:
icon.png → 29×29
icon@ 2x.png → 58×58
icon@ 3x.png → 87×87
Questions:
Has Apple changed any requirements for displaying Wallet pass logos in iOS 18?
Are there new size, format, or metadata constraints?
Is it possible to display a live activity on the lock-screen without a dynamic island? Or at least without expanding the dynamic island more than just for a small icon?
struct SomeWidgetLiveActivity: Widget {
var body: some WidgetConfiguration {
ActivityConfiguration(for: SomeAttributes.self) { context in
} dynamicIsland: { context in
DynamicIsland {
DynamicIslandExpandedRegion(.leading) {
// Seems to be mandatory, any way around it?
}
} compactLeading: {
} compactTrailing: {
} minimal: {
}
}
I couldn't quite find a way.
Thank you
Do we need this new certificate "SHA-2 Root : USERTrust RSA Certification Authority certificate" if we are using token based authentication with APNs? We are signing the JWT with the private Auth key?
Or is the new certificate needed on top of this?
We are doing something like this:
Dictionary<string, object> payload = new Dictionary<string, object>()
{
{ "iss", teamId }, // Apple Developer Team ID
{ "iat", unixTimestamp } // Issued-at time
};
Dictionary<string, object> header = new Dictionary<string, object>()
{
{ "alg", "ES256" },
{ "kid", keyId } // Key ID from Apple Developer portal
};
string token = JWT.Encode(payload, privateKey, JwsAlgorithm.ES256, header);
Hello ,
We are trying MDM APNs push using following command
curl.exe -X POST --http2 -k -v --cert PushCert.pem --cacert cacert.pem https://api.push.apple.com/3/device/9BFDFB46D48159D16E5DC80391B765EE99524CF294BB4BF9FB5AEA7A5F3FFD79 -d "{"mdm":"84F0C145-5963-4F06-9D11-DFBDB45802D5"}" -H "apns-topic: com.apple.mgmt.External.c217c1bf-ad51-42a9-9108-2e92ef705b2a" -H "apns-push-type: mdm"
The command process correctly there is no error but device doesn't receive the Apns push.
At the same time the older device recives the Apns push but newer device not.
What can be the cause,how to debug this issue.
While click on notification tray I do not want to open my ticket.
I am developing an app where the primary feature is to notify users.
To deliver notifications more effectively, I am considering using PushKit and CallKit.
Would it be acceptable under the guidelines to use PushKit and CallKit as an optional feature for an AI agent to notify users via a phone call?
I'm working with a deeplink I have to implement to my app. The deeplink is working because in some cases i will explain later the method is being executed. So when I tap the deeplink with a deeplink-tester-web I detect if the url is which I want and, if it's the case, i post a notification to NotificationCenter with a string parameter I need.
Case 1. I tap the deeplink when the view controller with the addObserver method is at the background with the app itself. It works (the only case)
Case 2. The app is closed so the deeplink opens the app directly in that view controller (the method is no being called event if the notification is there) Why?
Case 3. The app is at the background but in another screen. When I tap the deeplink and, after returning to the app, travel to my viewController the method is not called when the ViewController becomes visible. Why?
I've not seen anything in the documentation that can help me and i cannot access to the array of observers because the API does not allow that
Thanks. Any help will be appreciate.
Code:
When the deeplink is tapped the app delegate method that manages universal links call to this code when the url is a specific one
@objc func handleRecommendedOffer(offerId: String) {
NotificationCenter.default.post(name: .deeplinkRecommendedOfferNotification, object: nil, userInfo: ["offerId": offerId])
}
In my viewcontroller viewDidLoad (i've tried also viewWillAppear too):
NotificationCenter.default.addObserver(self, selector: #selector(goToDetail(notification:)), name: .deeplinkRecommendedOfferNotification, object: nil)
@objc private func goToDetail(notification: Notification) {
if let userInfo = notification.userInfo, let offerId = userInfo["offerId"] as? String {
showLoading()
getOfferViewModel.getOfferDetail(id: offerId)
}
}
Topic:
App & System Services
SubTopic:
Notifications