We are currently planning the development of an iOS healthcare application that will require the use of Critical Alerts. I understand that these notifications bypass Do Not Disturb and Silent mode, and therefore require special entitlement from Apple.
We understand that Critical Alerts require a special entitlement from Apple. Could you please clarify:
Do we need to request and obtain Apple’s approval for Critical Alerts before we begin development of the app?
Or can we apply for this entitlement after we have a working build or prototype ready?
We want to ensure compliance and streamline our development process, so any guidance on the appropriate timing for the entitlement request would be greatly appreciated.
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
Provisioning profiles created for my App ID are not including the Push Notifications capability, even though Push Notifications is enabled in the App ID configuration in Apple Developer Portal.
I have enabled Push Notifications for my App ID (com.abc.app) in the Apple Developer Portal. The capability shows as enabled and saved. However, when provisioning profiles are generated (either manually or through third-party tools like Expo Application Services), they do not include:
The Push Notifications capability
The aps-environment entitlement
This results in build failures with the following errors:
Provisioning profile "*[expo] com.abc.app AppStore [timestamp]" doesn't support the Push Notifications capability.
Provisioning profile "*[expo] com.abc.app AppStore [timestamp]" doesn't include the aps-environment entitlement.
Steps Taken
✅ Enabled Push Notifications in App ID configuration (com.mirova.app)
✅ Saved the App ID configuration multiple times
✅ Waited for Apple's systems to sync (waited 5-10 minutes)
✅ Removed and re-added Push Notifications capability (unchecked, saved, re-checked, saved)
✅ Created Push Notification key in Apple Developer Portal
✅ Verified Push Notifications is checked and saved in App ID
❌ Provisioning profiles still created without Push Notifications capability
Expected Behavior
When Push Notifications is enabled for an App ID, any provisioning profiles created for that App ID should automatically include:
Push Notifications capability
aps-environment entitlement (set to production or development)
Actual Behavior
Provisioning profiles are created without Push Notifications capability, even though:
Push Notifications is enabled in App ID
App ID configuration is saved
Sufficient time has passed for sync
Additional Information
Push Notification Key: Created and valid (Key ID: 3YKQ7XLG9L and 747G8W2J68)
Distribution Certificate: Valid and active
Provisioning Profile Type: App Store distribution
Third-party Tool: Using Expo Application Services (EAS) for builds, but issue persists with manually created profiles as well
Questions
Is there a delay or sync issue between enabling Push Notifications in App ID and it being available for provisioning profiles?
Are there any additional steps required to ensure Push Notifications is included in provisioning profiles?
Is there a known issue with Push Notifications capability not being included in provisioning profiles?
Should I create the provisioning profile in a specific way to ensure Push Notifications is included?
Environment
Platform: iOS
Build Type: App Store distribution
Xcode Version: (via EAS cloud build)
Thank you for your assistance. I've been unable to resolve this issue and would appreciate any guidance.
iOS Deployment Target: Latest
Hi All,
im working on a project to send a push notification in CarPlay.
Current accepted by apple entitlements is driving.
Are custom actions / buttons allowed/supported in CarPlay notifications?
Topic:
App & System Services
SubTopic:
Notifications
Tags:
CarPlay
Notification Center
User Notifications
Hi, We recently updated our app icon, but the push notification icon has not been updated on some devices. It still shows the old icon on: • iPhone 16 Pro — iOS 26 • iPhone 14 — iOS 26 • iPad Pro 11” (M4) — iOS 18.6.2 • iPhone 16 Plus — iOS 18.5
After restarting these devices, the push notification icon is refreshed and displays the new version correctly.
Could you advise how we can ensure the push notification icon updates properly on all affected devices without requiring users to restart?
Thank you.
I have a database in CloudKit, where the host share (using CKShare) a record to participants. The record is in her private database, but for the participants is in their shared database. How do I send push notifications to everyone when a new child record is created?
Hi Apple Dev Team,
We have a React Native application that includes call functionality using PushKit and VoIP notifications.
We are using APNS to send the VoIP notifications, and everything has been working smoothly on iOS versions up to 18.3.1.
However, after updating to iOS 18.4, we are no longer receiving incoming VoIP push notifications on the device.
There have been no code changes related to our PushKit or notification logic — the exact same build continues to work correctly on devices running iOS 18.3.1 and earlier.
We're trying to understand if anything has changed in iOS 18.4 that affects VoIP push delivery or registration behavior.
Would appreciate any guidance, and happy to share code snippets or configuration if needed.
Thanks in advance!
token:009739d008a19dbe7e2273a1e4e8b5f73c4e2d7e220e7308f41e316f4c2fcf56
最近app无法收到服务端通过apns推送的通知,提交是成功的,但是app的所有用户都无法收到通知
The iOS documentation shows notification actions buttons with the text center aligned: https://developer.apple.com/documentation/usernotifications/declaring-your-actionable-notification-types
But there's no apparent way for an app to control this. The buttons are controlled and rendered by the system and the text is always left aligned.
Is there some way to get the text center aligned?
My push notifications on Ios devices come through but only silently while all settings are on order. On Android sounds are on. Anyway knows how to fix this on Apple's side?
I’m using Appnotic from my server to send notifications for an emergency service, where it is critical that notifications are delivered immediately.
My payload looks like this:
"aps": {
"alert": "Test alert",
"sound": {
"critical": 1,
"name": "sound.wav",
"volume": 0.5
},
"content-available": 1,
"category": "alert"
},
"topic": "com.fireservicerota.FSR-Primary-Alerting",
"custom_payload": {
"id": "11",
"type": "alert",
"incident_id": 23434,
"incident_response_id": 2652343,
"expiration_time": "2024-06-06T16:59:05+01:00"
}
}
I already have the critical alert entitlement and background processing enabled. Everything seems fine when debugging, but I’m experiencing issues:
• Some notifications never arrive
• Around 60% of notifications arrive with noticeable delay
Since this is an emergency app, delivery speed is crucial. What could be causing this inconsistency?
Hi team,
I am developing VOIP feature using PushKit and CallKit but CallKit is not show when app in background or terminate state, now in foreground state I can call reportNewIncomingCall from pushRegistry-didReceiveIncomingPushWith and it's work as expected but the problem is in background or terminate state it's not
my setup:
PushKit is configured
In Signing & Capabilities I add background modes (Remote notifications and Voice over IP)
In info.plist I add
<key>UIBackgroundModes</key>
<array>
<string>voip</string>
I'm not sure should I create new VOIP Certificate but now I can receive message notification normally.
Any help or suggestions would be greatly appreciated
Thank you
Push-notification token is properly requested and displayed from the iOS simulator / xcode, but not from the release in the AppStore... Both popups for permission (push-notifications and critical alert) appear and can be confirmed, but no callback takes place...
Topic:
App & System Services
SubTopic:
Notifications
I am currently implementing VoIP push notifications in my iOS app using PushKit. On iOS 18, I am able to receive VoIP notifications successfully when the app is in the foreground. However, when the app is in the background or in a terminated (kill) state, the notifications do not arrive.
In earlier iOS versions, my existing implementation worked as expected across all app states. This issue seems to have started after testing on iOS 18, which appears to have introduced stricter permission or background execution requirements.
Questions:
Has iOS 18 introduced new permission requirements or entitlements for VoIP push notifications?
Do I need to explicitly request a new type of user permission for VoIP notifications?
Are there additional background modes, Info.plist keys, or PushKit changes required for VoIP to work in background and terminated states on iOS 18?
Additional Information:
. Foreground: Works fine, pushRegistry(_:didReceiveIncomingPushWith:for:completion:) is triggered.
. Background/Terminated: No call to the above delegate method.
. Using correct voip push type in the payload.
. PushKit is configured in AppDelegate.
. Background modes for "Voice over IP" and "Background Processing" are enabled.
. Using a real device with iOS 18 for testing (not simulator).
Any guidance or updated documentation references for handling VoIP pushes in iOS 18 would be greatly appreciated.
We recently developed the provisional permission for our app, but we have noticed that is not working as expected in iOS 16 (We have tested only there).
Currently we request the permissions like this:
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound, .provisional]) { [weak self] _, _ in
// here we register for pushes in case authorizationStatus is provisional or authorised
}
What happens is we do get the 1st notification with the keep CTA - once tapped we see that there pops an action: "Deliver Immediately", but even though the user selects that, we still see under setting the pushes are marked as "Deliver Quietly".
In addition to this the sound and bage still stay as toggled off - and the lock screen and banner as well stay off.
Basically, nothing changes after the user selects "Deliver Immediately"
Hi Team,
We’re following up on our request for the Critical Alert entitlement for our app, which we plan to use to notify users about critical states of their devices. It’s been almost 4 weeks since we submitted the request, and we wanted to check on the typical review timeline so we can plan our upcoming work accordingly.
If there’s anything we can provide or clarify to help complete the review or make the process easier, we’d be happy to assist. or the right forum to reach out to.
Topic:
App & System Services
SubTopic:
Notifications
I'm working on implementing Apple Wallet passes using background push notifications.
My server successfully sends the push notification using APNs. The response from the server is HTTP/2 200, and the device receives the push — I can confirm this from device logs.
However, the device logs show the following error:
"Failed to parse JSON message payload for topic "
"Unable to deserialize JSON message payload"
My payload is below 2 payload.
//string payload = "{"aps":{"content-available":1}}";
string payload = JsonConvert.SerializeObject(new
{
aps = new Dictionary<string, object>
{
{ "content-available", 1 }
}
});
string curlArgs = $"-s -o nul -w \"%{{http_code}}\" " +
$"--data-binary \"{payload}\" " +
$"-H \"apns-topic: {bundleId}\" " +
$"-H \"apns-push-type: background\" " +
$"-H \"apns-priority: 5\" " +
$"-H \"content-type: application/json\" " +
$"-H \"authorization: bearer {jwt}\" " +
$"--http2 https://api.push.apple.com/3/device/{token}";
I’ve confirmed that:
The device has the Wallet pass installed.
The apns-topic header is set to my passTypeIdentifier.
The apns-push-type is background and apns-priority is 5.
Steps to Reproduce:
Install Wallet pass on iOS device.
Send background push to device using the above payload.
Observe the device logs using Console.app or log stream.
See error: unable to deserialize JSON message payload.
Is there a specific payload format expected for Wallet passes? Or any additional fields required in the push payload to avoid this deserialization error?
I'm having a reproducible problem receiving push notifications on macOS 26.2.
The pattern is that the push is received and then discarded almost immediately (there is a 60s expiration date) when on battery power and then when I plug in pushes start working and even if I unplug again it works for hours until breaking again.
These are alert notifications with priority 10.
Other team members have had similar problems but less reliably broken and even get a "stored for device power considerations" message followed by discarded (see apns-unique-id c29250a3-abbf-008a-96f9-a5384e32d1df).
An example from my machine with the apns-unique-id 6b2dfe3d-af99-182a-0e1e-6b811d3ec486 which fails immediately.
iOS is working fine however so this seems to be confined to macOS only.
I need to create a background notification that counts down time and uses buttons to add or subtract time. Currently, I'm developing in React Native and using Expo Go to develop my app.
I managed to display a simple notification, but I can't get it to work in real-time, so that when the time is up, it emits a sound indicating that the break is over.
How can I implement this feature?
My application now:
My goal:
Hi all,
May I please ask for an official clarification or documentation reference from Apple regarding this scenario:
Is it possible for an iOS app to automatically launch or open a specific screen when a push notification is received — while the app is in the background or terminated (killed) state?
I understand that for most cases, user interaction (such as tapping the notification) is required before the app can show UI. However, I’d like to confirm whether this is also true for time-sensitive or critical alert notifications, including emergency use cases (e.g. public safety alerts).
Specifically:
Can a critical alert notification directly launch the app or present a view controller?
Or is user interaction always required before the app can present any UI, even with the critical alert entitlement?
I would appreciate if anyone — especially Apple staff or engineers — could share an official Apple document or statement that confirms this behavior.
Thank you very much!
(Use case context: I’m developing an emergency broadcast feature for a property management / tenant app.)
Topic:
App & System Services
SubTopic:
Notifications
Tags:
APNS
User Notifications
PushKit
Background Tasks
when I implementation the UNUserNotificationCenterDelegate
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
var status = ""
if (UIApplication.shared.applicationState == .active) {
status = "active"
} else if (UIApplication.shared.applicationState == .background) {
status = "background"
} else if (UIApplication.shared.applicationState == .inactive) {
status = "inactive"
}
completionHandler()
}
I find that UIApplication.shared.applicationState == .background this case can not execute when application is in background。
why applicationState is inactive not background?