Skip to content

GameKit iOS xcode26.0 b1

Alex Soto edited this page Jun 9, 2025 · 1 revision

#GameKit.framework

diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h	2025-04-19 04:57:23
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h	2025-05-25 02:15:48
@@ -41,22 +41,24 @@
 @property (nonatomic, readonly) BOOL isPresentingGameCenter;        /// observable property that becomes true when user taps on the access point and it is showing Game Center UI.  Will become false when it is dismissed
 
 /// Set this property to true if you wish to show the highlights for most recent achievement, current rank on default leaderboard, etc
-@property (nonatomic, assign) BOOL showHighlights;
+@property (nonatomic, assign) BOOL showHighlights API_DEPRECATED("No longer supported", ios(14.0,26.0), macos(11.0,26.0), tvos(14.0,26.0), visionos(1.0,26.0));
 
 /// These properties control the placement of the widget
 @property (nonatomic, assign) GKAccessPointLocation location;       /// specifies the location on the screen that the developer wishes to place the access point
 
-/// observable property that contains the current frame needed to display the widget
 #if TARGET_OS_OSX && !TARGET_OS_MACCATALYST
+/// observable property that contains the current frame needed to display the widget
 @property (nonatomic, readonly) NSRect frameInScreenCoordinates;
 #else
+/// observable property that contains the current frame needed to display the widget
 @property (nonatomic, readonly) CGRect frameInScreenCoordinates;
 #endif
 
-/// the following is a platform specific window that you wish to have the access point in.  If not set then a best attempt will be made to choose the main window of the app.
 #if TARGET_OS_OSX && !TARGET_OS_MACCATALYST
+/// the following is a platform specific window that you wish to have the access point in.  If not set then a best attempt will be made to choose the main window of the app.
 @property (nonatomic, weak, nullable) NSWindow *parentWindow;
 #else
+/// the following is a platform specific window that you wish to have the access point in.  If not set then a best attempt will be made to choose the main window of the app.
 @property (nonatomic, weak, nullable) UIWindow *parentWindow;
 #endif
 
@@ -74,6 +76,31 @@
                                     handler:(void (^ __nullable)(void))handler NS_SWIFT_NAME(trigger(leaderboardID:playerScope:timeScope:handler:)) API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
 - (void)triggerAccessPointWithPlayer:(GKPlayer *)player
                              handler:(void (^ __nullable)(void))handler NS_SWIFT_NAME(trigger(player:handler:)) API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
+/// Displays the view that allows players to engage each other with activities and challenges.
+- (void)triggerAccessPointForPlayTogetherWithHandler:(void (^ _Nullable)(void))handler NS_SWIFT_NAME(triggerForPlayTogether(handler:)) NS_SWIFT_ASYNC(1) API_AVAILABLE(ios(26.0), macos(26.0)) API_UNAVAILABLE(tvos, visionos, watchos);
+
+/// Displays the view that allows players to engage each other with challenges.
+- (void)triggerAccessPointForChallengesWithHandler:(void (^ _Nullable)(void))handler NS_SWIFT_NAME(triggerForChallenges(handler:)) NS_SWIFT_ASYNC(1) API_AVAILABLE(ios(26.0), macos(26.0)) API_UNAVAILABLE(tvos, visionos, watchos);
+
+/// Displays the challenge creation view for the provided challenge definition ID.
+- (void)triggerAccessPointWithChallengeDefinitionID:(NSString *)challengeDefinitionID
+                                            handler:(void (^ _Nullable)(void))handler NS_SWIFT_NAME(trigger(challengeDefinitionID:handler:)) NS_SWIFT_ASYNC(2) API_AVAILABLE(ios(26.0), macos(26.0)) API_UNAVAILABLE(tvos, visionos, watchos);
+
+/// Displays the game activity creation view for the provided activity definition ID.
+- (void)triggerAccessPointWithGameActivityDefinitionID:(NSString *)gameActivityDefinitionID
+                                               handler:(void (^ _Nullable)(void))handler NS_SWIFT_NAME(trigger(gameActivityDefinitionID:handler:)) NS_SWIFT_ASYNC(2) API_AVAILABLE(ios(26.0), macos(26.0)) API_UNAVAILABLE(tvos, visionos, watchos);
+
+/// Brings up the invite friends view.
+- (void)triggerAccessPointForFriendingWithHandler:(void (^ _Nullable)(void))handler NS_SWIFT_NAME(triggerForFriending(handler:)) NS_SWIFT_ASYNC(1) API_AVAILABLE(ios(26.0), macos(26.0)) API_UNAVAILABLE(tvos, visionos, watchos);
+
+@end
+
+API_UNAVAILABLE(ios, macos) API_UNAVAILABLE(ios, macos, tvos, visionos, watchos)
+@interface GKAccessPoint (Private)
+
+- (void)_triggerAccessPointWithGameActivityDefinitionID:(NSString *)gameActivityDefinitionID
+                                               handler:(void (^ _Nullable)(void))handler NS_SWIFT_NAME(_trigger(gameActivityDefinitionID:handler:)) NS_SWIFT_ASYNC(2) API_UNAVAILABLE(ios, macos) API_UNAVAILABLE(ios, macos, tvos, visionos, watchos);
 
 @end
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h	2025-04-19 03:51:32
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h	2025-05-31 01:04:04
@@ -32,6 +32,12 @@
 @property(copy, readonly, nullable) NSNumber *rarityPercent API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0), tvos(17.0)) NS_REFINED_FOR_SWIFT;
 /// The release state of the achievement in App Store Connect.
 @property(nonatomic, assign, readonly) GKReleaseState releaseState API_AVAILABLE(ios(18.4), macos(15.4), watchos(11.4), tvos(18.4), visionos(2.4));
+
+/// The identifier of the game activity associated with this achievement, as configured by the developer in App Store Connect.
+@property (readonly, nonatomic, copy) NSString *activityIdentifier API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0), watchos(26.0));
+
+/// The properties when associating this achievement with a game activity, as configured by the developer in App Store Connect.
+@property (readonly, nonatomic, strong) NSDictionary<NSString *, NSString *> *activityProperties API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0), watchos(26.0));
 @end
 NS_ASSUME_NONNULL_END
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h	2025-04-19 14:34:55
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h	2025-05-31 01:04:03
@@ -16,9 +16,9 @@
     GKChallengeStatePending = 1, // The challenge has been issued, but neither completed nor declined
     GKChallengeStateCompleted = 2, // The challenge has been completed by the receiving player
     GKChallengeStateDeclined = 3, // The challenge has been declined by the receiving player
