After adding a pass to the wallet and setting the relevantDate, it doesn't show a notification on the screen after the relevantDate has passed.
How do we test the wallet notification for a pass?
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
I have an app available for download in the Apple App Store. The app sends local notifications, which are scheduled at the user's request once the app launches. I've recently learned that when new versions of my app are deployed and automatically update on the user's device, previously scheduled local notifications are deleted. Given my app design, the user can re-launch the app in order to re-schedule the local notifications. This is a bit of a problem, though, because part of my app's value is in reminding the user - so after requesting a local notification, the user expects to receive a local notification and then launch the app, not the other way around.
Given this, I've been exploring solutions so my app continues to function as expected (including delivering local notifications, even if the app hasn't yet been launched) after an app update. I've explored .backgroundTasks(), but they too are apparently deleted with an app update and require the app to be re-launched first to work as expected. Another solution might be to use push notifications instead of local notifications, but that seems like a very involved solution if I'm just looking to make sure that local notifications persist after an app update. I can't be the only person to have this dilemma - am I overlooking a simple solution?
Hi everyone!
I’m integrating push notifications for a taxi-driver app and ran into a blocking CarPlay issue.
When the iPhone is connected to CarPlay (wired or wireless), the push arrives on the phone without any sound and nothing is shown or announced on the CarPlay screen.
If I unplug CarPlay, the same push plays the default sound and shows a normal banner on the lock screen, so the payload itself looks valid.
Environment
iPhone 13 Pro, iOS 18.0
CarPlay head-unit: Xcode 16.2 CarPlay Simulator
App built with Flutter 3.22 + firebase_messaging: ^15.2.5
Deployment target: iOS 14.0
Xcode capabilities enabled: Push Notifications, Time-Sensitive Notifications
App settings on the device: Allow Notifications -› Sounds ON, Show in CarPlay ON
Siri › Announce Notifications › CarPlay: master toggle ON + my app added to the allowed list
Driving Focus = Off (same result if it’s On)
Native setup in AppDelegate.swift
UNUserNotificationCenter.current().requestAuthorization(
options: [.alert, .sound, .badge, .carPlay]
) { _,_ in }
let carPlayCategory = UNNotificationCategory(
identifier: "CARPLAY_ORDER",
actions: [],
intentIdentifiers: [],
options: [.allowInCarPlay]
)
UNUserNotificationCenter.current().setNotificationCategories([carPlayCategory])
UNUserNotificationCenter.current().delegate = self
application.registerForRemoteNotifications()
APNs payload that I send via FCM
{
"aps": {
"alert": {
"title": "New test order",
"body": "Location info test"
},
"sound": "default",
"category": "CARPLAY_ORDER",
"interruption-level": "time-sensitive",
"relevance-score": 1
}
}
What could be the problem? Please help me solve the error
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 have read from previous posts in the forum and in StackOverflow that the limitation of 64 notification is still present with the current iOS18 version right? Inside testflight I was not able to reproduce this limit and was wondering if it only applies to the AppStore.
Is it only a limit of scheduled notifications or is there also a limit of delivered notifications ? I find the Apple documentation lacking detail in this regard. If the latter is the case, I will not bother building a notification manager to deal with frequent notification scheduling.
thank you in advance
S.
Hi,
My customer has acquired the assets of another company. We therefore need to transfer this company's app to my customer's account.
This app primarily functions using WebRTC video, which relies on APN PUSH notifications. I have reviewed the information about transferring an app from one developer account to another, particularly here: https://developer.apple.com/help/app-store-connect/transfer-an-app/overview-of-app-transfer. I understand that we need to generate a new SSL certificate that will be integrated into the app once it has been transferred.
Since users will not all update the app immediately, we will have two server certificates running in parallel for some time.
Is it allowed to send two notifications to the same iPhone, knowing that one of the two will systematically fail?
If not, what is the best practice for successfully migrating VOIP notifications?
Thank you in advance,
F. BABIN
Topic:
App & System Services
SubTopic:
Notifications
Hi all,
We’re implementing in-app subscriptions in our iOS app using App Store Server Notifications V2 in the production environment.
Everything is generally working well — we receive notifications such as DID_CHANGE_RENEWAL_STATUS, CANCELLATION, etc., and we log all incoming notifications into our own database.
However, we've encountered a single case where the INITIAL_BUY notification was not received for a specific user.
Interestingly, we did receive the later notifications (DID_CHANGE_RENEWAL_STATUS and CANCELLATION) for that same user.
Here is our setup:
App Store Server Notifications V2
Notification endpoint is stable and functioning normally (receives and logs other notifications)
Notifications are reliably stored in our database
The issue occurred only once for one user
Environment: Production
We've already contacted Apple Developer Support, but were informed that this issue is out of scope for direct support, and were directed to the Developer Forums.
Our questions:
Under what conditions might the INITIAL_BUY notification fail to be sent or delivered?
Is there any known behavior or scenario where Apple may skip the INITIAL_BUY notification?
Any recommendations on how to further investigate or verify whether it was sent from Apple’s side?
We’ve confirmed that the notification never hit our server (no logs, no DB record), and our system was healthy at the time.
Any insight would be greatly appreciated. Thank you!
On December 6, 2024, I received the following email.
Does this mean that there is something that needs to be done on the app side or on the Firebase side?
Currently, in our project, we are using Firebase to set up push notifications.
If anyone knows how to deal with this or has taken any action, could you tell me what specific steps you took?
Action Required: Apple Push Notification Service Server Certificate Update
As we announced in October,
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. 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.
Could anyone play a sound from the Library/Sounds directory using alarmkit? Same file can play in app bundle, but not available in Library/Sounds directory. Is this by design?
Topic:
App & System Services
SubTopic:
Notifications
In iOS 26, I can check the notification that arrives to the user when the AirPods or Apple Watch is fully charged. When tap the notification, notification only expands and does not include actions such as moving to an app.
I checked the documents of UserNotification and UNNotificationServiceExtension, but I couldn't find what I wanted.
I can expand by long-tapping as default, but I'm looking for a way to expand it without entering the app when I tap the notification.
I wonder if there is an API that I missed or if it's not publicly supported.
thank you for your support.
Back story: I'm developing an app that communicates with a personal medical device. We use critical alerts when we have hardware issues that could result in harm to the patient. The audio file is a 30 second file to make sure the patient is aware. If the app is open when they occur, we pop up a modal message in the app. When the user dismisses the notice, we call UNNotificationCenter::removeDeliveredNotifications(withIdentifiers:) to remove the critical alert and also to stop the audio file that is playing.
This normally works fine. However we discovered that if the patient leaves critical alert enabled but disables notifications for our app, that we can still post the critical alert and it goes off. However when the user dismisses the message, the removeDeliveredNotifications call does not work. I did some debugging and if call getDeliveredNotifications with this permission combination, it return 0 (normally it would return 1).
Does anyone know of another way to remove the critical alert in this situation? (or should I be submitting this as a bug?)
What timezone is used in the CloudKit Push Notification reporting? Meaning, when I see 1,000 Sent Push Notifications on 2/18, is that 2025-02-18 00:00 through 2025-02-18 23:59 PST? EST? UTC?
The metrics shown in [the CloudKit Push Notification reporting] are not lining up with stats from my marketing system, and I'm trying to diagnose.
Also, is there a way to see DELIVERIES or just SENT? I'm looking to learn more about why a Notification would be Sent but not received by the user.
Thank you!
i got some problem for the LiveAcitvity when i start it with notification.
The LiveActivity can not show,but it can work when i update or end a LiveActitvity;
And so,i think my configeration is right like the code;
thanks in advance
Hello Apple Developer Team,
Based on the mandate to update the APNs certificate by February 24, 2025 for certificate-based authentication, a question from the team has been brought up that maybe Apple or the community can help answer. Since our implementation uses token-based authentication, I’m seeking clarification on a couple of points:
1. Does the certificate update affect token-based connections at all?
2. What is the rationale behind updating certificates for certificate-based authentication, and are there any implications or benefits for developers using token-based authentication?
Understanding these details will help us ensure our system remains compliant and optimally configured. Any guidance or further clarification you can provide would be greatly appreciated.
Thank you!
As you announced at this link https://developer.apple.com/forums/thread/766788, 'APNs will update the server certificates in sandbox on January 20, 2025, and in production on February 24, 2025.' I guess you have updated the sandbox certificate. What can we do to test whether we have correctly updated our application’s Trust Store to include the new server certificate.We test on a server that haven't updated the new server certificate, connect your sandbox environment 'api.sandbox.push.apple.com' to send notifications, it succeed. As I guess, it should failed.
This error has been continuously occurring for about 9 hours. We have not replaced the certificate, modified the server code, or changed the firewall policy. Some requests succeed, but many are timing out, with several timeouts occurring every minute. We are unable to find the cause. Please help.
APNS Exception io netty channel ConnecttimeException: Connection timed out
APNSOutboundHandler
api.push.apple.com/17.188.169.28:443
api.push.apple.com/(other ip):443
api.push.apple.com/(other ip):443
api.push.apple.com/(other ip):443
api.push.apple.com/(other ip):443
...
We are recently started the migration from Certificate based approach push notification configuration to Token bases (APNS Keys) approach push notifications.
From Server side, its pretty straight forward that we need to use APNS Keys.
But We are facing one issue where we are not sure whether we can expire the existing push notification certificate that we are using so far or not.
If I expire the existing certificate, then it will also be removed from App Id configuration capabilities as shown below and when I create the provisioning profile for this Bundle Id, it doesn't contain the push notification capability and also shows error in the Xcode while using the profile.
can anyone help on this how to resolve this issue ? or any process or steps to follow for this migration ?
Thanks in advance.
We have a case when we send 8 push notifications more or less simultaneously over 1 HTTP 2.0 connection. Using .NET Core 8
Sometimes some of them fail with a strange message:
System.Net.Http.HttpRequestException: The response ended prematurely while waiting for the next frame from the server. (ResponseEnded)
---> System.Net.Http.HttpIOException: The response ended prematurely while waiting for the next frame from the server. (ResponseEnded)
at System.Net.Http.Http2Connection.ThrowRequestAborted(Exception innerException)
at System.Net.Http.Http2Connection.Http2Stream.TryEnsureHeaders()
at System.Net.Http.Http2Connection.Http2Stream.ReadResponseHeadersAsync(CancellationToken cancellationToken)
at System.Net.Http.Http2Connection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.Http2Connection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at Microsoft.Extensions.Http.Logging.HttpClientLoggerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
We noticed that failure is always accompanied with a huge delay (~500ms) comparing to success (~20ms).
Also some of the burst messages are sent successfully (sometimes 2-4 of them)
What can we do about it?
Hi,
We received the following message.
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.
Note, that we are using Firebase to deliver push notifications and the connection is done via APN keys, not certificates.
Is there anything that we need to update in the application to mitigate the risk of not delivered push notes ?
Hi,
I'm working on an IOS app using capacitor. I'm trying to receive push notifications on my downloaded app from testflight. I tried with FCM and it's working on my android app but not on ios and the logs show no error.
This is how I retreive the FCM token:
const fcmToken = await FCM.getToken()
sendSubscriptionToBackEnd({
fcm_token: fcmToken.token,
device: platform
})
Then I have a job on my backend to send the push notifications:
def perform
fcm = FCM.new(
StringIO.new(Rails.application.credentials.google_application_credentials),
Rails.application.credentials.firebase_project_id
)
NotificationSubscription.find_each(batch_size: 100) do |subscription|
begin
response = fcm.send_v1({
token: subscription.fcm_token,
notification: {
title: 'Un nouveau signal a été publié',
body: 'Un nouveau signal a été publié, cliquez ici pour le voir'
},
android: {
priority: 'high'
},
apns: {
payload: {
aps: {
# alert: {
# title: 'Un nouveau signal a été publié',
# body: 'Un nouveau signal a été publié, cliquez ici pour le voir'
# },
sound: 'default'
}
},
headers: {
"apns-priority": "10",
"apns-push-type": "alert"
}
}
})
if response[:status_code] == 200
Rails.logger.info "Notification sent successfully to #{subscription.id} on device #{subscription.device}"
else
Rails.logger.error "Failed to send notification to #{subscription.id} body: #{response[:body]}"
# subscription.destroy
end
rescue StandardError => e
Rails.logger.error "Error while sending notification to #{subscription.device}: #{e.message}"
subscription.destroy
end
end
end
and the logs show that it's successful but i dont receive the notification. When I test from firebase console I receive the push notification on both ios and android capacitor apps. I also added this in the apple delegate:
Messaging.messaging().apnsToken = deviceToken
Messaging.messaging().token(completion: { (token, error) in
if let error = error {
NotificationCenter.default.post(name: .capacitorDidFailToRegisterForRemoteNotifications, object: error)
} else if let token = token {
NotificationCenter.default.post(name: .capacitorDidRegisterForRemoteNotifications, object: token)
}
})
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
NotificationCenter.default.post(name: .capacitorDidFailToRegisterForRemoteNotifications, object: error)
}
I also tried using apns tokens and ther apnotic gem:
console.log('APNs Token:', token.value)
if (platform === 'ios') {
sendSubscriptionToBackEnd({
apns_token: token.value,
device: platform
}).then(() => {
displaySnackbar(`APNs token: ${token.value}`, 'success')
})
}
})
# Create the APNs connection outside the loop
connection = Apnotic::Connection.new(
auth_method: :token,
cert_path: StringIO.new(Rails.application.credentials.apns_key_path),
key_id: Rails.application.credentials.apn_key_id,
team_id: Rails.application.credentials.apple_team_id
)
NotificationSubscription.find_each(batch_size: 100) do |subscription|
if subscription.device == 'ios'
begin
# Create the notification for the current device token
notification = Apnotic::Notification.new(subscription.apns_token)
notification.alert = "Un nouveau signal a été publié"
notification.topic = Rails.application.credentials.apple_bundle_id
# Prepare and send the push
push = connection.prepare_push(notification)
push.on(:response) do |response|
if response.ok?
Rails.logger.info "Notification sent successfully to #{subscription.id} on device #{subscription.device}"
else
Rails.logger.error "Failed to send notification to #{subscription.id} body: #{response.status} - #{response.body}"
end
end
connection.push_async(push)
rescue StandardError => e
Rails.logger.error "Error while sending notification to #{subscription.device}: #{e.message}"
subscription.destroy
end
end
end
connection.join(timeout: 5)
connection.close
end
but i have a bad token error:
Failed to send notification to 223 body: 400 - {"reason"=>"BadDeviceToken"}
I, [2025-01-23T02:23:59.013407 #104] INFO -- : [ActiveJob] [ApnsNotificationJob]
I checked my aps entitlement env and its production, have all the certificates, keys.. so I dont understand why i can receive push notifications from firebase console but not from my app