Notifications

RSS for tag

Learn about the technical aspects of notification delivery on device, including notification types, priorities, and notification center management.

Notifications Documentation

Posts under Notifications subtopic

Post

Replies

Boosts

Views

Activity

How to connect to Apple’s legacy server-to-server subscription endpoints (StoreKit v1) to receive real-time notifications
Our mobile app uses a specific platform for subscription management. At this time,, it's integration with Apple notifications is built around the Server-to-Server Notifications v1 and the traditional verifyReceipt endpoint. At this time, it does not support Server-to-Server Notifications v2, nor has any published documentation or resources on a custom integration path using v2. Our app is built using Flutter and we handle purchases with the in_app_purchase plugin. However, due to the limitation on the system for subscription side, we need to connect to Apple’s legacy server-to-server subscription endpoints (StoreKit v1) to receive real-time notifications and validate receipts. Could you please provide information how to do it?
0
11
134
May ’25
Case-ID: 14080335 Push notification requests to iOS devices using APNs (HTTP/2) time out
We are currently developing a WebAPI service that uses APNs (HTTP/2) to send push notifications to iOS devices. (Using PushSharp's HTTP/2 support) The WebAPI service is running on IIS using .net framework 4.8 and c#. The connection to APNs is always maintained, and the connection is checked every 30 minutes using a dummy token Ping. KeepAlivePeriod = 30 minutes and KeepAliveRetryPeriod = 10 seconds have also been set. However, the following issues are occurring. Although the Ping sent immediately before was successful, a TimeoutException occurs in the notification request sent a few minutes later. There is no explicit disconnection notification from APNs, and the connection appears to be silently disconnected. Once a TimeoutException occurs, it occurs frequently afterwards. Below is an excerpt from the log. Apple Notification Failed for some unknown reason 1-1: One or more errors occurred. Apple Notification Failed for some unknown reason 1-2:System.TimeoutException: The operation timed out. In light of this issue, I would like to be advised on the following two points. Are there any official specifications regarding the lifecycle and expiration date of APNs HTTP/2 connections? Even if pings are sent periodically, is there a timeout or other setting that disables the connection on the APNs side? What are the conditions that would cause APNs to silently terminate a connection? For example, could this be due to inactivity, TLS restrictions, network maintenance, etc.? If you have any official documentation or technical guidelines to improve the reliability of this system, we would appreciate it if you could share them with us. Thank you in advance.
3
0
212
May ’25
How to Enable com.apple.developer.pushkit.unrestricted-voip Entitlement for Production App?
We are developing a walkie-talkie style iOS app using CallKit and PushKit for real-time voice communication. The app is intended for internal company use and requires unrestricted VoIP push capabilities to reliably deliver incoming call alerts, even in background or locked states. Our app's use case follows Apple’s guidelines, and we are not using PushKit for messaging or background data. We have already enabled "Push Notifications" in Capabilities and confirmed the provisioning profile, but are unable to enable com.apple.developer.pushkit.unrestricted-voip. Could someone from Apple or the community advise on the current process to request this entitlement for a production app? Developer Team ID: 3KX7Q4LX88 App Bundle ID: com.ksc-sys.rcc.TakumiTalk Developer Name: KOHEI TAKAOKA Company: R C C, Y.K
2
0
44
May ’25
Status of Notification Service Extension filtering entitlement
Hi Apple engineering team, I contacted Developer Support regarding the status of our entitlements request, and they recommended that I post here for visibility. It’s been just over two weeks since we submitted the request, and we haven’t received any updates yet. We understand these requests can take time, but it’s unclear what the typical timeline looks like or if there’s any way to check on the progress. Is there a way to get an update or better understand where we are in the process? We’re trying to plan our release and would really appreciate any guidance on what to expect. Thanks in advance for your help.
1
0
86
May ’25
Enabling voip in react native
Currently working on a dating app which needs voip for audio and video calls for ios. the voip notifications only comes to the app in active and inactive mode but doesnt wake the device in background or terminated mode. After debugging i noticed that com.apple.developer.voip entitlement wasnt included which i later added, trying to create a build i get the eas error that the entitlement wasnt added to the identifier capabilities. My issue now is that i can't seem to find the voip capability to check in the identifiers capabilities list for the bundle id.d
1
0
49
May ’25
How to re-enable entitlements after App Transfer? (Location Push Service Extension)
Hi Apple team and fellow developers, We previously had Location Push Service Extension enabled and working in production. After transferring the app to a new Apple Developer team, the production App ID was transferred, but the Location Push entitlement was not retained. We've also created a new App ID for development, and now need Location Push access enabled for both the transferred production ID and the new development ID. We’ve already submitted the Location Push Access form with all relevant details. Unfortunately, the App Transfer documentation didn’t make it clear that Location Push access would be lost, and now we’re blocked from making new builds — even for the existing production app. ❓ Questions: Is it possible to re-enable Location Push for a transferred App ID? What’s the expected timeline for entitlement approval? Can Apple staff confirm the request status or let us know if any further action is needed? Thanks in advance — this entitlement is critical for our app’s functionality and release pipeline. Best, Aidar
0
0
37
May ’25
Push Notifications Failing - Xcode shows "Untitled" Certificates & "No App ID" for Push Console after Org Account Migration
Hi everyone, I recently migrated my individual Apple Developer account to an Organization account for my company "". My Team ID remained the same. I'm now facing persistent issues with code signing and push notifications for my iOS app (Bundle ID: com.).
 Current Problems:
 "Untitled" Certificates in Xcode: When I go to Xcode -> Settings -> Accounts -> [My Apple ID] -> Select "" Team -> "Manage Certificates...", a number of my newly created Apple Development and Apple Distribution certificates are listed древ "Untitled". Some older ones are "Revoked". (See attached screenshot if possible).
 "No App ID" for Push Notifications Console: In my app target's "Signing & Capabilities" tab, I've added the "Push Notifications" capability. However, when I click the info button to open the "Push Notifications Console", it states: "no app IDs: Register an App ID with the Push Notifications capability enabled to use the Push Notifications console." This is despite the fact that the Push Notifications capability IS enabled for my App ID com. in the Developer Portal, and I've configured an APNs Auth Key (.p8) for it.
 Push Notifications Not Received (from Backend): While I can successfully send a test push notification directly from the Firebase Console to my device's FCM token, notifications triggered by my backend (Firebase Cloud Functions writing to a Firestore collection, which then triggers another function to send via FCM) are not being delivered to iOS devices. (Android seems to be working more reliably now).
 Setup: Using an APNs Authentication Key (.p8) linked to my Organization Team ID in Firebase Cloud Messaging. Main App ID com. has "Push Notifications" capability enabled. Notification Service Extension com..ImageNotification also has its App ID and Provisioning Profile set up for the Organization team. Created new Development and Distribution certificates and Provisioning Profiles specifically for the Organization team. Using "Automatically manage signing" in Xcode with the Organization team selected for both the main app target and the extension target.
 Troubleshooting Done: Revoked old/problematic certificates and profiles. Recreated CSRs and new Development/Distribution certificates under the Organization team multiple times. Recreated Provisioning Profiles. Cleaned Derived Data in Xcode. Ensured Bundle Identifiers are consistent. Verified APNs Auth Key details (Key ID, Team ID) in Firebase.
 I suspect there's a fundamental issue with how Xcode is recognizing or linking the signing assets for my Organization team after the account type change, despite the Team ID being the same. The "Untitled" certificates are a major red flag.
 Has anyone encountered similar issues, particularly the "Untitled" certificates or the "No App ID" message for the Push Console, after an account migration or when working with Organization accounts? Any insights on how to resolve this would be greatly appreciated.
 Thanks,
Benni
0
0
73
May ’25
didRegisterForRemoteNotificationsWithDeviceToken Not Called on iOS 18.1.1
I'm experiencing issues with didRegisterForRemoteNotificationsWithDeviceToken not being called on iOS 18.1.1. Here's what I've tried: Basic Setup: Properly configured UNUserNotificationCenter Requested permissions with requestAuthorization(options:) Registered for remote notifications with registerForRemoteNotifications() Environment: Xcode 16.3 iOS 18.1.1 (physical device) Firebase (tried with and without it) Troubleshooting: Verified provisioning profile includes Push Notifications Confirmed APNs certificate is valid Disabled Firebase's method swizzling Tested on a clean project (works fine) Checked device logs (no relevant errors) Code Snippet: // In AppDelegate.swift public func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { let tokenParts = deviceToken.map { data in String(format: "%02.2hhx", data) } let tokenString = tokenParts.joined() print("📱 Device Token: \(tokenString)") // Store the token for your backend UserDefaults.standard.set(tokenString, forKey: "deviceToken") // Send to backend Task { do { try await APIService.shared.setDeviceToken(tokenString) } catch { print("❌ [AppDelegate] Failed to send device token to backend: \(error)") } } } public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool { // IMPORTANT: First handle push notification registration UNUserNotificationCenter.current().delegate = self // Request notification permissions self.requestNotificationPermissions() // Register for remote notifications DispatchQueue.main.async { UIApplication.shared.registerForRemoteNotifications() } return true } private func requestNotificationPermissions() { UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { granted, error in guard granted else { print("❌ Notification permission not granted") return } print("✅ Notification permission granted") } }
1
0
60
May ’25
Silent Push notifications XCode 16.3 stop working on production
Hello, we have recently started signing and building our applications using Xcode 16.3. Since we made this change, we’ve noticed that the applications have stopped receiving silent push notifications (content-available: 1) when they are distributed via TestFlight or the App Store, even though we haven’t changed anything in the way these notifications are sent. As I mentioned, this started happening after migrating our project from Xcode 15 to Xcode 16.3. Regular push notifications are still working as expected, but silent ones are not being received by the apps. We are desperate because we rely on these silent notifications to inform the apps of updates, and we haven’t been able to identify the root cause of the issue.
2
0
46
May ’25
invalid_client when invoking https://appleid.apple.com/auth/token
sending the following POST request: ---- HTTP REQUEST ---- POST https://appleid.apple.com/auth/token Headers: Content-Type: application/x-www-form-urlencoded Body: client_id=au.com.thejlrguy.businesschat&client_secret=eyJhbGciOiJFUzI1NiIsImtpZCI6IktLUDc4MkhGVTcifQ.eyJ...QeDn7ug&grant_type=client_credentials&scope=https%3A%2F%2Fappleid.apple.com Getting the below error: {"error":"invalid_client"} The private key used to sign the JWT was created 24 hours ago.
1
1
54
May ’25
Detecting Notification Banners, DND, and other screen anomalies
Is there a public method to know when an APNS has appeared on the screen? wrapping up a very high end photogrammetry app, using the front facing camera and screen illumination- incoming notifications completely throw off the math. Ideally, it would be great to turn on Do Not Disturb for the short process, but we’d settle for just the detection of the notification banner. also: extra credit - programattically adjusting Auto Dimming, and True Tone would be lovely too.
0
0
26
May ’25
Live activity push is not work
Hey there,i start a live activity,but it not works, and sometime it can work; apns-unique-id 46445cfa-1bf6-0f63-5ea3-2afa53e02b0d and it show that " 2025年5月19日 GMT+8 15:13:25.836 received by APNS Server 2025年5月19日 GMT+8 15:13:26.244 discarded as application was not registered" but i did not know how can i do; thanks for you help
1
0
50
May ’25
Critical Messages Allow messages to
I am creating an app that uses critical messages, I have been granted this entitlement and I am adding the certificate and in the info.plist. In the app I request authorization to send messages to specific numbers. When I try the app in production from Xcode this works fine and I can send the critical messages. However, when I am using the app in the test flight the authorization does not seem to be remembered on the background. Moreover, I go to security/privacy settings and I grant permission to the selected number (I see that it only shows one number even when I have to granted, its like it removes the previous one) however when I exit the setting page the permission is reset (and therefore denied), I think this is a bug. Can you look into that. Both this removing granted permission (HIGH PRIORITY, this message can only be sent in the background, therefore the user can not grant it and why the maximum telephone number to be granted to send messages is reset also to a single one LOWER PRIORITY). Thanks
2
0
55
May ’25
APNs Notifications Always Failing – 0-Byte Response
Hello, We are currently facing a persistent issue where Apple Push Notifications (APNs) are no longer being delivered to devices. This is not an intermittent problem — push notifications have completely stopped working. We are using PushSharp.Apple (Version 4.0.10.0) to send the notifications. Current Behavior (Failing): Every notification request appears to be processed successfully from the server side. However, the APNs client receives a 0-byte response, and the server closes the connection. Devices do not receive the notifications at all. Logs from Current (Failing) State: APNS-Client[1]: Connected (Batch ID=1) APNS-Client[1]: Sent Batch, waiting for possible response... APNS-Client[1]: Received 0 bytes response... APNS-Client[1]: Server Closed Connection... APNS-Client[1]: Disconnected (Batch ID=1) For Reference – Successful Log From Earlier (When Notifications Worked): APNS-Client[1]: Connected (Batch ID=1) APNS-Client[1]: Sent Batch, waiting for possible response... APNS-Client[1]: Received -1 bytes response... Push Notification Successfully Sent to Device Any help, suggestions, or experience with similar issues would be greatly appreciated. Thanks!!!
1
0
108
May ’25
Carplay not read incoming chat message like whats app.
We have implemented Carplay in our voip based project and in this we have implemented Incoming call and chat notification feature for Carplay. For Carplay we implemented siri. Siri Object donated Successfully in Notification service Extension when notification didreceive method called. Donation Code :- func donateIncomingMessageIntent(sender: String, senderId: String, message: String, messageId: String, userInfo: [AnyHashable: Any],destination:String) { // Create proper name components clearAllinteraction() var nameComponents = PersonNameComponents() nameComponents.givenName = sender //unknown let senderPerson = INPerson( personHandle: INPersonHandle(value: senderId, type: .unknown), nameComponents: nameComponents, displayName: sender, image: nil, contactIdentifier: senderId, customIdentifier: "sender_\(senderId)" ) let recipientPerson = INPerson( personHandle: INPersonHandle(value: "me@example.com", type: .emailAddress), nameComponents: nil, displayName: "Me", image: nil, contactIdentifier: "me_id", customIdentifier: "user_id" ) let inMessage = INMessage( identifier: messageId, conversationIdentifier: "conversation_\(senderId)", content: message, dateSent: Date(), sender: senderPerson, recipients: [recipientPerson], groupName: nil, messageType: .text ) let intent = INSearchForMessagesIntent( recipients: [recipientPerson], senders: [senderPerson], searchTerms: [message], attributes: .unread, dateTime: nil, identifiers: [messageId], notificationIdentifiers: [messageId], groupNames: ["Messages"] ) let interaction = INInteraction(intent: intent, response: nil) interaction.identifier = "message_\(messageId)" interaction.direction = .incoming // Add direction DispatchQueue.global(qos: .userInitiated).async { interaction.donate { error in if let error = error { print("❌ Failed to donate INSearchForMessagesIntent: \(error.localizedDescription)") } else { print("✅ Donated INSearchForMessagesIntent successfully!") let intentData: [String: Any] = [ "senderName": sender, "senderId": senderId, "message": message, "messageId": messageId, "timestamp": Date().timeIntervalSince1970, "conversationId": "conversation_\(senderId)", // Add conversationId "destination":destination ] let defaults = UserDefaults(suiteName: "group.com.chatapp") // 🔁 Use your App Group ID defaults?.removeObject(forKey: "lastCarPlayIntentData") defaults?.set(intentData, forKey: "lastCarPlayIntentData") defaults?.synchronize() } } } } Here SenderID is like 3000@abc,2000@abc etc. In siri ,When we handle INSearchForMessagesIntent at that time all data getting from Userdefaults because without Userdefaults INSearchForMessagesIntent value nil. Even we enabled announcement using .allowAnnouncement. We also tried to save same sender in contact Book because sometime siri search contact and not found then may be raise this type of issue. So we need code level support for read incoming message in carplay when notification comes. Thank you.
0
0
73
May ’25
Can Critical Alerts Play Sound Continuously Until User Interaction?
We are developing an app that receives push notifications (via Firebase) from configured IoT devices. It is essential that when a specific type of notification is received, a sound is played continuously until the user interacts with the notification. This behavior is crucial for alerting users to certain critical states of the IoT device. We understand that Critical Alerts on iOS can bypass Do Not Disturb and silent mode. However, from our testing and available documentation, the sound from a Critical Alert seems to be limited to around 30 seconds. Our question: Is it possible on iOS to have a Critical Alert (or any other type of notification) continue playing sound until the user interacts with the notification or app? If so, could someone please point us to the appropriate documentation or APIs? Thanks in advance for any guidance.
2
0
56
May ’25