-} API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
+} API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(6.0,26.0), macos(10.8,26.0), tvos(9.0,26.0), visionos(1.0,26.0), watchos(3.0,26.0));
 
-API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
+API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(6.0,26.0), macos(10.8,26.0), tvos(9.0,26.0), visionos(1.0,26.0)) API_UNAVAILABLE(watchos)
 @interface GKChallenge : NSObject <NSCoding, NSSecureCoding>
 
 /// Query challenges for the current game issued to the local player -- equivalent GKChallenge objects are not guaranteed to be pointer equivalent across calls, but equal GKChallenge objects will have equal hashes
@@ -51,7 +51,7 @@
 @property (nonatomic, readonly, nullable, copy) NSString *receivingPlayerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKChallenge/receivingPlayer`` instead", ios(6.0,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos, watchos);
 @end
 
-API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
+API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(6.0,26.0), macos(10.8,26.0), tvos(9.0,26.0), visionos(1.0,26.0)) API_UNAVAILABLE(watchos)
 @interface GKScoreChallenge : GKChallenge
 
 /// The score to meet to satisfy this challenge
@@ -62,7 +62,7 @@
 
 @end
 
-API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
+API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(6.0,26.0), macos(10.8,26.0), tvos(9.0,26.0), visionos(1.0,26.0)) API_UNAVAILABLE(watchos)
 @interface GKAchievementChallenge : GKChallenge
 
 /// The achievement to achieve to satisfy this challenge
@@ -78,17 +78,17 @@
 /// Use this alternative to reportScores:withCompletionHandler: to allow only certain specific challenges to be completed. Pass nil to avoid completing any challenges.
 + (void)reportScores:(NSArray<GKScore *> *)scores withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use ``GKScore/report(_:withEligibleChallenges:withCompletionHandler:)`` instead.", ios(6.0,14.0), macos(10.10,11.0));
 
-+ (void)reportLeaderboardScores:(NSArray<GKLeaderboardScore *> *)scores withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
++ (void)reportLeaderboardScores:(NSArray<GKLeaderboardScore *> *)scores withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(14.0,26.0), macos(11.0,26.0), tvos(14.0,26.0), visionos(1.0,26.0)) API_UNAVAILABLE(watchos);
 
 @end
 
 @interface GKAchievement (GKChallenge)
 
 /// Given a list of players, return a subset of that list containing only players that are eligible to receive a challenge for the achievement.
-- (void)selectChallengeablePlayers:(NSArray<GKPlayer *> *)players withCompletionHandler:(void(^ __nullable)(NSArray<GKPlayer *> * __nullable challengeablePlayers, NSError * __nullable error))completionHandler API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+- (void)selectChallengeablePlayers:(NSArray<GKPlayer *> *)players withCompletionHandler:(void(^ __nullable)(NSArray<GKPlayer *> * __nullable challengeablePlayers, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(8.0, 26.0), macos(10.10, 26.0), tvos(9.0, 26.0), visionos(1.0, 26.0)) API_UNAVAILABLE(watchos);
 
 /// Use this alternative to reportAchievements:withCompletionHandler: to allow only certain specific challenges to be completed. Pass nil to avoid completing any challenges.
-+ (void)reportAchievements:(NSArray<GKAchievement *> *)achievements withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
++ (void)reportAchievements:(NSArray<GKAchievement *> *)achievements withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(7.0, 26.0), macos(10.10, 26.0), tvos(9.0, 26.0), visionos(1.0, 26.0)) API_UNAVAILABLE(watchos);
 
 @end
 
@@ -108,11 +108,13 @@
 #if TARGET_OS_IPHONE
 @class UIViewController;
 typedef void (^GKChallengeComposeCompletionBlock)(UIViewController *composeController, BOOL didIssueChallenge, NSArray<NSString *> * __nullable sentPlayerIDs) API_DEPRECATED_WITH_REPLACEMENT("Use ``GKChallengeComposeHandler`` instead.", ios(8.0, 17.0), tvos(9.0, 17.0));
-typedef void (^GKChallengeComposeHandler)(UIViewController *composeController, BOOL didIssueChallenge, NSArray<GKPlayer *> * __nullable sentPlayers) API_AVAILABLE(ios(17.0), tvos(17.0));
+
+typedef void (^GKChallengeComposeHandler)(UIViewController *composeController, BOOL didIssueChallenge, NSArray<GKPlayer *> * __nullable sentPlayers) API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(17.0,26.0), tvos(17.0,26.0));
 #else
 @class NSViewController;
 typedef void (^GKChallengeComposeCompletionBlock)(NSViewController *composeController, BOOL didIssueChallenge, NSArray<NSString *> * __nullable sentPlayerIDs) API_DEPRECATED_WITH_REPLACEMENT("Use ``GKChallengeComposeHandler`` instead.", macos(10.10, 14.0));
-typedef void (^GKChallengeComposeHandler)(NSViewController *composeController, BOOL didIssueChallenge, NSArray<GKPlayer *> * __nullable sentPlayers) API_AVAILABLE(macos(14.0));
+
+typedef void (^GKChallengeComposeHandler)(NSViewController *composeController, BOOL didIssueChallenge, NSArray<GKPlayer *> * __nullable sentPlayers) API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", macos(14.0,26.0));
 #endif
 
 
@@ -120,26 +122,32 @@
 // Use the following category methods to issue GKScoreChallenges and GKAchievementChallenges to an array of playerIDs. Players may not issue challenges to themselves nor to non-friends. Please see the GameKit reference documentation for further details on these methods.
 @interface GKScore (GKChallengeUI)
 
-// Return a challenge compose view controller with pre-selected GKPlayers and a preformatted, player-editable message. Once this view controller is displayed, and the player sends or cancels sending the challenge, the completion handler will be called. This block contains the view controller, the reason why the handler was called, as well as which (if any) GKPlayers the challenge was sent to. Present modally from the top view controller. The completion handler should dismiss the view controller.
 #if TARGET_OS_IPHONE
+// Return a challenge compose view controller with pre-selected GKPlayers and a preformatted, player-editable message. Once this view controller is displayed, and the player sends or cancels sending the challenge, the completion handler will be called. This block contains the view controller, the reason why the handler was called, as well as which (if any) GKPlayers the challenge was sent to. Present modally from the top view controller. The completion handler should dismiss the view controller.
 - (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", ios(8.0, 17.0), tvos(9.0, 17.0));
-- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(ios(17.0), tvos(17.0));
+
+- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(17.0,26.0), tvos(17.0,26.0));
 #else
