-
Notifications
You must be signed in to change notification settings - Fork 558
PushKit iOS xcode26.4 b2
Rolf Bjarne Kvinge edited this page Feb 27, 2026
·
1 revision
#PushKit.framework
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PKPushRegistry.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PKPushRegistry.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PKPushRegistry.h 2025-11-09 03:33:51
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PKPushRegistry.h 2026-02-13 17:07:46
@@ -59,7 +59,7 @@
@protocol PKPushRegistryDelegate;
-@class PKPushCredentials, PKPushPayload;
+@class PKPushCredentials, PKPushPayload, PKVoIPPushMetadata;
/// An object that requests the delivery and handles the receipt of PushKit notifications.
///
@@ -257,6 +257,59 @@
/// - completion: The notification's completion handler. Execute this block when you finish processing the notification.
///
- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type withCompletionHandler:(void(^)(void))completion API_AVAILABLE(macos(10.15), macCatalyst(13.0), ios(11.0), watchos(6.0), tvos(13.0));
+
+/// The system calls this method when it receives a VoIP push notification.
+/// Use this method to extract data from the notification's payload and to
+/// report a VoIP call using CallKit or LiveCommunicationKit.
+///
+/// The `metadata` parameter contains additional information about the
+/// VoIP payload. For example, If the `mustReport` metadata property
+/// is set to `YES` your app is required to report an incoming VoIP call or conversation using
+/// one of the following methods:
+///
+/// ## CallKit
+///
+/// <doc://com.apple.documentation/documentation/callkit/cxprovider/1930694-reportnewincomingcallwithuuid>
+///
+/// ## LiveCommunicationKit
+///
+/// <doc://com.apple.documentation/documentation/livecommunicationkit/conversationmanager/reportnewincomingconversation(uuid:update:)>
+///
+/// When you call either of these methods, the system displays the standard
+/// incoming call interface to the user unless an error occurs. For example,
+/// the system reports an error if the user enabled Do Not Disturb. You may
+/// establish a connection to your VoIP server in parallel to reporting the
+/// incoming call to the system.
+///
+/// If you fail to report a call or conversation to CallKit/LiveCommunicationKit and the metadata's
+/// `mustReport` parameter is set to `YES`, the system will terminate
+/// your app. Repeatedly failing to report calls may cause the system to
+/// stop delivering any more VoIP push notifications to your app.
+///
+/// If the metadata's `mustReport` parameter is set to `NO` you are not required to
+/// report a call or conversation to CallKit/LiveCommunicationKit. Scenarios that result in
+/// `mustReport` set to `NO` include: * Your app is running in the
+/// foreground * Your app already has an active call/conversation * The VoIP push
+/// notification was received by the device after an extended period of time
+/// due to network conditions.
+///
+/// If you are a VoIP developer you should prefer this delegate method over
+/// the`pushRegistry:didReceiveIncomingPushWithPayload:forType:
+/// withCompletionHandler:` method so that you can use the `metadata`
+/// parameter to ignore VoIP push notifications where `mustReport` is set to `NO`
+/// and do not need to be reported.
+///
+/// If you want to initiate a VoIP call without using CallKit, register for
+/// push notifications using the User Notifications framework instead of
+/// PushKit. For more information, see
+/// <doc://com.apple.documentation/documentation/usernotifications>.
+///
+/// - Parameters:
+/// - registry: The ``PushKit/PKPushRegistry`` instance responsible for the delegate callback.
+/// - payload: The push payload sent by a developer via APNs server API.
+/// - metadata: An object containing metadata about the VoIP push payload, such as the `mustReport` boolean indicating whether your app is required to report a call/conversation to CallKit/LiveCommunicationKit for this push.
+/// - completion: The notification's completion handler. Execute this block when you finish processing the notification
+- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingVoIPPushWithPayload:(PKPushPayload *)payload metadata:(PKVoIPPushMetadata *)metadata withCompletionHandler:(void(^)(void))completion API_AVAILABLE(macos(26.4), macCatalyst(26.4), ios(26.4), watchos(26.4));
/// Tells the delegate that the system invalidated the push token for the specified type.
///
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PKVoIPPushMetadata.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PKVoIPPushMetadata.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PKVoIPPushMetadata.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PKVoIPPushMetadata.h 2026-02-13 10:54:54
@@ -0,0 +1,27 @@
+//
+// PKVoIPPushMetadata.h
+// PushKit
+//
+// Created by Kevin Ferrell on 12/8/25.
+// Copyright © 2025 Apple. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+/// An object that contains metadata about a received PushKit VoIP notification.
+///
+/// ### Metadata
+///
+/// - ``PushKit/PKVoIPPushMetadata/mustReport``
+///
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(26.4), macCatalyst(26.4), ios(26.4), watchos(26.4))
+@interface PKVoIPPushMetadata : NSObject
+
+/// A boolean indicating whether a VoIP app must report a call or live conversation in response to receiving this VoIP notification.
+@property (readonly) BOOL mustReport;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PushKit.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PushKit.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PushKit.h 2025-11-09 04:02:01
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PushKit.framework/Headers/PushKit.h 2026-02-13 10:54:54
@@ -9,3 +9,4 @@
#import <PushKit/PKPushCredentials.h>
#import <PushKit/PKPushPayload.h>
#import <PushKit/PKPushRegistry.h>
+#import <PushKit/PKVoIPPushMetadata.h>