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.
Notifications
RSS for tagLearn about the technical aspects of notification delivery on device, including notification types, priorities, and notification center management.
Post
Replies
Boosts
Views
Activity
Hello,
I am developing an application using VoIP Push and CallKit. I have a question: Starting with iOS 13, I understand that under the VoIP Push policy, if reportNewIncomingCall is not called continuously, the VoIP Push may be blocked. Is there a way to determine if the device has been blocked?
I am curious whether PKPushRegistry itself is unable to receive pushes or if reportNewIncomingCall returns an error when it is blocked. If push notifications are not being received, what should I do to resume receiving them?
Thank you.
Hello,
I am building a swift macOS app and have noticed issues today with delivering APN's to both development and production devices. Similar to this thread the only way I can get them to deliver temporarily is to do one of:
Change the bundle ID of my app to a new bundle ID, then start it up. I will usually get the first notification.
Reset my network (either wired ethernet or wifi, typically both)
Using the push notifications console for development sends, I see the message "discarded as device was offline" in the delivery log even though the device is still online and was just registered when I got back the deviceToken.
If I set an expiration on development notifications then the delivery log says "stored for device power considerations" and the notification will then send once I do one of the above steps (new bundle or reset network).
Previous to today the notifications were sending immediately and I had no issues getting them. Is there something I can do to fix this problem, is it a problem with the APN provider, or is it something else I haven't thought of?
A unique ID for an expiration-based notification is 1755def8-1a44-cbcf-c64b-64e435c30f81, and a non-expiry is d7a72b46-0c64-4500-0abc-3734f9efbd90.
Hello,
We’re working on a connected watch that displays notifications and handles calls using the ANCS (Apple Notification Center Service) on a Nordic Semiconductor platform. We can manage a single call by monitoring notifications with Category ID: Incoming Call and Category ID 12: Active Call, which lets us display the call status on the watch. However, we’re facing challenges with handling multiple calls, especially around holding and resuming calls.
Our key issues are:
Tracking Call on Hold: When the first call is put on hold to answer a second call, ANCS removes the first call notification. This leaves us unable to track if there’s a call on hold until it’s resumed and reappears as an Active Call. Is there any ANCS flag, category ID, or other mechanism to indicate a call is on hold?
Tracking Total Call Duration: When resuming a held call, ANCS assigns a new Active Call category ID with a new timestamp, which reflects the resumption time rather than the original call start time. This complicates tracking the total elapsed time. Is there a way to identify that this resumed call is the same as the original one to retain the initial timestamp?
Any insights or workarounds would be greatly appreciated!
Thank you.
I'm trying to call the Test Notification endpoint: https://developer.apple.com/documentation/appstoreserverapi/request_a_test_notification?language=objc
I'm creating a JWT bearer token using a script I run on the console with these 2 commands: npm install jsonwebtoken fs and node generate_jwt.js
Keys are taken from App Store Connect -> User and Access -> Integrations -> Keys -> In-App Purchase.
generate_jwt.js script:
const jwt = require('jsonwebtoken');
const fs = require('fs');
const keyId = 'MY_KEY_ID';
const issuerId = 'MY_ISSUER_ID';
const privateKey = `-----BEGIN PRIVATE KEY-----
MY_SECRET_KEY
-----END PRIVATE KEY-----`;
// Define JWT headers and claims
const token = jwt.sign({}, privateKey, {
algorithm: 'ES256',
expiresIn: '1h',
issuer: issuerId,
header: {
alg: 'ES256',
kid: keyId,
},
audience: 'appstoreconnect-v1'
});
console.log('JWT Token:', token);
When I run a POST https://api.storekit.itunes.apple.com/inApps/v1/notifications/test request on postman with Bearer token authentication, I get a 401 Unauthorized error.
I hav the 16 Pro Max running 18.1. My facebook, TikTok and other apps seem to not have sound when I get their notification, my phone settings is always anable with sound, apps also enable with sound, please any suggestions
It looks like APS Environment is configured by setting the aps-environment value in an app entitlements file to either development or production. However, it seems to be the case that, by default, Xcode automatically overrides the set value when an app is signed and the value is instead derived from the provisioning profile.
So, for development profiles, you get development (sandbox) aps-environment, and for distribution profiles, you get production aps-environment configured - regardless of how the setting has been configured in the entitlements plist.
This is documented here: https://developer.apple.com/documentation/bundleresources/entitlements/aps-environment
That document also states that this default behaviour can be overridden: "These default settings can be modified".
Question is, how to override these default settings. In other words, how to point aps-environment to production, even if provisioning profile is development.
Any insight appreciated, thx.
frequentPushEnablementUpdates asynchronous sequence is never called even if 'More Frequent Updates' is toggled ON or OFF.
for await frequentPushEnabled in ActivityAuthorizationInfo().frequentPushEnablementUpdates {
// never called
}
Though we are able to get the 'More Frequent Updates' value once by the following:
var isEnabled = ActivityAuthorizationInfo().frequentPushesEnabled //true if ON, false if OFF
This only gives the result once as it is not async observation sequence.
But the 'frequentPushEnablementUpdates' async sequence is never called. As per the doc - 'frequentPushEnablementUpdates' is an asynchronous sequence you use to observe whether a person permitted you to update Live Activities with frequent ActivityKit push notifications.
Good afternoon)
Could you please advise, I need to issue a Wallet-a card with a description of the bonus program for a certain store. I also need to organize sending a unique push to the user's devices if the user's points are burned. Can you please tell me how I can send a unique message to the customer in such a case?
Will it be a card update?
Java Server
Card generation via server
Hi everyone.
Can anyone who has had experience tell me how long it takes to get a response to the approval to use critical alerts?
Thanks.
token:1ac0f5ef2d37a0593f09e88be0f87daca27f23d4f7637fbc7a8102413d673bc3
msgId: 37d28693-16fe-0746-733e-a49d5879becc
send time: 2024-11-04 22:04:18.0(UTC+08:00)
response result: InternalServerError
这个是什么原因呢?
token:1ac0f5ef2d37a0593f09e88be0f87daca27f23d4f7637fbc7a8102413d673bc3
msgId: 37d28693-16fe-0746-733e-a49d5879becc
send time: 2024-11-04 22:04:18.0(UTC+08:00)
response result: InternalServerError
这是什么原因呢?
My app one sec uses push notifications to guide the user back to the app from a Screen Time Shield (screenshot attached).
On iOS 18.1, notifications are delivered with a delay of 10+ seconds, even though they are classified as time sensitive:
notificationContent.interruptionLevel = .timeSensitive
notificationContent.relevanceScore = 1.0
The notification trigger is nil, which according to the documentation should show the notification banner immediately:
var notificationTrigger: UNTimeIntervalNotificationTrigger? = nil
"The condition that causes the system to deliver the notification. Specify nil to deliver the notification right away."
In the sysdiagnose I have noticed that activity related to Apple Intelligence Priority classification delays the notification by 10 seconds ("UserNotificationsCore.IntelligenceActor"):
[create, [id=43C0-B333, time=2024-09-27 06:03:26, bundle=***.riedel.one-sec], Time elapsed=10.373 sec]: Timeout of 10.0 reached. Cancelling work.
[create, [id=43C0-B333, time=2024-09-27 06:03:26, bundle=***.riedel.one-sec], Time elapsed=10.377 sec]: Calling out to completion with failure(UserNotificationsCore.StepFailure.timedOut(exceeded: 10.0 seconds, summaryStatus: Optional(UserNotificationsServices.NotificationSummaryStatus.inferenceTimedOut), priorityStatus: Optional(UserNotificationsServices.NotificationPriorityStatus.inferenceTimedOut))) from 'scheduleTimeoutToPerform(after:for:)'
[create, [id=43C0-B333, time=2024-09-27 06:03:26, bundle=***.riedel.one-sec], Time elapsed=10.378 sec]: Step: UserNotificationsCore.IntelligenceActor, index: 0 exceeded 10.0 seconds
This seems like a bug to me, time sensitive notifications should be exempted from being analyzed for priority, especially if that comes at the cost of delaying notifications by 10 seconds.
Tracked in Radar: FB15255061
Hello!
I am working on an app that requires to send a local push notification to the user from an app extension (from the ShieldActionDelegate to be precise).
This is suggested by DTS as a workaround for this issue: https://forums.developer.apple.com/forums/thread/766644
But now, on the iOS 18.2 beta, local push notifications are delayed by up to 10 seconds, even though the push notification is classified as .timeSensitive, leading to a very bad user experience (where to user has to sit and wait for the notification to arrive without knowing how long it will take).
This only happens when Apple Intelligence is turned on.
This had happened previously on the iOS 18.1 beta but was fixed for the final release: https://forums.developer.apple.com/forums/thread/764848
But now the issue came back on the latest iOS 18.2 beta.
I have documented the new behavior in FB15668616
Any help is appreciated!
Ever since I updated the 18.1 I have noticed on both the Uber Driver app and Lyft Driver app that the banner notifications are on a three second delay when a ride notification comes in. These banner notifications have previously shown up immediately when a ride comes in and now it’s anywhere from 3 to 5 seconds before you see them.
in the IOS18.1 release when using Apple Intelligence the notifications will be delayed around 10 second. Even without the notification summary turned on. It seems to be a system-wide bug, anyway to fix it or bypass it.
I want to create passes with Dynamic QR Codes which changes based on T-OTP. Google wallet do have this feature called RotatingBarCode, while there is nothing like this in Apple wallet. Can we do this by updating the passes? If yes, how? If apple wallet pass are getting updates using webServiceURL, how can we create the endpoint and what the body of get request will look like?
When using iCloud account with push in Apple mail app.
The badge number of unread email is not syncing across devices.
If I read an email on my iPhone my iPad mail app badge won’t update until I click into the app and wait for the update.
Is there any fix of this?
Been one week and still on requested image playground image playground will not work says I’m still requested access
Hello,
I’m reaching out to gather information regarding the upcoming changes to APNs certificates that are set to be implemented in the beta at the end of January 2025.
Specifically, I would like to understand the following:
What will be the practical impact of these changes on apes apis ?
What actually needed to be done at trust store for this changes, and how will it affect our current setup?
What steps do we need to take to update the certificates on our servers?
it’s crucial for us to address these changes in advance and keep our customers informed.
Thank you for your help!
Hi,
since a while I constantly receive the warning above and there is nothing to find on my Mac (Air M2) nor by searching the web. MacOS 15.1
Anybody an idea what this app/service is all about?