+// Return a challenge compose view controller with pre-selected GKPlayers and a preformatted, player-editable message. Once this view controller is displayed, and the player sends or cancels sending the challenge, the completion handler will be called. This block contains the view controller, the reason why the handler was called, as well as which (if any) GKPlayers the challenge was sent to. Present modally from the top view controller. The completion handler should dismiss the view controller.
 - (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", macos(10.10, 14.0));
-- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(macos(14.0));
+
+- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", macos(14.0,26.0));
 #endif
 
 @end
 
 @interface GKLeaderboardEntry (GKChallengeUI)
 
-// Return a challenge compose view controller with pre-selected GKPlayers and a preformatted, player-editable message. Once this view controller is displayed, and the player sends or cancels sending the challenge, the completion handler will be called. This block contains the view controller, the reason why the handler was called, as well as which (if any) GKPlayers the challenge was sent to. Present modally from the top view controller. The completion handler should dismiss the view controller.
 #if TARGET_OS_IPHONE
+// Return a challenge compose view controller with pre-selected GKPlayers and a preformatted, player-editable message. Once this view controller is displayed, and the player sends or cancels sending the challenge, the completion handler will be called. This block contains the view controller, the reason why the handler was called, as well as which (if any) GKPlayers the challenge was sent to. Present modally from the top view controller. The completion handler should dismiss the view controller.
 - (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", ios(14.0, 17.0), tvos(14.0, 17.0));
-- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(ios(17.0), tvos(17.0));
+
+- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(17.0,26.0), tvos(17.0,26.0));
 #else
+// Return a challenge compose view controller with pre-selected GKPlayers and a preformatted, player-editable message. Once this view controller is displayed, and the player sends or cancels sending the challenge, the completion handler will be called. This block contains the view controller, the reason why the handler was called, as well as which (if any) GKPlayers the challenge was sent to. Present modally from the top view controller. The completion handler should dismiss the view controller.
 - (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", macos(11.0, 14.0));
-- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(macos(14.0));
+
+- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", macos(14.0,26.0));
 #endif
 
 @end
@@ -148,13 +156,16 @@
 
 // If an achievement has already been earned by the receiving player, and that achievement is not marked as replayable in App Store connect, then the challenge will not be issued to the player. If an achievement is hidden, then it will not be issued.
 
-// Return a challenge compose view controller with pre-selected GKPlayers and a preformatted, player-editable message. Once this view controller is displayed, and the player sends or cancels sending the challenge, the completion handler will be called. This block contains the view controller, the reason why the handler was called, as well as which (if any) GKPlayers the challenge was sent to. Present modally from the top view controller. The completion handler should dismiss the view controller.
 #if TARGET_OS_IPHONE
+// Return a challenge compose view controller with pre-selected GKPlayers and a preformatted, player-editable message. Once this view controller is displayed, and the player sends or cancels sending the challenge, the completion handler will be called. This block contains the view controller, the reason why the handler was called, as well as which (if any) GKPlayers the challenge was sent to. Present modally from the top view controller. The completion handler should dismiss the view controller.
 - (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completionHandler:(__nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", ios(8.0, 17.0), tvos(9.0, 17.0));
-- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completion:(__nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(ios(17.0), tvos(17.0));
+
+- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completion:(__nullable GKChallengeComposeHandler)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(17.0,26.0), tvos(17.0,26.0));
 #else
+// Return a challenge compose view controller with pre-selected GKPlayers and a preformatted, player-editable message. Once this view controller is displayed, and the player sends or cancels sending the challenge, the completion handler will be called. This block contains the view controller, the reason why the handler was called, as well as which (if any) GKPlayers the challenge was sent to. Present modally from the top view controller. The completion handler should dismiss the view controller.
 - (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completionHandler:(__nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", macos(10.10, 14.0));
-- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completion:(__nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(macos(14.0));
+
+- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completion:(__nullable GKChallengeComposeHandler)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", macos(14.0,26.0));
 #endif
 
 @end
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeDefinition.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeDefinition.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeDefinition.h	1969-12-31 19:00:00
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeDefinition.h	2025-05-31 23:26:11
@@ -0,0 +1,71 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+#import <TargetConditionals.h>
+
+#import <GameKit/GKLeaderboard.h>
+#import <GameKit/GKReleaseState.h>
+
+#if TARGET_OS_IPHONE
+@class UIImage;
+#else
+@class NSImage;
+#endif
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0), watchos(26.0))
+NS_SWIFT_SENDABLE @interface GKChallengeDefinition: NSObject
+
+/// The developer defined identifier for a given challenge definition.
+@property (nonatomic, readonly, copy) NSString *identifier;
+
+/// The group identifier for the challenge definition, if one exists.
+@property (nonatomic, readonly, copy, nullable) NSString *groupIdentifier;
+
+/// A short title for the challenge definition.
+@property (nonatomic, readonly, copy) NSString *title;
+
+/// A more detailed description of the challenge definition.
+@property (nonatomic, readonly, copy, nullable) NSString *details;
+
+/// The duration options for the challenge, like `1 day` or `1 week`.
+///  - Note: If set, the amount of weeks is stored in the `weekOfYear` field.
+/// - Important: The actual duration of the challenge may be dynamically adjusted
+///              in order to accommodate different factors like players' timezones.
+@property (nonatomic, readonly, copy) NSArray<NSDateComponents *> *durationOptions;
+
+/// Indicates if a challenge can be attempted more than once.
+@property (nonatomic, readonly) BOOL isRepeatable;
+
+/// Scores submitted to this leaderboard will also be submitted as scores in this challenge.
+@property (nonatomic, readonly, strong, nullable) GKLeaderboard *leaderboard;
+
+/// The release state of the challenge definition in App Store Connect.
+@property (nonatomic, readonly) GKReleaseState releaseState;
+
+#if TARGET_OS_IPHONE
+/// Loads the image set on the challenge definition, which may be `nil` if none was set.
+- (void)loadImageWithCompletionHandler:(void(^)(UIImage * _Nullable_result image, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:image()) API_UNAVAILABLE(watchos);
+#else
+/// Loads the image set on the challenge definition, which may be `nil` if none was set.
+- (void)loadImageWithCompletionHandler:(void(^)(NSImage * _Nullable_result image, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:image());
+#endif
+
+@end
+
+API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0), watchos(26.0))
+NS_SWIFT_SENDABLE @interface GKChallengeDefinition (State)
+
+/// Loads all the challenge definitions for the current game, returns an empty array if none exist.
+/// - Important: Archived challenge definitions are excluded.
++ (void)loadChallengeDefinitionsWithCompletionHandler:(void(^)(NSArray<GKChallengeDefinition *> * _Nullable challengeDefinitions,
+                                                               NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:all());
+
+/// Indicates if this definition has active challenges associated with it.
+- (void)hasActiveChallengesWithCompletionHandler:(void(^)(BOOL hasActiveChallenges,
+                                                          NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:hasActiveChallenges());
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKError.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKError.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKError.h	2025-04-19 03:51:31
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKError.h	2025-05-31 23:21:30
@@ -24,7 +24,7 @@
     GKErrorNotSupported                         API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 16,
     GKErrorInvalidParameter                     API_AVAILABLE(ios(4.2), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 17,
     GKErrorUnexpectedConnection                 API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 18,
-    GKErrorChallengeInvalid                     API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 19,
+    GKErrorChallengeInvalid                     API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(6.0,26.0), macos(10.8,26.0), tvos(9.0,26.0), visionos(1.0,26.0), watchos(3.0,26.0)) = 19,
     GKErrorTurnBasedMatchDataTooLarge           API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 20,
     GKErrorTurnBasedTooManySessions             API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 21,
     GKErrorTurnBasedInvalidParticipant          API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 22,
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h	2025-04-19 14:34:56
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h	2025-05-31 23:26:12
@@ -6,7 +6,7 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0))
+API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(7.0, 26.0), macos(10.10, 26.0), tvos(9.0, 26.0), visionos(1.0, 26.0), watchos(3.0, 26.0))
 @protocol GKChallengeListener <NSObject>
 @optional
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h	2025-04-19 14:34:55
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h	2025-05-31 23:26:11
@@ -14,16 +14,17 @@
 @class GKPlayer;
 
 
-/// Standard view controller for sending friend requests to other players. Present modally from the top view controller.
 #if TARGET_OS_IPHONE || TARGET_OS_MACCATALYST
 NS_ASSUME_NONNULL_BEGIN
 
+/// Standard view controller for sending friend requests to other players. Present modally from the top view controller.
 API_DEPRECATED("No longer supported.", ios(4.2,10.0), macos(10.8,10.12), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos)
 @interface GKFriendRequestComposeViewController : UINavigationController
 @end
 #else
 #import <GameKit/GKDialogController.h>
 NS_ASSUME_NONNULL_BEGIN
+/// Standard view controller for sending friend requests to other players. Present modally from the top view controller.
 API_DEPRECATED("No longer supported.", ios(4.2,10.0), macos(10.8,10.12), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos)
 @interface GKFriendRequestComposeViewController : NSViewController <GKViewController>
 @end
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivity.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivity.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivity.h	1969-12-31 19:00:00
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivity.h	2025-06-04 00:12:54
@@ -0,0 +1,192 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_WATCH
+
+#import <Foundation/Foundation.h>
+#import <GameKit/GKGameActivityState.h>
+#import <TargetConditionals.h>
+
+@class GKAchievement;
+@class GKGameActivityDefinition;
+@class GKLeaderboard;
+@class GKLeaderboardScore;
+@class GKMatch;
+@class GKMatchRequest;
+@class GKPlayer;
+@class GKTurnBasedMatch;
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos)
+/// `GKGameActivity` represents a single instance of a game activity for the current game.
+NS_SWIFT_SENDABLE @interface GKGameActivity : NSObject
+
+/// The identifier of this activity instance.
+@property (nonatomic, readonly, copy) NSString *identifier;
+
+/// The activity definition that this activity instance is based on.
+@property (nonatomic, readonly, strong) GKGameActivityDefinition *activityDefinition;
+
+/// Properties that contain additional information about the activity.
+///
+/// This takes precedence over the `defaultProperties` on the `activityDefinition`.
+///
+/// 1. This dictionary is initialized with the default properties from the activity definition and deep linked properties if any.
+/// 2. If deep linking contains the same key as the default properties, the deep linked value will override the default value.
+/// 3. The properties can be updated at runtime.
+@property (nonatomic, readwrite, copy) NSDictionary<NSString *, NSString *> *properties;
+
+/// The state of the game activity.
+@property (nonatomic, readonly, assign) GKGameActivityState state;
+
+/// If the game supports party code, this is the party code that can be shared among players to join the party.
+///
+/// If the game does not support party code, this value will be nil.
+/// - SeeAlso: ``-[GKGameActivity startWithDefinition:partyCode:completionHandler:]`` for creating a game activity with a custom party code.
+@property (nonatomic, readonly, copy, nullable) NSString *partyCode;
+
+/// If the game supports party code, this is the URL that can be shared among players to join the party.
+@property (nonatomic, readonly, strong, nullable) NSURL *partyURL;
+
+/// The date when the activity was created.
+@property (nonatomic, readonly, strong) NSDate *creationDate;
+
+/// The date when the activity was initially started.
+@property (nonatomic, readonly, strong, nullable) NSDate *startDate;
+
+/// The date when the activity was last resumed.
+///
+/// - If the activity was first started, this will be the same as the start date.
+/// - If the activity was paused and resumed, this will be the date when the activity was resumed.
+@property (nonatomic, readonly, strong, nullable) NSDate *lastResumeDate;
+
+/// The date when the activity was officially ended.
+@property (nonatomic, readonly, strong, nullable) NSDate *endDate;
+
+/// Total time elapsed while in active state.
+@property (nonatomic, readonly, assign) NSTimeInterval duration;
+
+/// All achievements that have been associated with this activity.
+///
+/// Progress of each achievement will be reported when the activity ends.
+@property(nonatomic, readonly, copy) NSSet<GKAchievement *> *achievements;
+
+/// All leaderboard scores that have been associated with this activity.
+///
+/// Scores will be submitted to the leaderboards when the activity ends.
+@property(nonatomic, readonly, copy) NSSet<GKLeaderboardScore *> *leaderboardScores;
+
+/// Allowed characters for the party code to be used to share this activity.
+@property(class, readonly, copy) NSArray<NSString *> *validPartyCodeAlphabet;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/// Creates and starts a new game activity with a custom party code.
+///
+/// The party code will be converted to uppercased.
++ (GKGameActivity * _Nullable)startWithDefinition:(GKGameActivityDefinition *)activityDefinition
+                                        partyCode:(NSString *)partyCode
+                                            error:(NSError **)error NS_SWIFT_NAME(start(definition:partyCode:));
+
+/// Initializes and starts a game activity with definition.
++ (GKGameActivity * _Nullable)startWithDefinition:(GKGameActivityDefinition *)activityDefinition
+                                            error:(NSError **)error NS_SWIFT_NAME(start(definition:));
+
+/// Checks whether a party code is in valid format.
+///
+/// Party code should be two parts of strings with the same length (2-6) connected with a dash, and the code can be either pure digits (0-9), or both parts are uppercased characters from `validPartyCodeAlphabet`.
+/// - SeeAlso: `validPartyCodeAlphabet` for allowed characters.
++ (BOOL)isValidPartyCode:(NSString *)partyCode;
+
+/// Initializes a game activity with definition.
+- (instancetype)initWithDefinition:(GKGameActivityDefinition *)activityDefinition;
+
+/// Starts the game activity if it is not already started.
+- (void)start;
+
+/// Pauses the game activity if it is not already paused.
+- (void)pause;
+
+/// Resumes the game activity if it was paused.
+- (void)resume;
+
+/// Ends the game activity if it is not already ended.
+///
+/// This will report all associated achievements and submit scores to leaderboards.
+- (void)end;
+
+/// Set a score of a leaderboard with a context for a player.
+///
+/// The score will be submitted to the leaderboard when the activity ends.
+- (void)setScoreOnLeaderboard:(GKLeaderboard *)leaderboard
+                      toScore:(NSInteger)score
+                      context:(NSUInteger)context NS_SWIFT_NAME(setScore(on:to:context:));
+
+/// Set a score of a leaderboard for a player.
+///
+/// The score will be submitted to the leaderboard when the activity ends.
+- (void)setScoreOnLeaderboard:(GKLeaderboard *)leaderboard
+                      toScore:(NSInteger)score NS_SWIFT_NAME(setScore(on:to:));
+
+/// Get the leaderboard score from a specific leaderboard of the local player if previously set.
+- (GKLeaderboardScore * _Nullable)getScoreOnLeaderboard:(GKLeaderboard *)leaderboard NS_SWIFT_NAME(score(on:));
+
+/// Removes all scores from leaderboards for a player if exist.
+- (void)removeScoresFromLeaderboards:(NSArray<GKLeaderboard *> *)leaderboards NS_SWIFT_NAME(removeScores(from:));
+
+/// Set a progress for an achievement for a player.
+///
+/// Achievement progress will be reported when the activity ends.
+- (void)setProgressOnAchievement:(GKAchievement *)achievement
+               toPercentComplete:(double)percentComplete NS_SWIFT_NAME(setProgress(on:to:));
+
+/// Convenience method to set a progress to 100% for an achievement for a player.
+///
+/// Achievement completion will be reported when the activity ends.
+- (void)setAchievementCompleted:(GKAchievement *)achievement NS_SWIFT_NAME(setAchievementCompleted(_:));
+
+/// Get the achievement progress from a specific achievement of the local player if previously set.
+/// 
+/// Returns 0 if the achievement has not been set in the current activity.
+- (double)getProgressOnAchievement:(GKAchievement *)achievement NS_SWIFT_NAME(progress(on:));
+
+/// Removes all achievements if exist.
+- (void)removeAchievements:(NSArray<GKAchievement *> *)achievements NS_SWIFT_NAME(removeAchievements(_:));
+@end
+
+#if __LP64__
+API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos)
+@interface GKGameActivity (Multiplayer)
+
+/// Makes a `GKMatchRequest` object with information from the activity, which can be used to find matches for the local player.
+- (GKMatchRequest * _Nullable)makeMatchRequest;
+
+/// Use information from the activity to find matches for the local player.
+///
+/// GameKit will create a classic match making request with the activity's party code and other information, and return the match object in the completion handler or any error that occurred.
+/// Error occurs if this activity doesn't support party code, or has unsupported range of players, which is used to be configured as match request's minPlayers and maxPlayers.
+- (void)findMatchWithCompletionHandler:(void(^)(GKMatch * _Nullable match,
+                                                NSError * _Nullable error))completionHandler NS_SWIFT_NAME(findMatch(completionHandler:));
+
+/// Use information from the activity to find server hosted players for the local player.
+///
+/// GameKit will create a classic server hosted match making request with the activity's party code and other information, and return the players in the completion handler or any error that occurred.
+/// Error occurs if this activity doesn't support party code, or has unsupported range of players, which is used to be configured as match request's minPlayers and maxPlayers.
+- (void)findPlayersForHostedMatchWithCompletionHandler:(void(^)(NSArray<GKPlayer *> * _Nullable players,
+                                                                NSError * _Nullable error))completionHandler NS_SWIFT_NAME(findPlayersForHostedMatch(completionHandler:));
+
+@end
+#endif
+
+API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos)
+@interface GKGameActivity (State)
+
+/// Checks whether there is a pending activity to handle for the current game.
++ (void)checkPendingGameActivityExistenceWithCompletionHandler:(void(^)(BOOL))completionHandler NS_SWIFT_ASYNC_NAME(getter:hasPendingGameActivities());
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#endif // #if !TARGET_OS_WATCH
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityDefinition.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityDefinition.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityDefinition.h	1969-12-31 19:00:00
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityDefinition.h	2025-05-31 01:04:03
@@ -0,0 +1,98 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_WATCH
+
+#import <Foundation/Foundation.h>
+#import <GameKit/GKGameActivityPlayStyle.h>
+#import <GameKit/GKReleaseState.h>
+#import <TargetConditionals.h>
+
+#if TARGET_OS_IPHONE
+@class UIImage;
+#else
+@class NSImage;
+#endif
+
+@class GKAchievementDescription;
+@class GKLeaderboard;
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_SENDABLE @interface GKGameActivityDefinition : NSObject
+
+/// The developer defined identifier for a given game activity.
+@property (nonatomic, readonly, copy) NSString *identifier;
+
+/// The group identifier for the activity, if one exists.
+@property (nonatomic, readonly, copy, nullable) NSString *groupIdentifier;
+
+/// A short title for the game activity.
+@property (nonatomic, readonly, copy) NSString *title;
+
+/// A more detailed description of the game activity.
+@property (nonatomic, readonly, copy, nullable) NSString *details;
+
+/// Default properties defined by the developer for this type of game activity.
+@property (nonatomic, readonly, copy) NSDictionary<NSString *, NSString *> *defaultProperties;
+
+/// A fallback URL that can be used to construct a game-specific URL for players to share or join, if the joining device does not support the default URL.
+@property (nonatomic, readonly, strong, nullable) NSURL *fallbackURL;
+
+/// Whether the activity can be joined by others via a party code.
+/// - SeeAlso: ``-[GKGameActivityListener player:wantsToPlayGameActivity:completionHandler:]`` where you can receive and handle game activities that players want to play in a party with friends.
+@property (nonatomic, readonly, assign) BOOL supportsPartyCode;
+
+/// The maximum number of participants that can join the activity. Returns nil when no maximum is set (unlimited players) or when player range is undefined. When not nil, the value is always greater than or equal to `minPlayers`.
+@property (nonatomic, readonly, strong, nullable) NSNumber *maxPlayers NS_REFINED_FOR_SWIFT;
+
+/// The minimum number of participants that can join the activity.
+@property (nonatomic, readonly, strong, nullable) NSNumber *minPlayers NS_REFINED_FOR_SWIFT;
+
+/// True if the activity supports an unlimited number of players. False if maxPlayers is set to a defined limit or if no player range is provided.
+@property (nonatomic, readonly, assign) BOOL supportsUnlimitedPlayers;
+
+/// The play style of the game activity.
+@property (nonatomic, readonly, assign) GKGameActivityPlayStyle playStyle;
+
+/// The release state of the game activity definition in App Store Connect.
+@property (nonatomic, readonly) GKReleaseState releaseState;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/// Loads all associated achievements that have defined deep links to this game activity definition.
+- (void)loadAchievementDescriptionsWithCompletionHandler:(void(^)(NSArray<GKAchievementDescription *> * _Nullable achievementDescriptions,
+                                                                  NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:achievementDescriptions());
+
+/// Loads all associated leaderboards that have defined deep links to this game activity definition.
+- (void)loadLeaderboardsWithCompletionHandler:(void(^)(NSArray<GKLeaderboard *> * _Nullable leaderboards,
+                                                       NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:leaderboards());
+
+#if TARGET_OS_IPHONE
+/// Asynchronously load the image. Error will be nil on success.
+- (void)loadImageWithCompletionHandler:(void(^)(UIImage * _Nullable_result image, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:image());
+#else
+/// Asynchronously load the image. Error will be nil on success.
+- (void)loadImageWithCompletionHandler:(void(^)(NSImage * _Nullable_result image, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:image());
+#endif
+
+@end
+
+API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_SENDABLE @interface GKGameActivityDefinition (State)
+
+/// Loads all the game activity definitions for the current game.
++ (void)loadGameActivityDefinitionsWithCompletionHandler:(void(^)(NSArray<GKGameActivityDefinition *> * _Nullable activityDefinitions,
+                                                                  NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:all());
+
+/// Loads game activity definitions with the supplied App Store Connect identifiers.
++ (void)loadGameActivityDefinitionsWithIDs:(NSArray<NSString *> * _Nullable)activityDefinitionIDs
+                         completionHandler:(void(^)(NSArray<GKGameActivityDefinition *> * _Nullable activityDefinitions,
+                                                    NSError * _Nullable error))completionHandler NS_SWIFT_NAME(loadGameActivityDefinitions(IDs:completionHandler:));
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#endif // #if !TARGET_OS_WATCH
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityListener.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityListener.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityListener.h	1969-12-31 19:00:00
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityListener.h	2025-05-31 23:26:11
@@ -0,0 +1,28 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_WATCH
+
+#import <Foundation/Foundation.h>
+
+@class GKGameActivity, GKPlayer;
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos)
+@protocol GKGameActivityListener
+
+@optional
+
+/**
+ Called when a player intends to play for a specific game activity.
+ A completion handler block is provided to indicate whether the activity was successfully handled.
+ */
+- (void)player:(GKPlayer *)player wantsToPlayGameActivity:(GKGameActivity *)activity completionHandler:(void (^)(BOOL handled))completionHandler;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // #if !TARGET_OS_WATCH
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityPlayStyle.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityPlayStyle.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityPlayStyle.h	1969-12-31 19:00:00
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityPlayStyle.h	2025-05-31 23:26:11
@@ -0,0 +1,17 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_WATCH
+
+#import <Foundation/Foundation.h>
+#import <TargetConditionals.h>
+
+/// Play Style of the game activity. It can be either Asynchronous or Synchronous.
+typedef NS_ENUM(NSInteger, GKGameActivityPlayStyle) {
+    GKGameActivityPlayStyleUnspecified = 0,
+    GKGameActivityPlayStyleSynchronous = 1,
+    GKGameActivityPlayStyleAsynchronous = 2
+} API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos);
+
+#endif // #if !TARGET_OS_WATCH
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityState.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityState.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityState.h	1969-12-31 19:00:00
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameActivityState.h	2025-05-31 23:26:11
@@ -0,0 +1,21 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_WATCH
+
+#import <Foundation/Foundation.h>
+#import <TargetConditionals.h>
+
+typedef NS_ENUM(NSUInteger, GKGameActivityState) {
+    /// The game activity is initialized but has not started.
+    GKGameActivityStateInitialized = 0,
+    /// The game activity is active.
+    GKGameActivityStateActive = 1,
+    /// The game activity is paused.
+    GKGameActivityStatePaused = 2,
+    /// The game activity has ended. This is a terminal state.
+    GKGameActivityStateEnded = 4
+} NS_SWIFT_NAME(GKGameActivity.State) API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos);
+
+#endif // #if !TARGET_OS_WATCH
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h	2025-04-19 05:59:19
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h	2025-05-31 01:10:47
@@ -7,14 +7,14 @@
 
 API_UNAVAILABLE_BEGIN(watchos)
 
-API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0))
+API_DEPRECATED_WITH_REPLACEMENT("Replaced by ``GKAccessPoint``", ios(6.0,26.0), macos(10.8,26.0), tvos(9.0,26.0), visionos(1.0,26.0))
 @protocol GKGameCenterControllerDelegate;
 
 typedef NS_ENUM(NSInteger, GKGameCenterViewControllerState) {
     GKGameCenterViewControllerStateDefault = -1,
     GKGameCenterViewControllerStateLeaderboards,
     GKGameCenterViewControllerStateAchievements,
-    GKGameCenterViewControllerStateChallenges,
+    GKGameCenterViewControllerStateChallenges               API_DEPRECATED_WITH_REPLACEMENT("Replaced by developer defined challenges, see ``GKChallengeDefinition``", ios(6.0,26.0), macos(10.8,26.0), tvos(9.0,26.0), visionos(1.0,26.0)),
     GKGameCenterViewControllerStateLocalPlayerProfile       API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0)),
     GKGameCenterViewControllerStateDashboard                API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0)),
     GKGameCenterViewControllerStateLocalPlayerFriendsList   API_AVAILABLE(ios(15.0), macos(12.0), tvos(15.0), visionos(1.0))
