I am trying to create new key for apple APN , I find out there is a new option "configure" to add identifier for the key or something . anyway when I click on it to configure the key I am getting error popup :
An unexpected error occurred. Please try again. If the problem persists, please contact Apple Developer Program Support. https://developer.apple.com/support
any ideas ?
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
Hello,
I'm trying to use critical alerts on the CarPlay, but I'm facing couple of issues:
Sound of critical alerts is not played by the CarPlay's speakers (played by the iPhone's speakers)
Tapping on a critical alert doesn't open the app like other notifications.
Critical alerts of the app are always shown if the CarPlay is connected, even if the app doesn't have the CarPlay entitlement.
didReceive is not called if the user taps on a notification on the CarPlay.
Any help would be greatly appreciated
When I request channel list for bundle id "com.apnspush.LiveActivityPushDemo", the request returns "TopicMismatch".
Then when I request channel list for bundle id "com.apnspush.liveactivitypush", the request return is normal.
I have tried all my bundle ids that include capital letters, they all failed with "TopicMismatch".
Does anyone know the reason?
curl -v -X GET \
-H "authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg" \
-H "apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127" \
--http2 \
https://api-manage-broadcast.sandbox.push.apple.com:2195/1/apps/com.apnspush.LiveActivityPushDemo/all-channels
Note: Unnecessary use of -X or --request, GET is already inferred.
* Host api-manage-broadcast.sandbox.push.apple.com:2195 was resolved.
* IPv6: (none)
* IPv4: 17.138.176.4
* Trying 17.138.176.4:2195...
* Connected to api-manage-broadcast.sandbox.push.apple.com (17.138.176.4) port 2195
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/cert.pem
* CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Request CERT (13):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Certificate (11):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384 / [blank] / UNDEF
* ALPN: server accepted h2
* Server certificate:
* subject: C=US; ST=California; O=Apple Inc.; CN=api-manage-broadcast.sandbox.push.apple.com
* start date: May 30 17:31:41 2024 GMT
* expire date: Apr 10 00:00:00 2025 GMT
* subjectAltName: host "api-manage-broadcast.sandbox.push.apple.com" matched cert's "api-manage-broadcast.sandbox.push.apple.com"
* issuer: CN=Apple Public Server RSA CA 12 - G1; O=Apple Inc.; ST=California; C=US
* SSL certificate verify ok.
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://api-manage-broadcast.sandbox.push.apple.com:2195/1/apps/com.apnspush.LiveActivityPushDemo/all-channels
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: api-manage-broadcast.sandbox.push.apple.com:2195]
* [HTTP/2] [1] [:path: /1/apps/com.apnspush.LiveActivityPushDemo/all-channels]
* [HTTP/2] [1] [user-agent: curl/8.7.1]
* [HTTP/2] [1] [accept: */*]
* [HTTP/2] [1] [authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg]
* [HTTP/2] [1] [apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127]
> GET /1/apps/com.apnspush.LiveActivityPushDemo/all-channels HTTP/2
> Host: api-manage-broadcast.sandbox.push.apple.com:2195
> User-Agent: curl/8.7.1
> Accept: */*
> authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg
> apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127
>
* Request completely sent off
< HTTP/2 403
< apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127
<
* Connection #0 to host api-manage-broadcast.sandbox.push.apple.com left intact
{"reason":"TopicMismatch"}%
curl -v -X GET \
-H "authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg" \
-H "apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127" \
--http2 \
https://api-manage-broadcast.sandbox.push.apple.com:2195/1/apps/com.apnspush.liveactivitypush/all-channels
Note: Unnecessary use of -X or --request, GET is already inferred.
* Host api-manage-broadcast.sandbox.push.apple.com:2195 was resolved.
* IPv6: (none)
* IPv4: 17.138.176.4
* Trying 17.138.176.4:2195...
* Connected to api-manage-broadcast.sandbox.push.apple.com (17.138.176.4) port 2195
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/cert.pem
* CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Request CERT (13):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Certificate (11):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384 / [blank] / UNDEF
* ALPN: server accepted h2
* Server certificate:
* subject: C=US; ST=California; O=Apple Inc.; CN=api-manage-broadcast.sandbox.push.apple.com
* start date: May 30 17:31:41 2024 GMT
* expire date: Apr 10 00:00:00 2025 GMT
* subjectAltName: host "api-manage-broadcast.sandbox.push.apple.com" matched cert's "api-manage-broadcast.sandbox.push.apple.com"
* issuer: CN=Apple Public Server RSA CA 12 - G1; O=Apple Inc.; ST=California; C=US
* SSL certificate verify ok.
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://api-manage-broadcast.sandbox.push.apple.com:2195/1/apps/com.apnspush.liveactivitypush/all-channels
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: api-manage-broadcast.sandbox.push.apple.com:2195]
* [HTTP/2] [1] [:path: /1/apps/com.apnspush.liveactivitypush/all-channels]
* [HTTP/2] [1] [user-agent: curl/8.7.1]
* [HTTP/2] [1] [accept: */*]
* [HTTP/2] [1] [authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg]
* [HTTP/2] [1] [apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127]
> GET /1/apps/com.apnspush.liveactivitypush/all-channels HTTP/2
> Host: api-manage-broadcast.sandbox.push.apple.com:2195
> User-Agent: curl/8.7.1
> Accept: */*
> authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg
> apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127
>
* Request completely sent off
< HTTP/2 200
< apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127
<
* Connection #0 to host api-manage-broadcast.sandbox.push.apple.com left intact
{"channels":["vtVPwIhLEe8AAG79CdMNuQ=="]}%
From last 10 days, apns suddenly stopped working. We have raised the firewall request from our servers to apple servers. Even then it's not working. Could you please advise if there is anything changed in this api. Please take it as high priority. Thank you.
I want to switch from Apns to standard notificationApi browser notification, but when my website originally used Apns, I switched to standard API and called Notification for message notification. The notification didn't appear.
I confirmed that Notification.permission is granted.
I am looking for advice for debugging a wallet pass not updating for some customers after successfully posting an APNS notification (pass identifier as topic, no expiration, priority 10).
Is there an exhaustive list of reasons for a wallet pass not updating or a guide for making sure updates happen reliably? Are there are any guarantees made as to when the pass is updated? We noticed it is either never updating or the update happens much later for some customers. Usually toggling "Automatic Updates" in Pass Details updates the pass immediately for affected customers.
Can it be caused by an error in the implementation of the Wallet Passes Web Service? We generate passes on the fly as a response to /v1/passes/{passTypeIdentifier}/{serialNumber}. I noticed that we also sometimes receive HEAD requests to this endpoint despite the documentation only mentioning the GET method. I was previously returning a HTTP status code 405 (Method Not Allowed). I have now updated it to also respond with headers (Content-Type, Content-Disposition and Last-Modified) for the pass for HEAD requests, but I don't know if it makes a difference.
Here is a list of issues on the customer side I was thinking of:
No connection to the internet
Low power mode (does it prevent or throttle updates?)
What happens if there is an error? Does it keep trying or does it just fail silently? In the latter case it might make sense to keep sending APNS notifications until the pass is requested successfully.
I know that you can use the PassKit framework in iOS apps to update (replace) passes. Would this be more reliable than a stand-alone Wallet pass?
Is there a way to to add a key for imageURL below that shows as image preview on the right side of a push notification or do i need to create a Notification Content Extension to make it work?
`const message = {
apns: {
payload: {
aps: {
'mutable-content': 1,
alert: {
title: title,
body: body,
image: imageURL,
},
},
},
fcm_options: {
image: imageURL,
},
},
data: {
articleId: articleId,
'media-url': imageURL,
},
tokens: tokens,
};`
I'm getting the image through, but just if the user long presses on the push notification and then it appears below, but i want it to look like in the screenshot:
Thanks
Hi, hope you're all doing well. I have a real brain-cracker here... Have been looking into this for the past 20 hours, but can't figure it out.
We built an iPhone app that essentially functions as a shell around a PWA Web-App using WebView. The tricky part here to set things up was getting the Push Notifications to work. Eventually we got this working though (with help of Firebase), and the app has been working great for the past 7 months. Now, all of a sudden as it seems, when users first open up the app, there's no FCM token generated and passed on to the WebView instance running javascript. Or at least, the listening event ('push-token') no longer gets fired.
Users who already have their FCM token generated and stored earlier on, receive push notifications without any issues. It's just that no new FCM tokens seem to be generated - or at least no longer passed to the WebView's javascript code. I know this for a fact as my tests turn out that the following event (present in my PWA Web-App JS code) no longer gets fired. Again, this worked fine before. I have NOT updated the native app since 6-7 months.
`/* LISTEN FOR FCM (PUSH MESSAGES) TOKEN FROM NATIVE (IOS) SHELL: */
window.addEventListener('push-token', function(event) {
//alert("Push Token registration event called from native shell");
if (event && event.detail) {
var token = event.detail;
window.fcmPushMessageToken = token;
localStorage.setItem('fcmPushMessageToken', token);
//alert("Received FCM token: " + token);
registerDeviceForPushMessages();
}
});`
Hereé the part in my native iOS code that used to call this event from within the native iOS shell:
func handleFCMToken(){
DispatchQueue.main.async(execute: {
Messaging.messaging().token { token, error in
if let error = error {
print("Error fetching FCM registration token: \(error)")
checkViewAndEvaluate(event: "push-token", detail: "ERROR GET TOKEN")
} else if let token = token {
print("FCM registration token: \(token)")
checkViewAndEvaluate(event: "push-token", detail: "'\(token)'")
}
}
})
}
func checkViewAndEvaluate(event: String, detail: String) {
if (!EPDriversApp2.WebView.isHidden && !EPDriversApp2.WebView.isLoading ) {
DispatchQueue.main.async(execute: {
EPDriversApp2.WebView.evaluateJavaScript("this.dispatchEvent(new CustomEvent('\(event)', { detail: \(detail) }))")
})
}
else {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
checkViewAndEvaluate(event: event, detail: detail)
}
}
}
Again, I have not updated the native iOS app OR the WebApp's code. This just stopped functioning all of a sudden.
One "weird" thing I noticed that there's no Provisiong Profile associated with the app. I'm not sure whether this was ever the case before, to be honest. Is this even mandatory? Can not having a Provisiong Profile associated with the app effect the ability of an already pusblished app for generating Push Notification tokens?
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.
I've spent over a day on this so I'm hoping someone on here has some idea as to what is going on for me. I've implemented push notifications in my app, but when I send a notification to a device, none of the receiving function are triggered.
When the app is in the background, the notification arrives correctly, and when tapped it correctly launches the app - but the didReceiveRemoteNotification function is never triggered, so I'm unable to handle/react to the notification.
When the app is in the foreground, neither the willLaunch or didReceive functions are triggered. I'm setting the UNUserNotificationCenterDelegate in the willFinishLaunchingWithOptions function, and when I monitor the app via the console, it shows no errors and shows willPresentNotification delivery succeeded
I have updated the Background Modes to include background fetch, background processing, and remote notifications. I have also tested this on both the Xcode simulator and a physical device with the same results. I've also tested this with push notifications coming from my server, push notifications coming from the CloudKit console, and just dropping a JSON file onto the simulator. All resulted in the same behaviour.
Does anyone have any idea why these functions might not be triggered??
Subject: Seeking Native iOS Solution for Push Notification Acknowledgement and User Interaction Tracking
I’m exploring whether there is a native solution in iOS to track the confirmation/acknowledgement of a received push notification on the device, as well as any user interaction with it (e.g., tapping or dismissing the notification). Although I’ve come across multiple discussions on this topic suggesting that it’s not possible, I’d like to know if there have been any recent updates or enhancements in iOS that provide this capability.
Has anyone found a reliable approach or workaround for this? Any insights would be appreciated!
Thanks!
After upgrading to iOS 18, in my app development using xCode 16.0 (16A242d) and Swift, I am totally unable to obtain an APNS token from my own device using didRegisterForRemoteNotificationsWithDeviceToken
The delegate simply won’t fire.
I was able to do so repeatedly in the same app a week earlier, using iOS 17xx. That part of the code has not changed.
I just now restored my phone and installed a clean version of iOS 18, but the issue has not changed.
Have tried using WiFi and also cellular networks.
It is a no-go.
We noticed that push notifications stopped working on our end from 16th Sep'2024. We are calling these endpoints below. Can you please verify if these endpoints and ports are active, or if anything has changed?
gateway.push.apple.com:2195
feedback.push.apple.com:2196
Totally appreciate your help
I previously posted a topic about receiving application(_:didReceiveRemoteNotification:fetchCompletionHandler:) callback when my app is not running, and the system starts the app in the background to respond to a notification.
While I receive the callback reliably, the work performed by the callback seems to have different restrictions whether the app is in the background or not running.
When the app is running in the background, the work started in this callback completes reliably (in my case it takes no more than a few seconds), and I can post the result back to the system via the completion handler.
When the app is not running and the system starts it in the background, the app starts the same work, but this work seems to be terminated quickly without being able to complete, and without me being able to call the completion handler passed to the callback. I’m not talking about 30 seconds - the termination seems to happen after less than a second, which is not enough for my app.
The nature of the work shouldn’t matter, but just in case: I start a Task in the callback for some asynchronous work, which stores the completion handler, and calls back to it when the work is finished. This happens completely reliably when the app is running in the background, and not at all reliably when the app is not running and is started by the system.
Why would application(_:didReceiveRemoteNotification:fetchCompletionHandler:) behave differently based on if it is ran when the app is already running, vs not running and started by the system?
Is there anything I can do on my side to make it more reliable?
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
I am developing a new App that uses Push Notifications. I completed the development of the App itself and I can send Push Notifications from the CloudKit and receive it on my phone.
My problem is sending the Push Notifications from our service API to Apple. If I use the production address gateway.push.apple.com, I can send messages, but they don't work for my new App because it is in development and not yet released. If I use the sandbox address api.sandbox.push.apple.com, I get the following exception:
System.Net.Sockets.SocketException (10061): No connection could be made because the target machine actively refused it. [::ffff:17.188.143.98]:2195
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port)
--- End of stack trace from previous location ---
at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port)
at System.Net.Sockets.Socket.Connect(String host, Int32 port)
at System.Net.Sockets.TcpClient.Connect(String hostname, Int32 port)
at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port)
The service API for sending Push Notifications was developed in C# .NET 8.0.
Constants:
private readonly string _hostname = "api.sandbox.push.apple.com";
private readonly int _port = 2195;
The code for sending a message.
public async Task Send(string? subtitle, string? title, string message, string deviceId)
{
var payload =
"{ \"aps\": { " +
"\"alert\": { " +
"\"title\": \"" + title + "\", " +
"\"subtitle\": \"" + subtitle + "\", " +
"\"body\": \"" + message + "\"" +
"} " +
"} " +
"}";
try
{
Debug.WriteLine($"apple api request: {payload}");
using var client = new TcpClient(_hostname, _port);
var sslStream = new SslStream(client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate));
var certificatesCollection = new X509Certificate2Collection(_certificate);
await sslStream.AuthenticateAsClientAsync(_hostname, certificatesCollection, SslProtocols.Tls12 | SslProtocols.Tls13, true);
var array = DataToBytes(deviceId, payload);
sslStream.Write(array);
sslStream.Flush();
client.Close();
}
catch(Exception exception)
{
Debug.WriteLine(exception);
}
}
The certificate that is used in this code was read beforehand:
var clientCertificate = new X509Certificate2(iOSApp.Certificate, iOSApp.CertificatePassword);
We are using a p12 certificate file with a private password.
Again, it works great for an App in Production but not at all for an App in Development. I made use that I use a new p12 developer certificate for the new App when I tested. I also tested with a p12 production certificate. I get the same error.
Any help is appreciated.
Hello,
I am encountering an intermittent TopicDisallowed error while using APNs and would like to ask for your assistance.
Environment:
Authentication: We are using certificate-based authentication with APNs, where the PEM file is stored on the server to authenticate our requests.
API: We are using the HTTP/2 API and calling the /3/device/<device_token> endpoint while passing the apns-topic in the request header.
Issue:
After renewing our APNs certificate, the new certificate mistakenly included an incorrect app bundle ID, resulting in a TopicDisallowed error.
We then issued a new certificate with the correct bundle ID and replaced it on our server before resuming remote push requests.
However, even after replacing the certificate, we are still intermittently receiving the TopicDisallowed error, while other requests successfully return a 200 OK response and deliver notifications to devices.
Over time, the frequency of TopicDisallowed responses has been decreasing, leading us to speculate that APNs might be caching responses and updating this cache over time.
Questions:
Could you provide details on the specific conditions or causes that lead to a TopicDisallowed error?
After replacing the certificate, is there a reason why we might still be intermittently receiving this error? Are there additional certificate or configuration settings we should check?
What might cause some requests to succeed with a 200 OK response, while others result in a TopicDisallowed error with the same setup?
Is it possible that APNs could be caching outdated information from the previous certificate, which might explain the decreasing frequency of the errors?
We have reviewed our certificate and configuration after the renewal, but the issue persists. Any guidance on how to further troubleshoot or resolve this would be greatly appreciated.
Thank you.
We provide users with an iOS app that sends VoIP notifications.
However, we received issue from users that "VoIP notifications were not sent."
So we conducted an investigation on-site and sent VoIP notifications more than 10 times to about 20 devices.
We confirmed that most of the notifications arrived, but there were also times when the notifications were not sent.
We would like to know if the VoIP notifications were really delivered to the devices that did not receive the notifications.
If this phenomenon is a network problem, we would like to consult with the network company.
We have attached the log of when we checked and the VoIP notification was not received.
logs
[2024-09-12 11:50:02]
'ApnsId' => '22541A6E-355E-73D6-D28F-D1F8E340E540'
'StatusCode' => 200
[2024-09-12 11:50:02]
'ApnsId' => '22541A6E-355E-73D6-D28F-D1F8E340E540'
'StatusCode' => 200
[2024-09-12 11:50:02]
'ApnsId' => '2984C9F3-CC81-9080-7B54-EF53D2E77D68'
'StatusCode' => 200
[2024-09-12 12:43:01]
'ApnsId' => 'A936595B-36F7-07C2-CFB7-3276C4BE8FC8'
'StatusCode' => 200
[2024-09-12 12:43:01]
'ApnsId' => '0C633C08-25B0-6FE2-2087-DD66C1C01532'
'StatusCode' => 200
According to these, the status code is 200.
We would like to know if the VoIP notifications in the logs shown above were received by the iPhone device we tested.
Hi Apple Engineers,
Is there an outage of the sandbox API for push notifications?
Since 3:00 AM (CEST) today, I haven’t received any notifications on my test devices.
The documentation doesn't state how to get the new APNs push token that is associated with a Live Activity that is started via an APNs push notification. I have been able to get the new token by listening to all instances of the Live Activities for my attribute type, but it makes me wonder how the "input-push-token" option for iOS 18 is supposed to work.
Is there another way to retrieve the newly created Live Activity push token when using "input-push-token"?