@@ -29,17 +29,19 @@
 #endif
 
 NS_ASSUME_NONNULL_BEGIN
-/// View controller that provides the standard user interface for leaderboards, achievements, and challenges. Present modally from the top view controller.
 #if TARGET_OS_WATCH
-API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0))
+/// View controller that provides the standard user interface for leaderboards, achievements, and challenges. Present modally from the top view controller.
+API_DEPRECATED_WITH_REPLACEMENT("Replaced by ``GKAccessPoint``", ios(6.0,26.0), macos(10.9,26.0), tvos(9.0,26.0), visionos(1.0,26.0))
 @interface GKGameCenterViewController
 @end
 #elif TARGET_OS_IPHONE
-API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0))
+/// View controller that provides the standard user interface for leaderboards, achievements, and challenges. Present modally from the top view controller.
+API_DEPRECATED_WITH_REPLACEMENT("Replaced by ``GKAccessPoint``", ios(6.0,26.0), macos(10.9,26.0), tvos(9.0,26.0), visionos(1.0,26.0))
 @interface GKGameCenterViewController : UINavigationController
 @end
 #else
-API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0))
+/// View controller that provides the standard user interface for leaderboards, achievements, and challenges. Present modally from the top view controller.
+API_DEPRECATED_WITH_REPLACEMENT("Replaced by ``GKAccessPoint``", ios(6.0,26.0), macos(10.9,26.0), tvos(9.0,26.0), visionos(1.0,26.0))
 @interface GKGameCenterViewController : NSViewController  <GKViewController>
 @end
 #endif
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h	2025-04-19 05:18:40
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h	2025-05-31 23:21:31
@@ -60,7 +60,23 @@
 /// Duration from startDate during which this leaderboard instance accepts score submissions (only applicable to recurring leaderboards)
 @property (readonly, nonatomic) NSTimeInterval duration API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), watchos(7.0));
 
+/// The description of this Leaderboard as configured by the developer in App Store Connect.
+@property (readonly, nonatomic, copy) NSString *leaderboardDescription API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0), watchos(26.0));
 
+/// The release state of the leaderboard in App Store Connect.
+@property(nonatomic, assign, readonly) GKReleaseState releaseState API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0), watchos(26.0));
+
+/// The identifier of the game activity associated with this leaderboard, as configured by the developer in App Store Connect.
+@property (readonly, nonatomic, copy) NSString *activityIdentifier API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0), watchos(26.0));
+
+/// The properties when associating this leaderboard with a game activity, as configured by the developer in App Store Connect.
+@property (readonly, nonatomic, strong) NSDictionary<NSString *, NSString *> *activityProperties API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0), watchos(26.0));
+
+/// A Boolean value that indicates whether the current leaderboard isn't visible in Game Center views.
+///
+/// You can still submit scores to a hidden leaderboard.
+@property (readonly, nonatomic) BOOL isHidden API_AVAILABLE(ios(26.0), macos(26.0), tvos(26.0), visionos(26.0), watchos(26.0));
+
 /// Loads classic and recurring leaderboards associated with the supplied App Store Connect leaderboard IDs.
 /// If leaderboardIDs is nil, this loads all classic and recurring leaderboards for this game.
 + (void)loadLeaderboardsWithIDs:(NSArray<NSString *> * _Nullable)leaderboardIDs
@@ -176,10 +192,11 @@
 
 @interface GKLeaderboard (UI)
  
- // Asynchronously load the image. Error will be nil on success.
 #if TARGET_OS_IPHONE
+/// Asynchronously load the image. Error will be nil on success.
 - (void)loadImageWithCompletionHandler:(void(^__nullable)(UIImage * __nullable image, NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.8), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
 #else
+/// Asynchronously load the image. Error will be nil on success.
 - (void)loadImageWithCompletionHandler:(void(^__nullable)(NSImage * __nullable image, NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.8), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
 #endif
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardScore.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardScore.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardScore.h	2025-04-19 14:34:55
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardScore.h	2025-05-31 23:26:11
@@ -4,12 +4,20 @@
 
 @class GKPlayer;
 
+/// A `GKLeaderboardScore` object represents a score on a leaderboard for scores you report for challenges or turn-based games.
 API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), watchos(7.0))
 @interface GKLeaderboardScore : NSObject
 
+/// The player who earns the score.
 @property (strong, nonatomic) GKPlayer *player;
+
+/// The score that the player earns.
 @property (assign, nonatomic) NSInteger value;
+
+/// An integer value that your game uses.
 @property (assign, nonatomic) NSUInteger context;
+
+/// The ID that Game Center uses for the leaderboard.
 @property (strong, nonatomic) NSString *leaderboardID;
 
 @end
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h	2025-04-19 14:34:56
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h	2025-05-31 23:26:12
@@ -51,10 +51,11 @@
 
 @interface GKLeaderboardSet (UI)
 
-// Asynchronously load the image. Error will be nil on success.
 #if TARGET_OS_IPHONE
+/// Asynchronously load the image. Error will be nil on success.
 - (void)loadImageWithCompletionHandler:(void(^__nullable)(UIImage * __nullable image, NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
 #else
+/// Asynchronously load the image. Error will be nil on success.
 - (void)loadImageWithCompletionHandler:(void(^__nullable)(NSImage * __nullable image, NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
 #endif
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h	2025-04-25 21:27:34
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h	2025-05-31 01:04:03
@@ -5,6 +5,7 @@
 #import <GameKit/GKPlayer.h>
 #import <GameKit/GKDefines.h>
 #import <GameKit/GKEventListener.h>
+#import <GameKit/GKGameActivityListener.h>
 #import <GameKit/GKTurnBasedMatch.h>
 #import <GameKit/GKMatchmaker.h>
 #import <GameKit/GKSavedGameListener.h>
@@ -17,8 +18,6 @@
 @class NSWindow;
 #endif
 
-@protocol GKGameActivityListener;
-
 NS_ASSUME_NONNULL_BEGIN
 
 API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0))
@@ -91,18 +90,19 @@
 
 @end
 
-
 #if TARGET_OS_TV || TARGET_OS_WATCH
 API_AVAILABLE(tvos(9.0), watchos(3.0))
 @protocol GKLocalPlayerListener <GKChallengeListener, GKInviteEventListener, GKTurnBasedEventListener>
 @end
+
 #else
+
 API_AVAILABLE(ios(7.0), macos(10.10), visionos(1.0))
-@protocol GKLocalPlayerListener <GKChallengeListener, GKInviteEventListener, GKTurnBasedEventListener, GKSavedGameListener>
+@protocol GKLocalPlayerListener <GKChallengeListener, GKGameActivityListener, GKInviteEventListener, GKTurnBasedEventListener, GKSavedGameListener>
 @end
+
 #endif
 
-
 @interface GKLocalPlayer (GKLocalPlayerEvents)
 
 /// A single listener may be registered once. Registering multiple times results in undefined behavior. The registered listener will receive callbacks for any selector it responds to.
@@ -262,6 +262,7 @@
 /// observable property that becomes true when the friend request view controller is displayed.  It becomes false when it is dismissed
 @property (nonatomic, readonly) BOOL isPresentingFriendRequestViewController API_AVAILABLE(ios(15.0), macos(12.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
 
+#if TARGET_OS_IPHONE
 /**
  *  presentFriendRequestCreatorFromViewController:
  *
@@ -273,12 +274,23 @@
  *          - The local player user account is not allowed to add friends
  *            - The device is not allowing outgoing traffic at the time of the operation
 */
-#if TARGET_OS_IPHONE
 - (BOOL)presentFriendRequestCreatorFromViewController:(UIViewController *)viewController error:(NSError **)error API_AVAILABLE(ios(15.0), visionos(1.0))  API_UNAVAILABLE(macos, macCatalyst, watchos, tvos);
 #else
+/**
+ *  presentFriendRequestCreatorFromViewController:
+ *
+ *  Discussion:
+ *      iOS only. When invoked, a Messages sheet will be presented on the viewController passed in, using the existing flow of presentation on behalf of an application.
+ *      If an error is returned, control are returned directly to the application, without presentation.
+ *
+ *      Possible reasons for error:
+ *          - The local player user account is not allowed to add friends
+ *            - The device is not allowing outgoing traffic at the time of the operation
+*/
 - (BOOL)presentFriendRequestCreatorFromViewController:(NSViewController *)viewController error:(NSError **)error API_AVAILABLE(ios(15.0), visionos(1.0))  API_UNAVAILABLE(macos, macCatalyst, watchos, tvos);
 #endif
 
+#if TARGET_OS_OSX
 /**
  *  presentFriendRequestCreatorFromWindow:
  *
@@ -290,9 +302,19 @@
  *          - The local player user account is not allowed to add friends
  *            - The device is not allowing outgoing traffic at the time of the operation
 */
-#if TARGET_OS_OSX
 - (BOOL)presentFriendRequestCreatorFromWindow:(nullable NSWindow *)window error:(NSError **)error API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, visionos, watchos);
 #else
+/**
+ *  presentFriendRequestCreatorFromWindow:
+ *
+ *  Discussion:
+ *      MacOS only. When invoked, if no error is encountered, the caller application is backgrounded and the 'Messages' application is launched/foregrounded, with a formatted friend request message.
+ *      If an error occurs, controls are returned to the caller application, with an error describing the error.
+ *
+ *      Possible reasons for error:
+ *          - The local player user account is not allowed to add friends
+ *            - The device is not allowing outgoing traffic at the time of the operation
+*/
 - (BOOL)presentFriendRequestCreatorFromWindow:(nullable UIWindow *)window error:(NSError **)error API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, visionos, watchos);
 #endif
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h	2025-04-19 03:51:32
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h	2025-05-31 01:10:49
@@ -49,12 +49,15 @@
     GKPhotoSizeNormal,
 } API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0));
 
-// Asynchronously load the player's photo. Error will be nil on success.
-// Possible reasons for error:
-// 1. Communications failure
 #if TARGET_OS_IPHONE
+/// Asynchronously load the player's photo. Error will be nil on success.
+/// Possible reasons for error:
+/// 1. Communications failure
 - (void)loadPhotoForSize:(GKPhotoSize)size withCompletionHandler:(void(^__nullable)(UIImage * __nullable photo, NSError * __nullable error))completionHandler API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
 #else
+/// Asynchronously load the player's photo. Error will be nil on success.
+/// Possible reasons for error:
+/// 1. Communications failure
 - (void)loadPhotoForSize:(GKPhotoSize)size withCompletionHandler:(void(^__nullable)(NSImage * __nullable photo, NSError * __nullable error))completionHandler API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
 #endif
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h	2025-04-19 14:34:55
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h	2025-05-31 23:26:11
@@ -13,18 +13,19 @@
 
 #import <GameKit/GKMatchmakerViewController.h>
 
-/// View controller to manage turn-based matches, invite friends and perform automatching. Present modally from the top view controller.
 #if TARGET_OS_IPHONE
 
 #import <UIKit/UINavigationController.h> // UINavigationController
 
 NS_ASSUME_NONNULL_BEGIN
+/// View controller to manage turn-based matches, invite friends and perform automatching. Present modally from the top view controller.
 API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
 @interface GKTurnBasedMatchmakerViewController : UINavigationController
 @end
 #else
 #import <GameKit/GKDialogController.h>
 NS_ASSUME_NONNULL_BEGIN
+/// View controller to manage turn-based matches, invite friends and perform automatching. Present modally from the top view controller.
 API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
 @interface GKTurnBasedMatchmakerViewController : NSViewController <GKViewController>
 @end
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GameKit.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GameKit.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GameKit.h	2025-04-19 14:34:54
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GameKit.h	2025-05-31 23:26:10
@@ -39,6 +39,7 @@
 #import <GameKit/GKAchievementViewController.h>
 #import <GameKit/GKBasePlayer.h>
 #import <GameKit/GKChallenge.h>
+#import <GameKit/GKChallengeDefinition.h>
 #import <GameKit/GKChallengeEventHandler.h>
 #import <GameKit/GKChallengesViewController.h>
 #import <GameKit/GKCloudPlayer.h>
@@ -47,6 +48,11 @@
 #import <GameKit/GKError.h>
 #import <GameKit/GKEventListener.h>
 #import <GameKit/GKFriendRequestComposeViewController.h>
+#import <GameKit/GKGameActivity.h>
+#import <GameKit/GKGameActivityDefinition.h>
+#import <GameKit/GKGameActivityListener.h>
+#import <GameKit/GKGameActivityPlayStyle.h>
+#import <GameKit/GKGameActivityState.h>
 #import <GameKit/GKGameCenterViewController.h>
 #import <GameKit/GKGameSession.h>
 #import <GameKit/GKGameSessionError.h>
Clone this wiki locally