Skip to content

GameKit watchOS xcode15.0 b1

Haritha Mohan edited this page Oct 20, 2023 · 5 revisions

#GameKit.framework https://github.com/xamarin/xamarin-macios/pull/19285

diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h	2023-05-31 04:15:21
@@ -0,0 +1,71 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+#import <Foundation/Foundation.h>
+
+#if !TARGET_OS_WATCH
+
+#import <CoreGraphics/CoreGraphics.h>
+
+#import <GameKit/GKGameCenterViewController.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// This is a class that puts up an access point widget for GameCenterViewController that floats over the game UI.  By default it appears in the top/leading corner (upper left on LTR systems) and shows just the local player avatar in a small circular dot.  If the user taps on this it will present the game center view controller.  If the user is not signed in it will show text offering to sign into GameCenter.
+
+#if TARGET_OS_OSX && !TARGET_OS_MACCATALYST
+@class NSWindow;
+#else
+@class UIWindow;
+#endif
+
+typedef NS_ENUM(NSInteger, GKAccessPointLocation) {
+    GKAccessPointLocationTopLeading,
+    GKAccessPointLocationTopTrailing,
+    GKAccessPointLocationBottomLeading,
+    GKAccessPointLocationBottomTrailing
+} NS_SWIFT_NAME(GKAccessPoint.Location);
+
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0))
+@interface GKAccessPoint : NSObject
+
+@property (nonatomic, class, readonly) GKAccessPoint *shared;
+
+/// set this true to enable access point in your app.  Setting this will cause the access point to appear after the notification banner is presented.  If it already was presented it will appear immediately
+@property (nonatomic, assign, getter=isActive) BOOL active;
+
+/// set this on tvOS to put the accessPoint into focused mode
+@property (nonatomic, assign, getter=isFocused) BOOL focused API_AVAILABLE(tvos(14.0)) API_UNAVAILABLE(macos, ios);
+
+@property (nonatomic, readonly, getter=isVisible) BOOL visible;     /// observable property that indicates when the access point is visible.
+@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;
+
+/// 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
+@property (nonatomic, readonly) NSRect frameInScreenCoordinates;
+#else
+@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
+@property (nonatomic, weak, nullable) NSWindow *parentWindow;
+#else
+@property (nonatomic, weak, nullable) UIWindow *parentWindow;
+#endif
+
+/// this lets the developer trigger the access point as if the user had touched it.  This is useful for games that use controllers or the remote on AppleTV.  the argument lets you specify a specific state (default, profile, achievements, leaderboards) for GameCenterViewController
+- (void)triggerAccessPointWithHandler:(void (^)(void))handler NS_SWIFT_NAME(trigger(handler:));
+- (void)triggerAccessPointWithState:(GKGameCenterViewControllerState)state handler:(void (^)(void))handler NS_SWIFT_NAME(trigger(state:handler:));
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievement.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievement.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievement.h	2023-03-09 19:24:53
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievement.h	2023-05-31 04:15:21
@@ -1,9 +1,4 @@
-//
-//  GKAchievement.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/Foundation.h>
 #import <GameKit/GKDefines.h>
@@ -13,7 +8,6 @@
 NS_ASSUME_NONNULL_BEGIN
 // GKAchievement represents a game achievement that the player has started or completely achieved.
 NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_AVAILABLE(3_0)
-
 @interface GKAchievement : NSObject <NSCoding, NSSecureCoding>
 
 /// Asynchronously load all achievements for the local player
@@ -54,17 +48,20 @@
 /// The identifier of the player that earned the achievement.
 @property(readonly, strong, nullable, NS_NONATOMIC_IOSONLY) GKPlayer *player NS_AVAILABLE(10_10, 8_0);
 
+/// If present, the rarity of the achievement expressed as a percentage of players that earned it. Null if not enough data is available to compute it.
+@property(copy, readonly, nullable) NSNumber *rarityPercent API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0), tvos(17.0)) NS_REFINED_FOR_SWIFT;
+
 @end
 
 @interface GKAchievement (Deprecated)
-- (void)reportAchievementWithCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_10, 4_1, 7_0, "Use +reportAchievements:withCompletionHandler:") ;
-@property(assign, getter=isHidden, readonly, NS_NONATOMIC_IOSONLY) BOOL hidden NS_DEPRECATED(10_8, 10_10, 4_1, 6_0, "Use isHidden on the GKAchievementDescription class instead") ;
+- (void)reportAchievementWithCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("+reportAchievements:withCompletionHandler:", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+@property(assign, getter=isHidden, readonly, NS_NONATOMIC_IOSONLY) BOOL hidden API_DEPRECATED_WITH_REPLACEMENT("-[GKAchievementDescription isHidden:]", ios(4.1,6.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 @end
 
 @interface GKAchievement (Obsoleted)
 /*** This method is obsolete. Calling this initialiser does nothing and will return nil ***/
-- (nullable instancetype)initWithIdentifier:(nullable NSString *)identifier forPlayer:(NSString *)playerID NS_DEPRECATED_IOS(7_0, 8_0, "This is never invoked and its implementation does nothing, use initWithIdentifier:player:") ;
+- (nullable instancetype)initWithIdentifier:(nullable NSString *)identifier forPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("-initWithIdentifier:player:", ios(7.0,8.0)) API_UNAVAILABLE(tvos);
 /*** This property is obsolete. ***/
-@property(readonly, copy, nullable, NS_NONATOMIC_IOSONLY)  NSString * playerID NS_DEPRECATED_IOS(7_0, 8_0, "This will return a null string, use player instead") ;
+@property(readonly, copy, nullable, NS_NONATOMIC_IOSONLY)  NSString * playerID API_DEPRECATED_WITH_REPLACEMENT("-player:", ios(7.0,8.0)) API_UNAVAILABLE(tvos);
 @end
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h	2023-03-09 19:24:54
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h	2023-05-31 04:15:22
@@ -1,14 +1,9 @@
-//
-//  GKAchievementDescription.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
+#import <TargetConditionals.h>
 #import <Foundation/Foundation.h>
 #import <GameKit/GKDefines.h>
 
-
 NS_ASSUME_NONNULL_BEGIN
 /// GKAchievementDescription is a full description of the achievement as defined before app submission in App Store Connect.
 NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_AVAILABLE(3_0)
@@ -36,3 +31,50 @@
 NS_ASSUME_NONNULL_END
 
 
+#if !TARGET_OS_WATCH
+
+#if TARGET_OS_IPHONE
+@class UIImage;
+#else
+@class NSImage;
+#endif
+
+@interface GKAchievementDescription (UI)
+
+#if TARGET_OS_IPHONE
+
+// Image for completed achievement. Not valid until loadImage: has completed. Deprecated -- use loadImageWithCompletionHandler: instead.
+@property(nonatomic, retain, readonly, nullable) UIImage *image API_DEPRECATED_WITH_REPLACEMENT("-loadImageWithCompletionHandler:", ios(4.1,7.0), macos(10.8,10.10));
+
+// Asynchronously load the image. Error will be nil on success.
+- (void)loadImageWithCompletionHandler:(void(^ __nullable)(UIImage * __nullable image, NSError * __nullable error))completionHandler;
+#else
+
+// Image for completed achievement. Not valid until loadImage: has completed. Deprecated -- use loadImageWithCompletionHandler: instead.
+@property(atomic, retain, readonly, nullable) NSImage *image __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_NA, __IPHONE_4_1, __IPHONE_7_0);
+
+// Asynchronously load the image. Error will be nil on success.
+- (void)loadImageWithCompletionHandler:(void(^ __nullable)(NSImage * __nullable image, NSError * __nullable error))completionHandler;
+#endif
+
+#if TARGET_OS_IPHONE
+
+// The default image for any incomplete achievement
++ (nonnull UIImage *)incompleteAchievementImage;
+
+// A placeholder image to be used for any completed achievement until the description image has loaded.
++ (nonnull UIImage *)placeholderCompletedAchievementImage;
+
+#else
+
+// The default image for any incomplete achievement
++ (nonnull NSImage *)incompleteAchievementImage;
+
+// A placeholder image to be used for any completed achievement until the description image has loaded.
++ (nonnull NSImage *)placeholderCompletedAchievementImage;
+
+#endif
+
+@end
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementViewController.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementViewController.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementViewController.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementViewController.h	2023-05-31 04:15:22
@@ -0,0 +1,30 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_TV && !TARGET_OS_WATCH
+
+#if TARGET_OS_IPHONE
+#import <UIKit/UIKit.h>
+#else
+#import <AppKit/AppKit.h>
+#endif
+#import <GameKit/GKGameCenterViewController.h>
+
+@protocol GKAchievementViewControllerDelegate;
+
+/// View controller that provides the standard user interface for achievements. Present modally from the top view controller.
+API_DEPRECATED_WITH_REPLACEMENT("GKGameCenterViewController", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE
+@interface GKAchievementViewController : GKGameCenterViewController
+@property (weak, NS_NONATOMIC_IOSONLY) id<GKAchievementViewControllerDelegate> achievementDelegate;
+@end
+
+/// Optional delegate
+API_DEPRECATED_WITH_REPLACEMENT("GKGameCenterViewController", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE
+@protocol GKAchievementViewControllerDelegate <NSObject>
+@required
+/// The achievement view has finished
+- (void)achievementViewControllerDidFinish:(GKAchievementViewController *)viewController;
+@end
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKBasePlayer.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKBasePlayer.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKBasePlayer.h	2023-03-09 19:24:53
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKBasePlayer.h	2023-05-31 04:15:21
@@ -1,17 +1,13 @@
-//
-//  GKBasePlayer.h
-//  Game Center
-//
-//  Copyright 2016-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
+#import <TargetConditionals.h>
 #import <Foundation/Foundation.h>
 #import <GameKit/GKDefines.h>
 
 NS_CLASS_AVAILABLE(10_12, 10_0) __WATCHOS_AVAILABLE(3_0)
 @interface GKBasePlayer : NSObject
 
-@property(readonly, nullable, retain, NS_NONATOMIC_IOSONLY) NSString *playerID API_DEPRECATED( "use the teamPlayerID property to identify a player",ios(4.1,13.0),tvos(9.0,13.0),macosx(10.8,10.15));
+@property(readonly, nullable, retain, NS_NONATOMIC_IOSONLY) NSString *playerID API_DEPRECATED("Use either the gamePlayerID or teamPlayerID property to identify a player.",ios(4.1,13.0),tvos(9.0,13.0),macosx(10.8,10.15));
 
 /// This player's name representation as displayed in the Game Center in-game UI. Use this when you need to display the player's name. The display name may be very long, so be sure to use appropriate string truncation API when drawing.
 @property(readonly, nullable, NS_NONATOMIC_IOSONLY) NSString *displayName;
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h	2023-03-09 19:22:41
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h	2023-05-31 04:15:21
@@ -1,10 +1,6 @@
-//
-//  GKChallenge.h
-//  Game Center
-//
-//  Copyright 2012-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
+#import <TargetConditionals.h>
 #import <Foundation/Foundation.h>
 #import <GameKit/GKScore.h>
 #import <GameKit/GKLeaderboardEntry.h>
@@ -22,7 +18,6 @@
     GKChallengeStateDeclined = 3, // The challenge has been declined by the receiving player
 };
 
-
 NS_CLASS_AVAILABLE(10_8, 6_0) __WATCHOS_PROHIBITED
 @interface GKChallenge : NSObject <NSCoding, NSSecureCoding>
 
@@ -51,16 +46,19 @@
 __WATCHOS_PROHIBITED
 @interface GKChallenge (Obsoleted)
 /*** This property is obsolete. ***/
-@property (nonatomic, readonly, nullable, copy) NSString *issuingPlayerID NS_DEPRECATED(10_8, 10_10, 6_0, 8_0, " This property is obsolete, Use issuingPlayer instead") ;
+@property (nonatomic, readonly, nullable, copy) NSString *issuingPlayerID API_DEPRECATED_WITH_REPLACEMENT("-issuingPlayer:", ios(6.0,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 /*** This property is obsolete. ***/
-@property (nonatomic, readonly, nullable, copy) NSString *receivingPlayerID NS_DEPRECATED(10_8, 10_10, 6_0, 8_0, " This property is obsolete, Use receivingPlayer instead") ;
+@property (nonatomic, readonly, nullable, copy) NSString *receivingPlayerID API_DEPRECATED_WITH_REPLACEMENT("-receivingPlayer:", ios(6.0,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 @end
 
 NS_CLASS_AVAILABLE(10_8, 6_0) __WATCHOS_PROHIBITED
 @interface GKScoreChallenge : GKChallenge
 
 /// The score to meet to satisfy this challenge
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
 @property (nonatomic, readonly, nullable, retain) GKScore *score;
+#pragma clang diagnostic pop
 @end
 
 NS_CLASS_AVAILABLE(10_8, 6_0) __WATCHOS_PROHIBITED
@@ -71,13 +69,13 @@
 @end
 
 
+#if !TARGET_OS_WATCH
 
 /// 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.
-#if !TARGET_OS_WATCH
 @interface GKScore (GKChallenge)
 
 /// 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 NS_DEPRECATED(10_10, 11_0, 6_0, 14_0, "pass GKLeaderboardScore to reportLeaderboardScores:withEligibleChallenges:withCompletionHandler instead");
++ (void)reportScores:(NSArray<GKScore *> *)scores withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-reportLeaderboardScores:withEligibleChallenges:withCompletionHandler", 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 NS_AVAILABLE(11_0, 14_0);
 
@@ -95,18 +93,89 @@
 
 @interface GKScore (GKChallengeObsoleted)
 /*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)issueChallengeToPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message NS_DEPRECATED(10_8, 10_10, 6_0, 7_0, "This is never invoked and its implementation does nothing, pass GKPlayers to challengeComposeControllerWithMessage:players:completionHandler: and present the view controller instead") ;
+- (void)issueChallengeToPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completionHandler:", ios(6.0,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 @end
 
 @interface GKAchievement (GKChallengeObsoleted)
 /*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)issueChallengeToPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message NS_DEPRECATED(10_8, 10_10, 6_0, 7_0, "This is never invoked and its implementation does nothing, pass GKPlayers to challengeComposeControllerWithMessage:players:completionHandler: and present the view controller instead") ;
+- (void)issueChallengeToPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completionHandler:", ios(6.0,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 
 /*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)selectChallengeablePlayerIDs:(nullable NSArray<NSString *> *)playerIDs withCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable challengeablePlayerIDs, NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_10, 6_0, 8_0, "This is never invoked and its implementation does nothing, pass GKPlayers to selectChallengeablePlayers:") ;
+- (void)selectChallengeablePlayerIDs:(nullable NSArray<NSString *> *)playerIDs withCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable challengeablePlayerIDs, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-selectChallengeablePlayers:", ios(6.0,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 @end
+
+#if TARGET_OS_IPHONE
+@class UIViewController;
+typedef void (^GKChallengeComposeCompletionBlock)(UIViewController *composeController, BOOL didIssueChallenge, NSArray<NSString *> * __nullable sentPlayerIDs) API_DEPRECATED_WITH_REPLACEMENT("GKChallengeComposeHandler", 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));
+#else
+@class NSViewController;
+typedef void (^GKChallengeComposeCompletionBlock)(NSViewController *composeController, BOOL didIssueChallenge, NSArray<NSString *> * __nullable sentPlayerIDs) API_DEPRECATED_WITH_REPLACEMENT("GKChallengeComposeHandler", macos(10.10, 14.0));
+typedef void (^GKChallengeComposeHandler)(NSViewController *composeController, BOOL didIssueChallenge, NSArray<GKPlayer *> * __nullable sentPlayers) API_AVAILABLE(macos(14.0));
 #endif
 
-NS_ASSUME_NONNULL_END
 
 
+// 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
+- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completion:", 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));
+#else
+- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completion:", macos(10.10, 14.0));
+- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(macos(14.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
+- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completion:", 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));
+#else
+- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completion:", macos(11.0, 14.0));
+- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(macos(14.0));
+#endif
+
+@end
+
+@interface GKAchievement (GKChallengeUI)
+
+// 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
+- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completionHandler:(__nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completion:", 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));
+#else
+- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completionHandler:(__nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completion:", macos(10.10, 14.0));
+- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completion:(__nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(macos(14.0));
+#endif
+
+@end
+
+@interface GKScore (GKChallengeObsoletedUI)
+
+#if TARGET_OS_IPHONE
+/*** This method is obsolete. Calling this method does nothing and will return nil ***/
+- (nullable UIViewController *)challengeComposeControllerWithPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message completionHandler:(__nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completion:", ios(7.0, 8.0), tvos(9.0, 17.0));
+#endif
+
+@end
+
+@interface GKAchievement (GKChallengeObsoletedUI)
+
+#if TARGET_OS_IPHONE
+/*** This method is obsolete. Calling this method does nothing and will return nil ***/
+- (nullable UIViewController *)challengeComposeControllerWithPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completion:", ios(7.0, 8.0), tvos(9.0, 17.0));
+#endif
+
+@end
+
+#endif // TARGET_OS_WATCH
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeEventHandler.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeEventHandler.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeEventHandler.h	2023-03-09 19:24:54
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeEventHandler.h	2023-05-31 04:15:21
@@ -1,15 +1,11 @@
-//
-//  GKChallengeEventHandler.h
-//  Game Center
-//
-//  Copyright 2012-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
+#import <TargetConditionals.h>
 #import <Foundation/Foundation.h>
 #import <GameKit/GKChallenge.h>
 
 /// GKChallengeEventHandler's delegate must implement the following protocol to be notified of challenge-related events. All of these methods are called on the main thread.
-NS_DEPRECATED(10_8, 10_10, 6_0, 7_0, "You should instead implement the GKChallengeListener protocol and register a listener with GKLocalPlayer.") __WATCHOS_PROHIBITED 
+API_DEPRECATED("You should instead implement the GKChallengeListener protocol and register a listener with GKLocalPlayer.", ios(6.0,7.0), macos(10.8,10.10)) __WATCHOS_PROHIBITED API_UNAVAILABLE(tvos)
 @protocol GKChallengeEventHandlerDelegate <NSObject>
 
 @optional
@@ -38,8 +34,7 @@
 @end
 
 #if !TARGET_OS_WATCH
-
-NS_CLASS_DEPRECATED(10_8, 10_10, 6_0, 7_0, "You should instead implement the GKChallengeListener protocol and register a listener with GKLocalPlayer.") 
+API_DEPRECATED("You should instead implement the GKChallengeListener protocol and register a listener with GKLocalPlayer.", ios(6.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
 /// A singleton object responsible for dispatching challenge-related events to its delegate
 @interface GKChallengeEventHandler : NSObject
 
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengesViewController.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengesViewController.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengesViewController.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKChallengesViewController.h	2023-05-31 04:15:21
@@ -0,0 +1,32 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_IPHONE
+
+#import <GameKit/GKGameCenterViewController.h>
+
+@protocol GKChallengesViewControllerDelegate;
+
+// View controller that provides the standard user interface for challenges. Present modally from the top view controller.
+#import <GameKit/GKDialogController.h>
+NS_DEPRECATED_MAC(10_8, 10_10)
+@interface GKChallengesViewController : NSViewController <GKViewController> {
+	id _internal1,_internal2,_internal3,_internal4;
+}
+@property (weak, NS_NONATOMIC_IOSONLY) id<GKChallengesViewControllerDelegate> challengeDelegate;
+@end
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+
+// Optional delegate
+@protocol GKChallengesViewControllerDelegate
+@required
+// The challenge view has finished
+- (void)challengesViewControllerDidFinish:(GKChallengesViewController *)viewController;
+@end
+#pragma clang diagnostic pop
+
+#endif
+
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKCloudPlayer.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKCloudPlayer.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKCloudPlayer.h	2023-03-09 19:24:54
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKCloudPlayer.h	2023-05-31 04:15:21
@@ -1,14 +1,9 @@
-//
-//  GKCloudPlayer.h
-//  Game Center
-//
-//  Copyright 2016-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <GameKit/GKBasePlayer.h>
 NS_ASSUME_NONNULL_BEGIN
 
-API_DEPRECATED("GKGameSession is deprecated. Use GKPlayer for both real-time and turn-based matchmaking APIs.", ios(10.0, 12.0), tvos(10.0, 12.0), macosx(10.12, 10.14)) API_UNAVAILABLE(watchos)
+API_DEPRECATED_WITH_REPLACEMENT("GKPlayer", ios(10.0, 12.0), tvos(10.0, 12.0), macosx(10.12, 10.14)) API_UNAVAILABLE(watchos)
 @interface GKCloudPlayer : GKBasePlayer
 #if !__OBJC2__
 {
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKDefines.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKDefines.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKDefines.h	2023-03-09 19:24:53
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKDefines.h	2023-05-31 04:15:19
@@ -1,10 +1,7 @@
-//
-//  GKDefines.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
+#import <Foundation/Foundation.h>
+
 #ifndef GK_EXTERN
 #ifdef __cplusplus
 #define GK_EXTERN   extern "C" __attribute__((visibility ("default")))
@@ -17,20 +14,3 @@
 #define GK_EXTERN_WEAK  GK_EXTERN __attribute__((weak_import))
 #endif
 
-#if !defined(__GK_HAS_COMPILER_ATTRIBUTE)
-# if defined(__has_attribute)
-#  define __GK_HAS_COMPILER_ATTRIBUTE(attribute) __has_attribute(attribute)
-# elif defined(__GNUC__) && __GNUC__ >= 4
-#  define __GK_HAS_COMPILER_ATTRIBUTE(attribute) (1)
-# else
-#  define __GK_HAS_COMPILER_ATTRIBUTE(attribute) (0)
-# endif
-#endif
-
-#if !defined(GK_API_DEPRECATED)
-# if __GK_HAS_COMPILER_ATTRIBUTE(deprecated) && !defined(GK_BUILDING_GK)
-#  define GK_API_DEPRECATED(...) API_DEPRECATED(__VA_ARGS__)
-# else
-#  define GK_API_DEPRECATED(...)
-# endif
-#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKDialogController.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKDialogController.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKDialogController.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKDialogController.h	2023-05-31 04:15:20
@@ -0,0 +1,32 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if TARGET_OS_OSX
+#ifndef GKDialogController_h
+#define GKDialogController_h
+
+#import <Cocoa/Cocoa.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol GKViewController
+@end
+
+@interface GKDialogController : NSResponder
+
+@property (weak, nullable) IBOutlet NSWindow *parentWindow;
+
+- (BOOL)presentViewController:(NSViewController<GKViewController>  *)viewController;
+- (IBAction)dismiss:(id)sender;
+
+@end
+
+@interface GKDialogController (SharedDialogController)
++ (GKDialogController *)sharedDialogController;
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKError.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKError.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKError.h	2023-03-04 19:44:32
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKError.h	2023-05-31 04:15:19
@@ -1,9 +1,4 @@
-//
-//  GKError.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/Foundation.h>
 #import <GameKit/GKDefines.h>
@@ -45,7 +40,7 @@
     GKErrorNotAuthorized                        = 32,
     GKErrorConnectionTimeout                    = 33,
     GKErrorAPIObsolete                          = 34,
-
+    
     GKErrorFriendListDescriptionMissing         = 100,
     GKErrorFriendListRestricted                 = 101,
     GKErrorFriendListDenied                     = 102,
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h	2023-03-09 19:24:54
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h	2023-05-31 04:15:22
@@ -1,9 +1,4 @@
-//
-//  GKEventListener.h
-//  Game Center
-//
-//  Copyright 2012-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/Foundation.h>
 
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h	2023-05-31 04:15:21
@@ -0,0 +1,59 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_WATCH
+
+#if TARGET_OS_IPHONE || TARGET_OS_MACCATALYST
+#import <UIKit/UIKit.h>
+#else
+#import <AppKit/AppKit.h>
+#endif
+
+@protocol GKFriendRequestComposeViewControllerDelegate;
+@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
+
+NS_CLASS_DEPRECATED(10_8, 10_12, 4_2, 10_0) API_UNAVAILABLE(tvos)
+@interface GKFriendRequestComposeViewController : UINavigationController
+@end
+#else
+#import <GameKit/GKDialogController.h>
+NS_ASSUME_NONNULL_BEGIN
+NS_CLASS_DEPRECATED(10_8, 10_12, 4_2, 10_0)
+@interface GKFriendRequestComposeViewController : NSViewController <GKViewController> 
+@end
+#endif
+
+NS_CLASS_DEPRECATED(10_8, 10_12, 4_2, 10_0) __TVOS_UNAVAILABLE
+@interface GKFriendRequestComposeViewController ()
+/// Get the maximum number of recipients permitted
++ (NSUInteger)maxNumberOfRecipients;
+
+/// Specify the message sent to the invitee. A default message will be used if you don't specify one.
+- (void)setMessage:(nullable NSString *)message;
+
+/// Add recipients to the request.
+/// If you don't specify at least one recipient before presenting the view, the recipients field will be made firstResponder, to encourage the user to add some.
+/// If you add more than maxNumberOfRecipients recipients, these methods will throw an exception.
+- (void)addRecipientPlayers:(NSArray<GKPlayer *> *)players NS_AVAILABLE(10_10, 8_0);
+- (void)addRecipientsWithPlayerIDs:(NSArray<NSString *> *)playerIDs API_DEPRECATED_WITH_REPLACEMENT("-addRecipientPlayers:", ios(4.2,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+- (void)addRecipientsWithEmailAddresses:(NSArray<NSString *> *)emailAddresses;
+
+@property (nonatomic, weak, nullable) id<GKFriendRequestComposeViewControllerDelegate> composeViewDelegate NS_DEPRECATED(10_8, 10_12, 4_2, 10_0) API_UNAVAILABLE(tvos);
+@end
+
+/// Optional delegate
+NS_DEPRECATED(10_8, 10_12, 4_2, 10_0) API_UNAVAILABLE(tvos)
+@protocol GKFriendRequestComposeViewControllerDelegate
+/// The compose view has finished
+- (void)friendRequestComposeViewControllerDidFinish:(GKFriendRequestComposeViewController *)viewController NS_DEPRECATED(10_8, 10_12, 4_2, 10_0) API_UNAVAILABLE(tvos);
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h	2023-05-31 04:15:21
@@ -0,0 +1,84 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_WATCH
+
+#import <GameKit/GKLeaderboard.h>
+#import <GameKit/GKAchievement.h>
+
+@protocol GKGameCenterControllerDelegate;
+
+typedef NS_ENUM(NSInteger, GKGameCenterViewControllerState) {
+    GKGameCenterViewControllerStateDefault = -1,
+    GKGameCenterViewControllerStateLeaderboards,
+    GKGameCenterViewControllerStateAchievements,
+    GKGameCenterViewControllerStateChallenges,
+    GKGameCenterViewControllerStateLocalPlayerProfile,
+    GKGameCenterViewControllerStateDashboard,
+    GKGameCenterViewControllerStateLocalPlayerFriendsList
+};
+
+#if TARGET_OS_IPHONE
+#import <UIKit/UIKit.h>
+#else
+#import <Cocoa/Cocoa.h>
+#import <GameKit/GKDialogController.h>
+#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_IPHONE
+NS_CLASS_AVAILABLE(10_9, 6_0)
+@interface GKGameCenterViewController : UINavigationController
+@end
+#else
+NS_CLASS_AVAILABLE(10_9, 6_0)
+@interface GKGameCenterViewController : NSViewController  <GKViewController>
+@end
+#endif
+
+@interface GKGameCenterViewController ()
+
+@property (weak, nullable, NS_NONATOMIC_IOSONLY) id<GKGameCenterControllerDelegate> gameCenterDelegate;
+
+/**
+ Use this to display content associated with the specified state. For example setting the state to GKGameCenterViewControllerStateLeaderboards will display a list of leaderboard sets or leaderboards (if no sets). Setting state to GKGameCenterViewControllerStateAchievements will display a list of achievements.
+ */
+- (instancetype)initWithState:(GKGameCenterViewControllerState)state API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+
+/**
+ Use this to display the scores for the specified leaderboardID, player scope and time scope. The time scope is only applicable to classic leaderboards. Recurring leaderboards will always be displayed initially with the results (scores) associated with the current instance of the leaderboard.
+ */
+- (instancetype)initWithLeaderboardID:(NSString *)leaderboardID playerScope:(GKLeaderboardPlayerScope)playerScope timeScope:(GKLeaderboardTimeScope)timeScope API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+
+/**
+ Use this to display the scores for the specified leaderboard and player scope. Both classic and recurring leaderboards can use this method to initialize the view with their scores.
+ */
+- (instancetype)initWithLeaderboard:(GKLeaderboard *)leaderboard playerScope:(GKLeaderboardPlayerScope)playerScope API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+
+/**
+ Use this to display the details associated with the specified achievementID
+ */
+- (instancetype)initWithAchievementID:(NSString *)achievementID API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+
+@end
+
+@interface GKGameCenterViewController (Deprecated)
+
+@property (assign, NS_NONATOMIC_IOSONLY) GKGameCenterViewControllerState viewState API_DEPRECATED_WITH_REPLACEMENT("-initWithState:", ios(6.0, 14.0), tvos(9.0, 14.0), macosx(10.9, 11.0));
+@property (nonatomic, assign) GKLeaderboardTimeScope leaderboardTimeScope API_DEPRECATED_WITH_REPLACEMENT("-initWithLeaderboard:", ios(4.1, 14.0), macosx(10.8, 11.0)) __TVOS_UNAVAILABLE;
+@property (nonatomic, nullable, strong) NSString *leaderboardIdentifier API_DEPRECATED_WITH_REPLACEMENT("-initWithLeaderboard:", ios(7.0, 14.0), tvos(9.0, 14.0), macosx(10.10, 11.0));
+@property (nonatomic, nullable, strong) NSString *leaderboardCategory API_DEPRECATED_WITH_REPLACEMENT("-initWithLeaderboard:", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+
+@end
+
+@protocol GKGameCenterControllerDelegate <NSObject>
+
+- (void)gameCenterViewControllerDidFinish:(GKGameCenterViewController *)gameCenterViewController NS_AVAILABLE(10_9, 6_0);
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSession.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSession.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSession.h	2023-03-09 19:10:08
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSession.h	2023-05-31 04:55:10
@@ -1,9 +1,4 @@
-//
-//  GKGameSession.h
-//  Game Center
-//
-//  Copyright 2016-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/Foundation.h>
 #import <GameKit/GKDefines.h>
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionError.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionError.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionError.h	2023-03-09 19:24:53
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionError.h	2023-05-31 04:15:21
@@ -1,13 +1,10 @@
-//
-//  GKGameSessionError.h
-//  Game Center
-//
-//  Copyright 2016-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/Foundation.h>
 
-extern NSString * __nonnull GKGameSessionErrorDomain API_DEPRECATED("GKGameSession is deprecated, use real-time and turn-based matchmaking APIs instead.", ios(10.0, 12.0), tvos(10.0, 12.0), macosx(10.12, 10.14)) API_UNAVAILABLE(watchos);
+#import <GameKit/GKDefines.h>
+
+GK_EXTERN NSString * __nonnull GKGameSessionErrorDomain API_DEPRECATED("GKGameSession is deprecated, use real-time and turn-based matchmaking APIs instead.", ios(10.0, 12.0), tvos(10.0, 12.0), macosx(10.12, 10.14)) API_UNAVAILABLE(watchos);
 
 typedef  NS_ENUM(NSInteger, GKGameSessionErrorCode) {
     GKGameSessionErrorUnknown = 1,
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionEventListener.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionEventListener.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionEventListener.h	2023-03-09 19:24:53
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionEventListener.h	2023-05-31 04:15:21
@@ -1,14 +1,10 @@
-//
-//  GKGameSessionEventListener.h
-//  Game Center
-//
-//  Copyright 2016-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
-#import "GKGameSession.h"
+#import <GameKit/GKGameSession.h>
+
 NS_ASSUME_NONNULL_BEGIN
 
-API_DEPRECATED("Use GKLocalPlayerListener for multiplayer event notifications.", ios(10.0, 12.0), tvos(10.0, 12.0), macosx(10.12, 10.14)) API_UNAVAILABLE(watchos)
+API_DEPRECATED_WITH_REPLACEMENT("GKLocalPlayerListener", ios(10.0, 12.0), tvos(10.0, 12.0), macosx(10.12, 10.14)) API_UNAVAILABLE(watchos)
 @protocol GKGameSessionEventListener <NSObject>
 @optional
 - (void)session:(GKGameSession *)session didAddPlayer:(GKCloudPlayer *)player;
@@ -21,8 +17,8 @@
 @end
 
 @interface GKGameSession (GKGameSessionEventListener)
-+ (void)addEventListener:(NSObject<GKGameSessionEventListener> *)listener NS_SWIFT_NAME(add(listener:)) API_DEPRECATED("Use GKLocalPlayer's registerListener: to register for GKLocalPlayerListener event notifications.", ios(10.0, 12.0), tvos(10.0, 12.0), macosx(10.12, 10.14)) API_UNAVAILABLE(watchos);
-+ (void)removeEventListener:(NSObject<GKGameSessionEventListener> *)listener NS_SWIFT_NAME(remove(listener:)) API_DEPRECATED("Use GKLocalPlayer's unregisterListener: or unregisterAllListeners to unregister from GKLocalPlayerListener event notifications.", ios(10.0, 12.0), tvos(10.0, 12.0), macosx(10.12, 10.14)) API_UNAVAILABLE(watchos);
++ (void)addEventListener:(NSObject<GKGameSessionEventListener> *)listener NS_SWIFT_NAME(add(listener:)) API_DEPRECATED_WITH_REPLACEMENT("-[GKLocalPlayer registerListener:]", ios(10.0, 12.0), tvos(10.0, 12.0), macosx(10.12, 10.14)) API_UNAVAILABLE(watchos);
++ (void)removeEventListener:(NSObject<GKGameSessionEventListener> *)listener NS_SWIFT_NAME(remove(listener:)) API_DEPRECATED("-[GKLocalPlayer unregisterListener:] or -[GKLocalPlayer unregisterAllListeners:]", ios(10.0, 12.0), tvos(10.0, 12.0), macosx(10.12, 10.14)) API_UNAVAILABLE(watchos);
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionSharingViewController.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionSharingViewController.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionSharingViewController.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionSharingViewController.h	2023-05-31 04:15:21
@@ -0,0 +1,33 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+#import <Foundation/Foundation.h>
+
+#if TARGET_OS_TV
+
+#import <UIKit/UIViewController.h> // UIViewController
+
+@class GKGameSession;
+@protocol GKGameSessionSharingViewControllerDelegate;
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_DEPRECATED("For real-time matches, use GKMatchmakerViewController. For turn-based matches, use GKTurnBasedMatchmakerViewController.", tvos(10.0, 12.0))
+@interface GKGameSessionSharingViewController : UIViewController
+@property (nonatomic, readonly, strong) GKGameSession *session;
+@property (nonatomic, weak, nullable) id<GKGameSessionSharingViewControllerDelegate> delegate;
+
+- (instancetype)initWithSession:(GKGameSession *)session;
+
+@end
+
+API_DEPRECATED("For real-time matches, use GKMatchmakerViewControllerDelegate to receive notifications from the GKMatchmakerViewController. For turn-based matches, use GKTurnBasedMatchmakerViewControllerDelegate and GKLocalPlayerListener to receive notifications from the GKTurnBasedMatchmakerViewController.", tvos(10.0, 12.0))
+@protocol GKGameSessionSharingViewControllerDelegate <NSObject>
+- (void)sharingViewController:(GKGameSessionSharingViewController *)viewController didFinishWithError:(NSError * __nullable)error;
+@end
+
+NS_ASSUME_NONNULL_END
+
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h	2023-03-09 19:22:42
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h	2023-05-31 04:15:21
@@ -1,10 +1,6 @@
-//
-//  GKLeaderboard.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
+#import <TargetConditionals.h>
 #import <os/lock.h>
 #import <GameKit/GKPlayer.h>
 
@@ -121,59 +117,72 @@
 
 @interface GKLeaderboard (Deprecated)
 
-@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *category NS_DEPRECATED(10_8, 10_10, 4_1, 7_0, "Use identifier instead") ; // Deprecated. Use identifier instead.
+@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *category API_DEPRECATED_WITH_REPLACEMENT("-identifier", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 
-- (nullable instancetype)initWithPlayerIDs:(nullable NSArray<NSString *> *)playerIDs NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "Use initWithPlayers: instead") ;
+- (nullable instancetype)initWithPlayerIDs:(nullable NSArray<NSString *> *)playerIDs API_DEPRECATED_WITH_REPLACEMENT("-initWithPlayers:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 
-+ (void)loadCategoriesWithCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable categories, NSArray<NSString *> * __nullable titles, NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_9, 4_1, 6_0, "Use loadLeaderboardsWithIDs:completionHandler: instead") ;
++ (void)loadCategoriesWithCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable categories, NSArray<NSString *> * __nullable titles, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-loadLeaderboardsWithIDs:completionHandler:", ios(4.1,6.0), macos(10.8,10.9)) __TVOS_UNAVAILABLE;
 
-+ (void)setDefaultLeaderboard:(nullable NSString *)leaderboardIdentifier withCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_10, 5_0, 7_0,"Use setDefaultLeaderboardIdentifier:completionHandler: on GKLocalPlayer instead") ;
++ (void)setDefaultLeaderboard:(nullable NSString *)leaderboardIdentifier withCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-setDefaultLeaderboardIdentifier:completionHandler:", ios(5.0,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 
-@property(assign, NS_NONATOMIC_IOSONLY) GKLeaderboardTimeScope timeScope API_DEPRECATED("Use loadEntriesForPlayerScope:timeScope:range:completionHandler: instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
+@property(assign, NS_NONATOMIC_IOSONLY) GKLeaderboardTimeScope timeScope API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
 
 /// Filter on friends. Does not apply to leaderboard initialized with players.
-@property(assign, NS_NONATOMIC_IOSONLY) GKLeaderboardPlayerScope playerScope API_DEPRECATED("Use loadEntriesForPlayerScope:timeScope:range:completionHandler: instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
+@property(assign, NS_NONATOMIC_IOSONLY) GKLeaderboardPlayerScope playerScope API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
 
 /// leaderboardID. If nil, fetch the aggregate leaderboard.
-@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *identifier API_DEPRECATED("Use loadEntriesForPlayerScope:timeScope:range:completionHandler: instead.", ios(7.0, 14.0), tvos(9.0, 14.0), macosx(10.10, 11.0), watchos(2.0, 7.0));
+@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *identifier API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(7.0, 14.0), tvos(9.0, 14.0), macosx(10.10, 11.0), watchos(2.0, 7.0));
 
 /// Leaderboards start at index 1 and the length should be less than 100. Does not apply to leaderboards initialized with players.  Exception will be thrown if developer tries to set an invalid range.
-@property(assign, NS_NONATOMIC_IOSONLY) NSRange range API_DEPRECATED("Use loadEntriesForPlayerScope:timeScope:range:completionHandler: instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
+@property(assign, NS_NONATOMIC_IOSONLY) NSRange range API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
 
 /// Scores are not valid until loadScores: has completed.
-@property(readonly, strong, nullable, NS_NONATOMIC_IOSONLY) NSArray<GKScore *> *scores API_DEPRECATED("Use loadEntriesForPlayerScope:timeScope:range:completionHandler: to obtain scores.", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
+@property(readonly, strong, nullable, NS_NONATOMIC_IOSONLY) NSArray<GKScore *> *scores API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
 
 /// The maxRange which represents the size of the leaderboard is not valid until loadScores: has completed.
-@property(readonly, assign, NS_NONATOMIC_IOSONLY) NSUInteger maxRange API_DEPRECATED("Use loadEntriesForPlayerScope:timeScope:range:completionHandler: method to obtain the size of the leaderboard.", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
+@property(readonly, assign, NS_NONATOMIC_IOSONLY) NSUInteger maxRange API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
 
 /// The local player's score
-@property(readonly, strong, nullable, NS_NONATOMIC_IOSONLY) GKScore *localPlayerScore API_DEPRECATED("Use loadEntriesForPlayerScope:timeScope:range:completionHandler: method to obtain scores.", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
+@property(readonly, strong, nullable, NS_NONATOMIC_IOSONLY) GKScore *localPlayerScore API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
 
 /// This property is true if the leaderboard is currently loading
-@property(readonly, getter=isLoading) BOOL loading API_DEPRECATED("Use loadEntriesForPlayerScope:timeScope:range:completionHandler: method to obtain scores.", ios(4.1, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
+@property(readonly, getter=isLoading) BOOL loading API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.1, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
 
 /// Default is the range 1-10 with Global/AllTime scopes.
 /// If you want to change the scopes or range, set the properites before loading the scores.
-- (instancetype)init API_DEPRECATED("Do not instantiate GKLeaderboard directly. Use class method loadLeaderboardsWithIDs:completionHandler: to get the leaderboards.", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
+- (instancetype)init API_DEPRECATED_WITH_REPLACEMENT("+loadLeaderboardsWithIDs:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0));
 
 /// Specify an array of GKPlayers. For example, the players who are in a match together
 /// Defaults to AllTime score, if you want to change the timeScope, set the property before loading the scores. Range and playerScope are not applicable. players may not be nil.
-- (instancetype)initWithPlayers:(NSArray<GKPlayer *> *)players API_DEPRECATED("Use instance method loadEntriesForPlayers:timeScope:completionHandler: instead.", ios(8.0, 14.0), tvos(9.0, 14.0), macosx(10.10, 11.0), watchos(2.0, 7.0));
+- (instancetype)initWithPlayers:(NSArray<GKPlayer *> *)players API_DEPRECATED_WITH_REPLACEMENT("+loadEntriesForPlayers:timeScope:completionHandler:", ios(8.0, 14.0), tvos(9.0, 14.0), macosx(10.10, 11.0), watchos(2.0, 7.0));
 
 /// Load the scores for this leader board asynchronously. Error will be nil on success.
 /// Possible reasons for error:
 /// 1. Communications problem
 /// 2. Unauthenticated player
-- (void)loadScoresWithCompletionHandler:(void(^__nullable)(NSArray<GKScore *> * __nullable scores, NSError * __nullable error))completionHandler API_DEPRECATED("Use loadEntriesForPlayerScope:timeScope:range:completionHandler:.", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0)) NS_SWIFT_DISABLE_ASYNC;
+- (void)loadScoresWithCompletionHandler:(void(^__nullable)(NSArray<GKScore *> * __nullable scores, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0)) NS_SWIFT_DISABLE_ASYNC;
 
 /// Loads the array of GKLeaderboard for your app
 /// Possible reasons for error:
 /// 1. Communications problem
 /// 2. Unauthenticated player
 /// 3. Leaderboard not present
-+ (void)loadLeaderboardsWithCompletionHandler:(void(^__nullable)(NSArray<GKLeaderboard *> * __nullable leaderboards, NSError * __nullable error))completionHandler  API_DEPRECATED("Use class method loadLeaderboardsWithIDs:completionHandler:", ios(6.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(2.0, 7.0));
++ (void)loadLeaderboardsWithCompletionHandler:(void(^__nullable)(NSArray<GKLeaderboard *> * __nullable leaderboards, NSError * __nullable error))completionHandler  API_DEPRECATED_WITH_REPLACEMENT("+loadLeaderboardsWithIDs:completionHandler:", ios(6.0, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(2.0, 7.0));
 
 @end
 NS_ASSUME_NONNULL_END
 
+#if !TARGET_OS_WATCH
 
+@interface GKLeaderboard (UI)
+ 
+ // Asynchronously load the image. Error will be nil on success.
+#if TARGET_OS_IPHONE
+- (void)loadImageWithCompletionHandler:(void(^__nullable)(UIImage * __nullable image, NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 7_0) __TVOS_UNAVAILABLE;
+#else
+- (void)loadImageWithCompletionHandler:(void(^__nullable)(NSImage * __nullable image, NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 7_0);
+#endif
+
+@end
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardEntry.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardEntry.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardEntry.h	2023-03-09 19:24:54
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardEntry.h	2023-05-31 04:15:21
@@ -1,9 +1,4 @@
-//
-//  GKLeaderboardEntry.h
-//  Game Center
-//
-//  Copyright 2018-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 
 NS_ASSUME_NONNULL_BEGIN
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardScore.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardScore.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardScore.h	2023-03-09 19:24:53
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardScore.h	2023-05-31 04:15:21
@@ -1,9 +1,4 @@
-//
-//  GKLeaderboardScore.h
-//  Game Center
-//
-//  Copyright 2020-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 NS_ASSUME_NONNULL_BEGIN
 
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h	2023-03-09 19:24:54
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h	2023-05-31 04:15:22
@@ -1,13 +1,8 @@
-//
-//  GKLeaderboardSet.h
-//  Game Center
-//
-//  Copyright 2012-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
+#import <TargetConditionals.h>
 #import <GameKit/GKDefines.h>
 
-
 @class GKLeaderboard;
 @class UIImage;
 
@@ -47,10 +42,22 @@
 /// Possible reasons for error:
 /// 1. Communications problem
 /// 2. Unauthenticated player
-- (void)loadLeaderboardsWithCompletionHandler:(void(^__nullable)(NSArray<GKLeaderboard *> * __nullable leaderboards, NSError * __nullable error))completionHandler API_DEPRECATED("Use loadLeaderboardsWithHandler: instead.", ios(7.0, 14.0), tvos(9.0, 14.0), macosx(10.10, 11.0), watchos(3.0, 7.0));
+- (void)loadLeaderboardsWithCompletionHandler:(void(^__nullable)(NSArray<GKLeaderboard *> * __nullable leaderboards, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-loadLeaderboardsWithHandler:.", ios(7.0, 14.0), tvos(9.0, 14.0), macosx(10.10, 11.0), watchos(3.0, 7.0));
 
 @end
 NS_ASSUME_NONNULL_END
 
+#if !TARGET_OS_WATCH
 
+@interface GKLeaderboardSet (UI)
 
+// Asynchronously load the image. Error will be nil on success.
+#if TARGET_OS_IPHONE
+- (void)loadImageWithCompletionHandler:(void(^__nullable)(UIImage * __nullable image, NSError * __nullable error))completionHandler __TVOS_UNAVAILABLE;
+#else
+- (void)loadImageWithCompletionHandler:(void(^__nullable)(NSImage * __nullable image, NSError * __nullable error))completionHandler;
+#endif
+
+@end
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardViewController.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardViewController.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardViewController.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardViewController.h	2023-05-31 04:15:21
@@ -0,0 +1,37 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_TV && !TARGET_OS_WATCH
+
+#import <GameKit/GKLeaderboard.h>
+#import <GameKit/GKGameCenterViewController.h>
+
+@protocol GKLeaderboardViewControllerDelegate;
+
+/// View controller that provides the standard user interface for leaderboards.  Present modally from the top view controller.
+API_DEPRECATED_WITH_REPLACEMENT("GKGameCenterViewController", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE
+@interface GKLeaderboardViewController : GKGameCenterViewController
+#if !TARGET_OS_IPHONE
+{
+    NSString *_category;
+    GKLeaderboardTimeScope _timeScope;
+}
+#endif
+@end
+
+@interface GKLeaderboardViewController ()
+@property (assign, NS_NONATOMIC_IOSONLY) GKLeaderboardTimeScope timeScope;
+@property (copy, NS_NONATOMIC_IOSONLY)   NSString *category;
+@property (weak, NS_NONATOMIC_IOSONLY) id <GKLeaderboardViewControllerDelegate> leaderboardDelegate;
+
+@end
+
+API_DEPRECATED_WITH_REPLACEMENT("GKGameCenterViewController", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE
+@protocol GKLeaderboardViewControllerDelegate <NSObject>
+@required
+/// The leaderboard view has finished
+- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController;
+@end
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h	2023-03-09 19:24:53
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h	2023-05-31 23:58:35
@@ -1,10 +1,6 @@
-//
-//  GKLocalPlayer.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
+#import <TargetConditionals.h>
 #import <Foundation/Foundation.h>
 #import <GameKit/GKPlayer.h>
 #import <GameKit/GKDefines.h>
@@ -118,9 +114,9 @@
 
 @interface GKLocalPlayer (Deprecated)
 
-- (void)setDefaultLeaderboardCategoryID:(nullable NSString *)categoryID completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_10, 6_0, 7_0,"Use setDefaultLeaderboardIdentifier:completionHandler: instead") ;
-- (void)loadDefaultLeaderboardCategoryIDWithCompletionHandler:(void(^__nullable)(NSString * __nullable categoryID, NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_10, 6_0, 7_0,"Use loadDefaultLeaderboardIdentifierWithCompletionHandler: instead") ;
-- (void)authenticateWithCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_8, 4_1, 6_0, "Set the authenticateHandler instead") ;
+- (void)setDefaultLeaderboardCategoryID:(nullable NSString *)categoryID completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-setDefaultLeaderboardIdentifier:completionHandler:", ios(6.0,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+- (void)loadDefaultLeaderboardCategoryIDWithCompletionHandler:(void(^__nullable)(NSString * __nullable categoryID, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-loadDefaultLeaderboardIdentifierWithCompletionHandler:", ios(6.0,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+- (void)authenticateWithCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-authenticateHandler", ios(4.1,6.0), macos(10.8,10.8)) __TVOS_UNAVAILABLE;
 
 - (void)loadFriendPlayersWithCompletionHandler:(void(^__nullable)(NSArray<GKPlayer *> * __nullable friendPlayers, NSError * __nullable error))completionHandler NS_DEPRECATED(10_10, 10_11, 8_0, 10_0);
 
@@ -130,16 +126,16 @@
     1. Communications problem
     2. Unauthenticated player
  */
-- (void)generateIdentityVerificationSignatureWithCompletionHandler:(void (^__nullable)(NSURL * __nullable publicKeyUrl, NSData * __nullable signature, NSData * __nullable salt, uint64_t timestamp, NSError * __nullable error))completionHandler  API_DEPRECATED("API deprecated. Use fetchItemsForIdentityVerificationSignature: and the teamPlayerID value to verify a user identity.", ios(7.0, 13.5), tvos(9.0, 13.4.8), macosx(10.10, 10.15.5), watchos(3.0,6.5));
+- (void)generateIdentityVerificationSignatureWithCompletionHandler:(void (^__nullable)(NSURL * __nullable publicKeyUrl, NSData * __nullable signature, NSData * __nullable salt, uint64_t timestamp, NSError * __nullable error))completionHandler  API_DEPRECATED_WITH_REPLACEMENT("-fetchItemsForIdentityVerificationSignature:completionHandler:", ios(7.0, 13.5), tvos(9.0, 13.4.8), macosx(10.10, 10.15.5), watchos(3.0,6.5));
 @end
 NS_ASSUME_NONNULL_END
 
 @interface GKLocalPlayer (Obsoleted)
 /** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)loadFriendsWithCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable friendIDs, NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "This is never invoked and its implementation does nothing, use loadRecentPlayersWithCompletionHandler: instead")  NS_SWIFT_NAME(loadFriendsObsoleted(completionHandler:));;
+- (void)loadFriendsWithCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable friendIDs, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-loadRecentPlayersWithCompletionHandler:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE NS_SWIFT_NAME(loadFriendsObsoleted(completionHandler:));;
 
 /** This property is obsolete. ***/
-@property(nonatomic, readonly, nullable, retain) NSArray<NSString *> *friends NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, " This property is obsolete, Use loadFriendPlayersWithCompletionHandler: instead") ; // Array of player identifiers of friends for the local player. Not valid until loadFriendsWithCompletionHandler: has completed.
+@property(nonatomic, readonly, nullable, retain) NSArray<NSString *> *friends API_DEPRECATED_WITH_REPLACEMENT("-loadFriendPlayersWithCompletionHandler:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE; // Array of player identifiers of friends for the local player. Not valid until loadFriendsWithCompletionHandler: has completed.
 @end
 
 NS_ASSUME_NONNULL_BEGIN
@@ -247,6 +243,50 @@
  */
 - (void)loadFriendsWithIdentifiers:(NSArray<NSString *> *)identifiers completionHandler:(void(^)(NSArray<GKPlayer *> * __nullable friends, NSError * __nullable error))completionHandler API_AVAILABLE(ios(14.5), macos(11.3), tvos(14.5), watchos(7.3)) NS_SWIFT_NAME(loadFriends(identifiedBy:completionHandler:));
 @end
-NS_ASSUME_NONNULL_END
 
+@interface GKLocalPlayer (UI)
 
+#if TARGET_OS_WATCH
+#elif TARGET_OS_IPHONE
+@property(nonatomic, nullable, copy) void(^authenticateHandler)(UIViewController * __nullable viewController, NSError * __nullable error) NS_AVAILABLE_IOS(6_0);
+#else
+@property(atomic, nullable, copy) void(^authenticateHandler)(NSViewController * __nullable viewController, NSError * __nullable error) NS_AVAILABLE_MAC(10_9);
+#endif
+
+#if !TARGET_OS_WATCH && !TARGET_OS_TV
+/// 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)) API_UNAVAILABLE(watchos, tvos);
+
+#if TARGET_OS_IOS && !TARGET_OS_MACCATALYST
+/**
+ *  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:(UIViewController *)viewController error:(NSError **)error API_AVAILABLE(ios(15.0))  API_UNAVAILABLE(macos, watchos, tvos);
+
+#elif TARGET_OS_OSX
+/**
+ *  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 NSWindow *)window error:(NSError **)error API_AVAILABLE(macos(12.0))  API_UNAVAILABLE(ios, watchos, tvos);
+#endif
+
+#endif
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatch.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatch.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatch.h	2023-03-09 23:54:34
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatch.h	2023-05-31 04:15:22
@@ -1,12 +1,9 @@
-//
-//  GKMatch.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/Foundation.h>
 
+#import <GameKit/GKDefines.h>
+
 @class GKVoiceChat;
 @class GKPlayer;
 @class GKLocalPlayer;
@@ -76,21 +73,21 @@
 - (BOOL)match:(GKMatch *)match shouldReinviteDisconnectedPlayer:(GKPlayer *)player NS_AVAILABLE(10_10, 8_0);
 
 /*** These protocol methods are obsoleted. They will never be invoked and their implementation does nothing***/
-- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "This is never invoked and its implementation does nothing, use match:didReceiveData:fromRemotePlayer:") ;
-- (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state NS_DEPRECATED(10_8, 10_8, 4_1, 8_0, "This is never invoked and its implementation does nothing, use match:player:didChangeConnectionState:") ;
-- (BOOL)match:(GKMatch *)match shouldReinvitePlayer:(NSString *)playerID NS_DEPRECATED(10_8, 10_10, 5_0, 8_0, "This is never invoked and its implementation does nothing, use shouldReinviteDisconnectedPlayer:") ;
+- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("-match:didReceiveData:fromRemotePlayer:", ios(4.1,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
+- (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state API_DEPRECATED_WITH_REPLACEMENT("-match:player:didChangeConnectionState:", ios(4.1,8.0), macos(10.8,10.8)) API_UNAVAILABLE(tvos);
+- (BOOL)match:(GKMatch *)match shouldReinvitePlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("-shouldReinviteDisconnectedPlayer:", ios(5.0,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
 @end
 
 __WATCHOS_PROHIBITED
 @interface GKMatch (Obsoleted)
 /*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)chooseBestHostPlayerWithCompletionHandler:(void(^)(NSString * __nullable playerID))completionHandler NS_DEPRECATED(10_9, 10_10, 6_0, 8_0, "This is never invoked and its implementation does nothing, use chooseBestHostingPlayerWithCompletionHandler:") ;
+- (void)chooseBestHostPlayerWithCompletionHandler:(void(^)(NSString * __nullable playerID))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-chooseBestHostingPlayerWithCompletionHandler:", ios(6.0,8.0), macos(10.9,10.10)) __TVOS_UNAVAILABLE;
 
 /*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (BOOL)sendData:(NSData *)data toPlayers:(NSArray<NSString *> *)playerIDs withDataMode:(GKMatchSendDataMode)mode error:(NSError **)error NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "This is never invoked and its implementation does nothing, use sendData:toPlayers:dataMode:error:") ;
+- (BOOL)sendData:(NSData *)data toPlayers:(NSArray<NSString *> *)playerIDs withDataMode:(GKMatchSendDataMode)mode error:(NSError **)error API_DEPRECATED_WITH_REPLACEMENT("-sendData:toPlayers:dataMode:error:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 
 /*** This property is obsolete.  ***/
-@property(nonatomic, nullable, readonly) NSArray<NSString *> *playerIDs NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "This is never invoked and its implementation does nothing, use players instead.") ;   // NSStrings of player identifiers in the match
+@property(nonatomic, nullable, readonly) NSArray<NSString *> *playerIDs API_DEPRECATED_WITH_REPLACEMENT("-players:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;   // NSStrings of player identifiers in the match
 
 @end
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmaker.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmaker.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmaker.h	2023-03-09 19:10:09
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmaker.h	2023-06-01 00:27:08
@@ -1,16 +1,13 @@
-//
-//  GKMatchmaker.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
-#include <Foundation/Foundation.h>
+#import <TargetConditionals.h>
+#import <Foundation/Foundation.h>
 
-@class GKPlayer;
+#import <GameKit/GKDefines.h>
+
 @class GKMatch;
+@class GKPlayer;
 
-
 /// Possible invitee responses
 typedef NS_ENUM(NSInteger, GKInviteRecipientResponse) {
     GKInviteRecipientResponseAccepted           = 0,
@@ -29,7 +26,7 @@
     GKInviteeResponseNoAnswer           = GKInviteRecipientResponseNoAnswer,
 };
 
-typedef GKInviteRecipientResponse GKInviteeResponse;
+typedef GKInviteRecipientResponse GKInviteeResponse API_DEPRECATED_WITH_REPLACEMENT("GKInviteRecipientResponse", ios(6.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
 
 NS_ASSUME_NONNULL_BEGIN
 /// GKMatchRequest represents the parameters needed to create the match.
@@ -61,11 +58,11 @@
 /// Whether or not a match will be created only using automatch.  If YES, then a player will not be able to
 /// invite anyone (including contacts, friends, and nearby players) to the match, but rely on automatching to
 /// find players for the match.  Default is NO.
-@property(assign) BOOL restrictToAutomatch API_DEPRECATED("Set the matchmakingMode of GKMatchmakerViewController instead.", ios(13.0, 14.0), tvos(13.0, 14.0), macosx(10.15, 11.0));
+@property(assign) BOOL restrictToAutomatch API_DEPRECATED_WITH_REPLACEMENT("-[GKMatchmakerViewController matchmakingMode:]", ios(13.0, 14.0), tvos(13.0, 14.0), macosx(10.15, 11.0));
 
 /// An recipientResponseHandler can be set in order to receive responses from programmatically invited players.
 @property(copy, nullable) void(^recipientResponseHandler)(GKPlayer *player, GKInviteRecipientResponse response) NS_AVAILABLE(10_10, 8_0);
-@property(copy, nullable) void(^inviteeResponseHandler)(NSString *playerID, GKInviteeResponse response) NS_DEPRECATED(10_9, 10_10, 6_0, 8_0, "use recipientResponseHandler") ;
+@property(copy, nullable) void(^inviteeResponseHandler)(NSString *playerID, GKInviteeResponse response) API_DEPRECATED_WITH_REPLACEMENT("recipientResponseHandler", ios(6.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
 
 typedef NS_ENUM(NSUInteger, GKMatchType) {
     GKMatchTypePeerToPeer,
@@ -76,10 +73,9 @@
 /// To determine the maximum allowed players for each type of match supported.
 + (NSUInteger)maxPlayersAllowedForMatchOfType:(GKMatchType)matchType NS_AVAILABLE(10_9, 6_0);
 
-@property(retain, nullable) NSArray<NSString *> *playersToInvite NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "This property is obsolete, use recipients instead") ; // Array of player IDs to invite, or nil if none
+@property(retain, nullable) NSArray<NSString *> *playersToInvite API_DEPRECATED_WITH_REPLACEMENT("-recipients:", ios(4.1,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos); // Array of player IDs to invite, or nil if none
 @end
 
-
 /// GKInvite represents an accepted game invite, it is used to create a GKMatchmakerViewController
 NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_PROHIBITED
 @interface GKInvite : NSObject
@@ -92,7 +88,7 @@
 @property(readonly, NS_NONATOMIC_IOSONLY) uint32_t playerAttributes NS_AVAILABLE(10_9, 6_0);
 
 /*** This property is obsolete. ***/
-@property(readonly, retain, NS_NONATOMIC_IOSONLY) NSString *inviter NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "This property is obsolete, use sender instead") ;
+@property(readonly, retain, NS_NONATOMIC_IOSONLY) NSString *inviter API_DEPRECATED_WITH_REPLACEMENT("-sender:", ios(4.1,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
 @end
 
 /// GKInviteEventListener uses the GKLocalPlayerListener mechanism on GKLocalPlayer to listen to the two kinds of invite events that a game must respond to
@@ -107,7 +103,7 @@
 - (void)player:(GKPlayer *)player didRequestMatchWithRecipients:(NSArray<GKPlayer *> *)recipientPlayers NS_AVAILABLE(10_10, 8_0) __WATCHOS_PROHIBITED;
 
 /*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray<NSString *> *)playerIDsToInvite NS_DEPRECATED_IOS(7_0, 8_0, "This method is obsolete.  It will never be invoked its implementation does nothing, use player:didRequestMatchWithRecipients:") ;
+- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray<NSString *> *)playerIDsToInvite API_DEPRECATED_WITH_REPLACEMENT("-player:didRequestMatchWithRecipients:", ios(7.0,8.0)) API_UNAVAILABLE(tvos);
 @end
 
 
@@ -140,6 +136,7 @@
 /// 3. Timeout
 - (void)findPlayersForHostedRequest:(GKMatchRequest *)request withCompletionHandler:(void(^__nullable)(NSArray<GKPlayer *> * __nullable players, NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 8_0);
 
+
 /// Automatching or invites to add additional players to a peer-to-peer match for the specified request. Error will be nil on success:
 /// Possible reasons for error:
 /// 1. Communications failure
@@ -185,18 +182,18 @@
 __WATCHOS_PROHIBITED
 @interface GKMatchmaker (GKDeprecated)
 
-@property(nonatomic, nullable, copy) void(^inviteHandler)(GKInvite *acceptedInvite, NSArray * __nullable playerIDsToInvite) NS_DEPRECATED(10_8, 10_10, 4_1, 7_0, "Use registerListener on GKLocalPlayer to register an object that implements the GKInviteEventListenerProtocol instead") ;
+@property(nonatomic, nullable, copy) void(^inviteHandler)(GKInvite *acceptedInvite, NSArray * __nullable playerIDsToInvite) API_DEPRECATED("Use registerListener on GKLocalPlayer to register an object that implements the GKInviteEventListenerProtocol instead.", ios(4.1,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
 @end
 
 __WATCHOS_PROHIBITED
 @interface GKMatchmaker (Obsoleted)
 /*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)startBrowsingForNearbyPlayersWithReachableHandler:(void(^__nullable)(NSString *playerID, BOOL reachable))reachableHandler NS_DEPRECATED(10_9, 10_10, 6_0, 8_0, "This is never invoked and its implementation does nothing, Use startBrowsingForNearbyPlayersWithHandler: instead") ;
+- (void)startBrowsingForNearbyPlayersWithReachableHandler:(void(^__nullable)(NSString *playerID, BOOL reachable))reachableHandler API_DEPRECATED_WITH_REPLACEMENT("-startBrowsingForNearbyPlayersWithHandler:", ios(6.0,8.0), macos(10.9,10.10)) __TVOS_UNAVAILABLE;
 
 /*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)cancelInviteToPlayer:(NSString *)playerID NS_DEPRECATED(10_9, 10_10, 6_0, 8_0, "This is never invoked and its implementation does nothing, use cancelPendingInviteToPlayer:") ;
+- (void)cancelInviteToPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("-cancelPendingInviteToPlayer:", ios(6.0,8.0), macos(10.9,10.10)) __TVOS_UNAVAILABLE;
 
 /*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)findPlayersForHostedMatchRequest:(GKMatchRequest *)request withCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable playerIDs, NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "This is never invoked and its implementation does nothing, use findPlayersForHostedRequest:") ;
+- (void)findPlayersForHostedMatchRequest:(GKMatchRequest *)request withCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable playerIDs, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-findPlayersForHostedRequest:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 @end
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmakerViewController.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmakerViewController.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmakerViewController.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmakerViewController.h	2023-05-31 04:15:21
@@ -0,0 +1,96 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+#import <Foundation/Foundation.h>
+
+#if !TARGET_OS_WATCH
+
+@class GKMatchRequest, GKInvite, GKMatch, GKPlayer;
+
+@protocol GKMatchmakerViewControllerDelegate;
+
+typedef NS_ENUM(NSInteger, GKMatchmakingMode) {
+    GKMatchmakingModeDefault = 0,
+    GKMatchmakingModeNearbyOnly = 1,
+    GKMatchmakingModeAutomatchOnly = 2,
+    GKMatchmakingModeInviteOnly API_AVAILABLE(ios(15), macos(12), tvos(15)) = 3 ,
+};
+
+/// View controller to invite friends, respond to invites, and perform automatching. Present modally from the top view controller.
+#if TARGET_OS_IPHONE
+
+#import <UIKit/UINavigationController.h> // UINavigationController
+
+NS_ASSUME_NONNULL_BEGIN
+NS_CLASS_AVAILABLE(10_8, 4_1)
+@interface GKMatchmakerViewController : UINavigationController
+
+#else
+#import <GameKit/GKDialogController.h>
+NS_ASSUME_NONNULL_BEGIN
+NS_CLASS_AVAILABLE(10_8, 4_1)
+@interface GKMatchmakerViewController : NSViewController <GKViewController>
+#endif
+@property(nonatomic, nullable, weak) id<GKMatchmakerViewControllerDelegate>     matchmakerDelegate;
+@property(nonatomic, readonly, strong) GKMatchRequest                   *matchRequest;
+/// set to YES to receive hosted (eg. not peer-to-peer) match results. Will cause the controller to return an array of players instead of a match.
+@property(nonatomic, assign, getter=isHosted) BOOL                      hosted;// set to YES to receive hosted (eg. not peer-to-peer) match results. Will cause the controller to return an array of players instead of a match.
+/// this controls which mode of matchmaking to support in the UI (all, nearby only, automatch only, invite only).  Throws an exeption if you can not set to the desired mode (due to restrictions)
+@property(nonatomic, assign) GKMatchmakingMode                          matchmakingMode;
+/// A BOOL value to allow the GKMatchMakerViewController to return control to the game once the minimum number of players are connected.
+/// By default the value is NO, and the multiplayer match can only proceed after all players are connected.
+/// If the value is set to YES, then once the number of connected players is greater than or equal to minPlayers of the match request, matchmakerViewController:didFindMatch: will be called and the game can get the match instance, and update the game scene accordingly. The remaining players wil continue to connect.
+@property(nonatomic, assign) BOOL                                       canStartWithMinimumPlayers API_AVAILABLE(ios(15.0), macos(12.0), tvos(15.0));
+
+/// Initialize with a matchmaking request, allowing the user to send invites and/or start matchmaking
+- (nullable id)initWithMatchRequest:(GKMatchRequest *)request;
+
+/// Initialize with an accepted invite, allowing the user to see the status of other invited players and get notified when the game starts
+- (nullable id)initWithInvite:(GKInvite *)invite;
+
+/// Add additional players (not currently connected) to an existing peer-to-peer match.
+/// Apps should elect a single device to do this, otherwise conflicts could arise resulting in unexpected connection errors.
+- (void)addPlayersToMatch:(GKMatch *)match NS_AVAILABLE(10_8, 5_0);
+
+- (void)setHostedPlayer:(GKPlayer *)player didConnect:(BOOL)connected NS_AVAILABLE(10_10, 8_0);
+
+/// deprecated, set the message on the match request instead
+@property(nonatomic, nullable, copy) NSString *defaultInvitationMessage NS_DEPRECATED(10_8, 10_10, 5_0, 7_0) __TVOS_UNAVAILABLE; // default message to use when inviting friends. Can be edited by the user.
+@end
+
+@interface GKMatchmakerViewController (Obsoleted)
+/*** This method is obsolete. It will never be invoked and its implementation does nothing***/
+- (void)setHostedPlayer:(NSString *)playerID connected:(BOOL)connected API_DEPRECATED_WITH_REPLACEMENT("-setHostedPlayer:didConnect:", ios(5.0,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+
+#if TARGET_OS_IPHONE
+/*** This method is obsolete. It will never be invoked and its implementation does nothing***/
+- (void)setHostedPlayerReady:(NSString *)playerID NS_DEPRECATED(NA, NA, 4_1, 5_0, "This is never invoked and its implementation does nothing, use setHostedPlayer:connected: instead") __TVOS_UNAVAILABLE;
+#endif
+@end
+
+@protocol GKMatchmakerViewControllerDelegate <NSObject>
+@required
+/// The user has cancelled matchmaking
+- (void)matchmakerViewControllerWasCancelled:(GKMatchmakerViewController *)viewController NS_AVAILABLE(10_8, 4_1);
+
+/// Matchmaking has failed with an error
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFailWithError:(NSError *)error NS_AVAILABLE(10_8, 4_1);
+
+@optional
+/// A peer-to-peer match has been found, the game should start
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match NS_AVAILABLE(10_8, 4_1);
+
+/// Players have been found for a server-hosted game, the game should start
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindHostedPlayers:(NSArray<GKPlayer *> *)players NS_AVAILABLE(10_10, 8_0);
+
+/// An invited player has accepted a hosted invite.  Apps should connect through the hosting server and then update the player's connected state (using setConnected:forHostedPlayer:)
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController hostedPlayerDidAccept:(GKPlayer *)player NS_AVAILABLE(10_10, 8_0);
+
+
+/*** These protocol methods are obsoleted. They will never be invoked and their implementation does nothing***/
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindPlayers:(NSArray<NSString *> *)playerIDs API_DEPRECATED_WITH_REPLACEMENT("-matchmakerViewController:didFindHostedPlayers:", ios(4.1,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didReceiveAcceptFromHostedPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("-matchmakerViewController:hostedPlayerDidAccept:", ios(5.0,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
+@end
+NS_ASSUME_NONNULL_END
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKNotificationBanner.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKNotificationBanner.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKNotificationBanner.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKNotificationBanner.h	2023-05-31 04:15:21
@@ -0,0 +1,20 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+#import <Foundation/Foundation.h>
+
+#if !TARGET_OS_WATCH
+
+/// Asynchronously shows a notification banner like the one used for Game Center’s “Welcome Back” message.
+/// If a banner is already being displayed, additional banners will be shown in sequence. Use this to notify the user of game events, high scores, completed achievements, etc.
+
+API_DEPRECATED("Use UNNotificationRequest or provide custom UI instead. This method will become a no-op in a future version of GameKit.", ios(5.0, 17.0), tvos(9.0, 16.1), macos(10.8, 14.0))
+@interface GKNotificationBanner : NSObject
+
++ (void)showBannerWithTitle:(nullable NSString *)title message:(nullable NSString *)message completionHandler:(void(^__nullable)(void))completionHandler API_DEPRECATED("Use UNNotificationRequest or provide custom UI instead. This method will become a no-op in a future version of GameKit.", ios(5.0, 16.1), tvos(9.0, 16.1), macos(10.8, 13.0));
+
++ (void)showBannerWithTitle:(nullable NSString *)title message:(nullable NSString *)message duration:(NSTimeInterval)duration completionHandler:(void(^__nullable)(void))completionHandler API_DEPRECATED("Use UNNotificationRequest or provide custom UI instead. This method will become a no-op in a future version of GameKit.", ios(5.0, 16.1), tvos(9.0, 16.1), macos(10.8, 13.0));
+
+@end
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPeerPickerController.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPeerPickerController.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPeerPickerController.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPeerPickerController.h	2023-06-01 02:57:18
@@ -0,0 +1,93 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+
+#if !TARGET_OS_OSX && !TARGET_OS_TV && !TARGET_OS_WATCH
+
+/*
+ This API provides a system-supplied user interface for selecting and connecting to another device for a multiplayer game.  The API introduces GKPeerPickerController for this purpose, and should be used in conjunction with the GKSession API.
+ 
+ This a not a Game Center feature. To support Game Center and online play, see GKMatchMatchmakerViewController.
+ */
+
+#import <GameKit/GKSession.h>
+
+/// This a not a Game Center feature. To support Game Center and online play, see GKMatchMatchmakerViewController.
+@class GKPeerPickerController;
+
+/* Connection types
+ */
+typedef NS_ENUM(NSUInteger, GKPeerPickerConnectionType)
+{
+	GKPeerPickerConnectionTypeOnline = 1 << 0,		// Online (Internet) based multiplayer connection
+	GKPeerPickerConnectionTypeNearby = 1 << 1		// Nearby (Bluetooth) based multiplayer connection
+} NS_ENUM_DEPRECATED_IOS(3_0, 7_0);
+
+NS_ASSUME_NONNULL_BEGIN
+
+/* callbacks to the GKPeerPickerController delegate
+ */
+API_DEPRECATED("Use MCBrowserViewController along with MCBrowserViewControllerDelegate from the MultipeerConnectivity framework.", ios(3.0,7.0)) __TVOS_UNAVAILABLE
+@protocol GKPeerPickerControllerDelegate <NSObject>
+
+@optional
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+/* Notifies delegate that a connection type was chosen by the user.
+ */
+- (void)peerPickerController:(GKPeerPickerController *)picker didSelectConnectionType:(GKPeerPickerConnectionType)type __TVOS_UNAVAILABLE;
+
+/* Notifies delegate that the connection type is requesting a GKSession object.
+ 
+ You should return a valid GKSession object for use by the picker. If this method is not implemented or returns 'nil', a default GKSession is created on the delegate's behalf.
+ */
+
+- (GKSession *)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type __TVOS_UNAVAILABLE;
+
+/* Notifies delegate that the peer was connected to a GKSession.
+ */
+- (void)peerPickerController:(GKPeerPickerController *)picker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session __TVOS_UNAVAILABLE;
+#pragma clang diagnostic pop
+
+/* Notifies delegate that the user cancelled the picker.
+ */
+- (void)peerPickerControllerDidCancel:(GKPeerPickerController *)picker __TVOS_UNAVAILABLE;
+
+@end
+
+
+/* The GKPeerPickerController class manages the system-supplied user interface for choosing peers to connect with for multiplayer games. The class manages the actual user interactions with the views and reports the results of those interactions to your delegate object.
+ 
+ Because the GKPeerPickerController class handles all of the user interactions, all you have to do is tell it which GKSession selected peers should be connected to, tell it to start, and then wait to receive a delegate callback when the picker finished connecting peers or cancels.
+ 
+ You must provide a delegate that conforms to the GKPeerPickerControllerDelegate protocol in order to use this class. After the user interface starts, this class notifies your delegate of the user’s actions.
+ */
+API_DEPRECATED("Use MCBrowserViewController from the MultipeerConnectivity framework.", ios(3.0,7.0)) __TVOS_UNAVAILABLE
+@interface GKPeerPickerController : NSObject
+
+/* An integer bit mask that determines what connection types are supported by the application, and displays system-supplied UI as appropriate. 
+ 
+ This mask can be specified by combining, using the C bitwise OR operator, any of the options described in GKPickerConnectionType. If not set, the default supported type is GKPickerConnectionTypeNearby.  If multiple connection types are supported, system-supplied UI will be presented to allow the user to select a connection type. The delegate receives a -peerPickerController:didSelectConnectionType: callback when the user selects a connection type.  If desired, this property should be set prior to calling -show, and should not be set while the picker is visible.
+ */
+@property(nonatomic, assign) GKPeerPickerConnectionType connectionTypesMask;
+
+/* The delegate receives notifications when the user interacts with the picker interface. If this property is nil, the picker is dismissed immediately if you try to show it.
+ */
+@property(nonatomic, nullable, weak) id<GKPeerPickerControllerDelegate> delegate NS_DEPRECATED_IOS(3_0, 7_0) __TVOS_UNAVAILABLE;
+
+/* Show the picker.
+ */
+- (void)show;
+
+/* Dismiss the picker.
+ */
+- (void)dismiss;
+
+@property(nonatomic,readonly,getter=isVisible) BOOL visible;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h	2023-03-09 19:24:54
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h	2023-06-01 00:27:08
@@ -1,10 +1,6 @@
-//
-//  GKPlayer.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
+#import <TargetConditionals.h>
 #import <Foundation/Foundation.h>
 #import <GameKit/GKBasePlayer.h>
 #import <GameKit/GKDefines.h>
@@ -16,7 +12,7 @@
 @class UIImage;
 
 /// Deprecated methods that previously returned player IDs will return GKPlayerIDNoLongerAvailable instead.
-extern NSString * _Nonnull const GKPlayerIDNoLongerAvailable API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+GK_EXTERN NSString * _Nonnull const GKPlayerIDNoLongerAvailable API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) API_UNAVAILABLE(watchos);
 
 NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_AVAILABLE(3_0)
 
@@ -44,20 +40,41 @@
 @property(readonly, NS_NONATOMIC_IOSONLY) BOOL isInvitable API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) __WATCHOS_PROHIBITED;
 @end
 
+#if !TARGET_OS_WATCH
 
+@interface GKPlayer (UI)
 
+// Available photo sizes.  Actual pixel dimensions will vary on different devices.
+typedef NS_ENUM(NSInteger, GKPhotoSize) {
+    GKPhotoSizeSmall = 0,
+    GKPhotoSizeNormal,
+};
+
+// Asynchronously load the player's photo. Error will be nil on success.
+// Possible reasons for error:
+// 1. Communications failure
+#if TARGET_OS_IPHONE
+- (void)loadPhotoForSize:(GKPhotoSize)size withCompletionHandler:(void(^__nullable)(UIImage * __nullable photo, NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 5_0);
+#else
+- (void)loadPhotoForSize:(GKPhotoSize)size withCompletionHandler:(void(^__nullable)(NSImage * __nullable photo, NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 5_0);
+#endif
+
+@end
+
+#endif
+
 /// Notification will be posted whenever the player details changes. The object of the notification will be the player.
 GK_EXTERN_WEAK NSNotificationName __nonnull GKPlayerDidChangeNotificationName;
 
 @interface GKPlayer (Deprecated)
 
-@property(readonly, NS_NONATOMIC_IOSONLY)          BOOL         isFriend NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "use -[GKLocalPlayer loadFriendPlayers...]") ;    // True if this player is a friend of the local player
-@property(readonly, nonnull, retain, NS_NONATOMIC_IOSONLY)  NSString *playerID API_DEPRECATED( "use the teamPlayerID property to identify a player",ios(4.1,13.0),tvos(9.0,13.0),macosx(10.8,10.15));
+@property(readonly, NS_NONATOMIC_IOSONLY)          BOOL         isFriend API_DEPRECATED_WITH_REPLACEMENT("-[GKLocalPlayer loadFriendPlayersWithCompletionHandler:]", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;    // True if this player is a friend of the local player
+@property(readonly, nonnull, retain, NS_NONATOMIC_IOSONLY)  NSString *playerID API_DEPRECATED("Use either the gamePlayerID or teamPlayerID property to identify a player.",ios(4.1,13.0),tvos(9.0,13.0),macosx(10.8,10.15));
 
 /// Load the Game Center players for the playerIDs provided. Error will be nil on success.
 /// Possible reasons for error:
 /// 1. Unauthenticated local player
 /// 2. Communications failure
 /// 3. Invalid player identifier
-+ (void)loadPlayersForIdentifiers:(nonnull NSArray<NSString *> *)identifiers withCompletionHandler:(void(^__nullable)(NSArray<GKPlayer *> * __nullable players, NSError * __nullable error))completionHandler NS_SWIFT_DISABLE_ASYNC API_DEPRECATED( "use GKLocalPlayer.loadFriendsWithIdentifiers to load a friend's GKPlayer object.",ios(4.1,14.5),tvos(9.0,14.5),macosx(10.8,11.3), watchos(3.0,7.4));
++ (void)loadPlayersForIdentifiers:(nonnull NSArray<NSString *> *)identifiers withCompletionHandler:(void(^__nullable)(NSArray<GKPlayer *> * __nullable players, NSError * __nullable error))completionHandler NS_SWIFT_DISABLE_ASYNC API_DEPRECATED_WITH_REPLACEMENT("-[GKLocalPlayer loadFriendsWithIdentifiers:completionHandler:]",ios(4.1,14.5),tvos(9.0,14.5),macosx(10.8,11.3), watchos(3.0,7.4));
 @end
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPublicConstants.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPublicConstants.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPublicConstants.h	2023-03-09 19:24:53
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPublicConstants.h	2023-05-31 04:15:21
@@ -1,9 +1,4 @@
-//
-//  GKPublicConstants.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/Foundation.h>
 
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPublicProtocols.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPublicProtocols.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPublicProtocols.h	2023-03-09 19:24:54
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKPublicProtocols.h	2023-05-31 04:15:21
@@ -1,11 +1,5 @@
-//
-//  GKPublicProtocols.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
-#import <TargetConditionals.h>
 #import <Foundation/Foundation.h>
 #import <GameKit/GKPublicConstants.h>
 
@@ -16,7 +10,7 @@
 
 /** Callbacks to the GKSession delegate.
 */
-NS_DEPRECATED(10_8, 10_10, 3_0, 7_0, "Use MCSession in association with MCSessionDelegate from the MultipeerConnectivity framework instead") 
+API_DEPRECATED_WITH_REPLACEMENT("GKMatchDelegate", ios(3.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
 @protocol GKSessionDelegate <NSObject>
 
 @optional
@@ -48,7 +42,7 @@
 @class GKVoiceChatService;
 
 //All clients will need to implement this protocol
-NS_DEPRECATED_IOS(3_0, 7_0, "Use GKVoiceChat instead") 
+API_DEPRECATED_WITH_REPLACEMENT("GKVoiceChat", ios(3.0,7.0)) __TVOS_UNAVAILABLE
 @protocol GKVoiceChatClient <NSObject>
 
 @required
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGame.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGame.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGame.h	2023-03-09 19:24:54
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGame.h	2023-05-31 04:15:21
@@ -1,15 +1,11 @@
-//
-//  GKSavedGame.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
+#import <TargetConditionals.h>
 #import <GameKit/GKLocalPlayer.h>
 #import <GameKit/GKSavedGameListener.h>
 
 /// Class representing a saved game for the local player, or a version of a saved game when in conflict
-NS_CLASS_AVAILABLE(10_10, 8_0) __WATCHOS_PROHIBITED 
+NS_CLASS_AVAILABLE(10_10, 8_0) __WATCHOS_PROHIBITED API_UNAVAILABLE(tvos)
 @interface GKSavedGame : NSObject <NSCopying>
 
 NS_ASSUME_NONNULL_BEGIN
@@ -28,17 +24,17 @@
 
 /// Asynchronously fetch saved games. The handler is called with an array of GKSavedGame objects or an error.
 /// If there is more than one saved game with the same name then a conflict exists. The application should determine the correct data to use and call resolveConflictingSavedGames:withData:completionHandler:. This may require data merging or asking the user.
-- (void)fetchSavedGamesWithCompletionHandler:(void(^__nullable)(NSArray<GKSavedGame *> * __nullable savedGames, NSError * __nullable error))handler NS_AVAILABLE(10_10, 8_0)  ;
+- (void)fetchSavedGamesWithCompletionHandler:(void(^__nullable)(NSArray<GKSavedGame *> * __nullable savedGames, NSError * __nullable error))handler NS_AVAILABLE(10_10, 8_0)  __TVOS_UNAVAILABLE;
 
 /// Asynchronously save game data. If a saved game with that name already exists it is overwritten, otherwise a new one is created. The completion handler is called with the new / modified GKSavedGame or an error.
 /// If the saved game was in conflict then the overwritten version will be the one with the same deviceName if present, otherwise the most recent overall.
-- (void)saveGameData:(NSData *)data withName:(NSString *)name completionHandler:(void(^__nullable)(GKSavedGame * __nullable savedGame, NSError * __nullable error))handler NS_AVAILABLE(10_10, 8_0) ;
+- (void)saveGameData:(NSData *)data withName:(NSString *)name completionHandler:(void(^__nullable)(GKSavedGame * __nullable savedGame, NSError * __nullable error))handler NS_AVAILABLE(10_10, 8_0) __TVOS_UNAVAILABLE;
 
 /// Asynchronously delete saved games with the given name. The completion handler will indicate whether or not the deletion was successful.
-- (void)deleteSavedGamesWithName:(NSString *)name completionHandler:(void(^__nullable)(NSError * __nullable error))handler NS_AVAILABLE(10_10, 8_0) ;
+- (void)deleteSavedGamesWithName:(NSString *)name completionHandler:(void(^__nullable)(NSError * __nullable error))handler NS_AVAILABLE(10_10, 8_0) __TVOS_UNAVAILABLE;
 
 /// Asynchronously resolve a saved game conflict. This deletes all versions included in conflictingSavedGames and creates a new version with the given data. The completion handler is called with the newly created save and all other remaining versions or an error.
-- (void)resolveConflictingSavedGames:(NSArray<GKSavedGame *> *)conflictingSavedGames withData:(NSData *)data completionHandler:(void(^__nullable)(NSArray<GKSavedGame *> * __nullable savedGames, NSError * __nullable error))handler NS_AVAILABLE(10_10, 8_0) ;
+- (void)resolveConflictingSavedGames:(NSArray<GKSavedGame *> *)conflictingSavedGames withData:(NSData *)data completionHandler:(void(^__nullable)(NSArray<GKSavedGame *> * __nullable savedGames, NSError * __nullable error))handler NS_AVAILABLE(10_10, 8_0) __TVOS_UNAVAILABLE;
 
 @end
 #endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGameListener.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGameListener.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGameListener.h	2023-03-09 19:24:54
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGameListener.h	2023-05-31 04:15:22
@@ -1,9 +1,4 @@
-//
-//  GKSavedGameListener.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/NSObjCRuntime.h> // NS_ASSUME_NONNULL_BEGIN
 #import <objc/NSObject.h> // NSObject
@@ -13,15 +8,15 @@
 @class GKSavedGame;
 
 NS_ASSUME_NONNULL_BEGIN
-NS_CLASS_AVAILABLE(10_10, 8_0) __WATCHOS_PROHIBITED 
+NS_CLASS_AVAILABLE(10_10, 8_0) __WATCHOS_PROHIBITED __TVOS_UNAVAILABLE
 @protocol GKSavedGameListener <NSObject>
 @optional
 
 /// Called when a player’s saved game data has been modified.
-- (void)player:(GKPlayer *)player didModifySavedGame:(GKSavedGame *)savedGame NS_AVAILABLE(10_10, 8_0) ;
+- (void)player:(GKPlayer *)player didModifySavedGame:(GKSavedGame *)savedGame NS_AVAILABLE(10_10, 8_0) __TVOS_UNAVAILABLE;
 
 /// Called when a conflict has arisen between different versions of the same saved game. This can happen when multiple devices write to the same saved game while one or more is offline. The application should determine the correct data to use, then call resolveConflictingSavedGames:withData:completionHandler:. This may require data merging or asking the user.
-- (void)player:(GKPlayer *)player hasConflictingSavedGames:(NSArray<GKSavedGame *> *)savedGames NS_AVAILABLE(10_10, 8_0) ;
+- (void)player:(GKPlayer *)player hasConflictingSavedGames:(NSArray<GKSavedGame *> *)savedGames NS_AVAILABLE(10_10, 8_0) __TVOS_UNAVAILABLE;
 
 @end
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKScore.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKScore.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKScore.h	2023-03-09 19:10:09
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKScore.h	2023-06-01 00:27:08
@@ -1,21 +1,15 @@
-//
-//  GKScore.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/Foundation.h>
 
 #import <GameKit/GKLeaderboard.h>
 
-
 @class GKPlayer;
 
 NS_ASSUME_NONNULL_BEGIN
 
 /// GKScore represents a score in the leaderboards.
-API_DEPRECATED("Replaced by GKLeaderboardScore", ios(4.1, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0))
+API_DEPRECATED_WITH_REPLACEMENT("GKLeaderboardScore", ios(4.1, 14.0), tvos(9.0, 14.0), macosx(10.8, 11.0), watchos(3.0, 7.0))
 @interface GKScore : NSObject <NSCoding, NSSecureCoding>
 
 /// Initialize the score with the local player and current date.
@@ -61,18 +55,18 @@
 
 @interface GKScore (Deprecated)
 
-- (void)reportScoreWithCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_10, 4_1, 7_0, "Use +reportScores:withCompletionhandler: instead") ;
-- (instancetype)initWithCategory:(nullable NSString *)category NS_DEPRECATED(10_8, 10_10, 4_1, 7_0, "Use initWithLeaderboardIdentifier: instead") ;
+- (void)reportScoreWithCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("+reportScores:withCompletionhandler:", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+- (instancetype)initWithCategory:(nullable NSString *)category API_DEPRECATED_WITH_REPLACEMENT("-initWithLeaderboardIdentifier:", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 
-@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *category NS_DEPRECATED(10_8, 10_10, 4_1, 7_0, "Use leaderboardIdentifier instead") ;
+@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *category API_DEPRECATED_WITH_REPLACEMENT("-leaderboardIdentifier", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 @end
 
 @interface GKScore (Obsoleted)
 /*** This method is obsolete. Calling this initialiser does nothing and will return nil ***/
-- (nullable instancetype)initWithLeaderboardIdentifier:(NSString *)identifier forPlayer:(NSString *)playerID NS_DEPRECATED_IOS(7_0, 8_0, "This is never invoked and its implementation does nothing, use initWithLeaderboardIdentifier:player:") ;
+- (nullable instancetype)initWithLeaderboardIdentifier:(NSString *)identifier forPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("-initWithLeaderboardIdentifier:player:", ios(7.0,8.0)) __TVOS_UNAVAILABLE;
 
 /*** This property is obsolete. ***/
-@property(readonly, nullable, retain, NS_NONATOMIC_IOSONLY)   NSString    *playerID NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "use player instead") ;          // The identifier of the player that recorded the score.
+@property(readonly, nullable, retain, NS_NONATOMIC_IOSONLY)   NSString    *playerID API_DEPRECATED_WITH_REPLACEMENT("-player:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;          // The identifier of the player that recorded the score.
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSession.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSession.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSession.h	2023-03-09 19:11:22
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSession.h	2023-06-01 00:27:08
@@ -1,9 +1,4 @@
-//
-//  GKSession.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 /**
  The Game Connectivity Kit (GCK) is a framework for handling connectivity and data transport in multiplayer network games.  
@@ -21,14 +16,8 @@
  
  This a not a Game Center feature. To support Game Center and online play, see GKMatch.
 */
-NS_CLASS_DEPRECATED(10_8, 10_10, 3_0, 7_0, "Use MCSession from the MultipeerConnectivity framework instead") 
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-@interface GKSession : NSObject {
-#pragma clang diagnostic pop
-@private
-    id _session;
-}
+API_DEPRECATED_WITH_REPLACEMENT("GKMatch", ios(3.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
+@interface GKSession : NSObject
 
 /** Creating a GKSession requires a unique identifier, sessionID, and mode.  All instances of the application must have the same sessionID in order to be able to join a game network.  Additionally, the GKSession requires a name, which is used to identify the specific instances of the application.
 
@@ -40,7 +29,7 @@
 - (id)initWithSessionID:(NSString *)sessionID displayName:(NSString *)name sessionMode:(GKSessionMode)mode NS_DEPRECATED(10_8, 10_10, 3_0, 7_0);
 #pragma clang diagnostic pop
 
-@property(weak) id<GKSessionDelegate> delegate NS_DEPRECATED(10_8, 10_10, 3_0, 7_0) ;
+@property(weak) id<GKSessionDelegate> delegate NS_DEPRECATED(10_8, 10_10, 3_0, 7_0) API_UNAVAILABLE(tvos);
 
 @property(readonly) NSString *sessionID;
 @property(readonly) NSString *displayName;
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSessionError.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSessionError.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSessionError.h	2023-03-09 19:24:53
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSessionError.h	2023-05-31 04:15:21
@@ -1,9 +1,4 @@
-//
-//  GKSessionError.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/Foundation.h>
 #import <GameKit/GKDefines.h>
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatch.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatch.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatch.h	2023-03-09 23:51:29
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatch.h	2023-05-31 04:55:11
@@ -1,9 +1,4 @@
-//
-//  GKTurnBasedMatch.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <GameKit/GKPlayer.h>
 #import <GameKit/GKLeaderboardScore.h>
@@ -65,7 +60,7 @@
 
 @interface GKTurnBasedParticipant (Obsoleted)
 /*** This property is obsolete. ***/
-@property(readonly, nullable, copy, NS_NONATOMIC_IOSONLY) NSString              *playerID NS_DEPRECATED(10_8, 10_10, 5_0, 8_0, "use player") ;
+@property(readonly, nullable, copy, NS_NONATOMIC_IOSONLY) NSString              *playerID API_DEPRECATED_WITH_REPLACEMENT("-player:", ios(5.0,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 @end
 
 NS_ASSUME_NONNULL_BEGIN
@@ -100,14 +95,14 @@
 - (void)player:(GKPlayer *)player wantsToQuitMatch:(GKTurnBasedMatch *)match NS_AVAILABLE(10_11, 9_0) __WATCHOS_AVAILABLE(3_0);
 
 /// Deprecated
-- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray<NSString *> *)playerIDsToInvite NS_DEPRECATED_IOS(7_0, 8_0, "use didRequestMatchWithOtherPlayers") ;
+- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray<NSString *> *)playerIDsToInvite API_DEPRECATED_WITH_REPLACEMENT("-didRequestMatchWithOtherPlayers:", ios(7.0,8.0)) API_UNAVAILABLE(tvos);
 
 @end
 
 // Turn timeout constants
 
-extern NSTimeInterval        GKTurnTimeoutDefault NS_AVAILABLE(10_9, 6_0) __WATCHOS_AVAILABLE(3_0);    // use a default timeout of one week
-extern NSTimeInterval        GKTurnTimeoutNone NS_AVAILABLE(10_9, 6_0) __WATCHOS_AVAILABLE(3_0);
+GK_EXTERN NSTimeInterval        GKTurnTimeoutDefault NS_AVAILABLE(10_9, 6_0) __WATCHOS_AVAILABLE(3_0);    // use a default timeout of one week
+GK_EXTERN NSTimeInterval        GKTurnTimeoutNone NS_AVAILABLE(10_9, 6_0) __WATCHOS_AVAILABLE(3_0);
 
 NS_CLASS_AVAILABLE(10_8, 5_0) __WATCHOS_AVAILABLE(3_0)
 @interface GKTurnBasedMatch : NSObject
@@ -212,7 +207,7 @@
 - (void)endMatchInTurnWithMatchData:(NSData*)matchData completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler;
 
 // This will end the match and submit scores and achievements for all participants. Scores should be submitted for all involved players, and multiple scores may be submitted for each to different leaderboards. Earned achievements may also be submitted for any participants. You must set each participant’s matchOutcome before calling this method. All completed exchanges must be resolved or canceled before calling this.
-- (void)endMatchInTurnWithMatchData:(NSData*)matchData scores:(nullable NSArray<GKScore *> *)scores achievements:(nullable NSArray<GKAchievement *> *)achievements completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_DEPRECATED(10_10, 11_0, 6_0, 14_0, "pass GKLeaderboardScore to endMatchInTurnWithMatchData:scores:completionHandler instead");
+- (void)endMatchInTurnWithMatchData:(NSData*)matchData scores:(nullable NSArray<GKScore *> *)scores achievements:(nullable NSArray<GKAchievement *> *)achievements completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-endMatchInTurnWithMatchData:scores:completionHandler", ios(6.0,14.0), macos(10.10,11.0));
 
 - (void)endMatchInTurnWithMatchData:(NSData*)matchData leaderboardScores:(NSArray<GKLeaderboardScore *> *)scores achievements:(NSArray *)achievements completionHandler:(void(^)(NSError * __nullable error))completionHandler NS_AVAILABLE(11_0, 14_0);
 
@@ -239,8 +234,8 @@
                  completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
 
 // deprecated methods
-- (void)endTurnWithNextParticipant:(GKTurnBasedParticipant *)nextParticipant matchData:(NSData*)matchData completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_9, 5_0, 6_0, "Use endTurnWithNextParticipants:... instead") ;
-- (void)participantQuitInTurnWithOutcome:(GKTurnBasedMatchOutcome)matchOutcome nextParticipant:(GKTurnBasedParticipant *)nextParticipant matchData:(NSData*)matchData completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_DEPRECATED(10_8, 10_9, 5_0, 6_0, "Use participantQuitInTurnWithOutcome:nextParticipants:turnTimeout:... instead") ;
+- (void)endTurnWithNextParticipant:(GKTurnBasedParticipant *)nextParticipant matchData:(NSData*)matchData completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-endTurnWithNextParticipants:turnTimeout:matchData:completionHandler:", ios(5.0,6.0), macos(10.8,10.9)) __TVOS_UNAVAILABLE;
+- (void)participantQuitInTurnWithOutcome:(GKTurnBasedMatchOutcome)matchOutcome nextParticipant:(GKTurnBasedParticipant *)nextParticipant matchData:(NSData*)matchData completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-participantQuitInTurnWithOutcome:nextParticipants:turnTimeout:matchData:completionHandler:", ios(5.0,6.0), macos(10.8,10.9)) __TVOS_UNAVAILABLE;
 
 @end
 
@@ -258,10 +253,9 @@
 
 // Exchange timeout constants
 
-extern NSTimeInterval        GKExchangeTimeoutDefault NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);    // use a default timeout of one day
-extern NSTimeInterval        GKExchangeTimeoutNone NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+GK_EXTERN NSTimeInterval        GKExchangeTimeoutDefault NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);    // use a default timeout of one day
+GK_EXTERN NSTimeInterval        GKExchangeTimeoutNone NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
 
-
 NS_CLASS_AVAILABLE(10_10,7_0) __WATCHOS_AVAILABLE(3_0)
 @interface  GKTurnBasedExchange : NSObject
 
@@ -285,7 +279,6 @@
 
 @end
 
-    
 NS_CLASS_AVAILABLE(10_10,7_0) __WATCHOS_AVAILABLE(3_0)
 @interface GKTurnBasedExchangeReply  : NSObject
 
@@ -298,7 +291,7 @@
 // deprecated
 
 // see documentation for GKTurnBasedEventListener for the equivalent methods
-NS_DEPRECATED(10_8, 10_10, 5_0, 7_0, "Use registerListener on GKLocalPlayer with an object that implements the GKTurnBasedEventListener protocol") 
+API_DEPRECATED_WITH_REPLACEMENT("-[GKLocalPlayer registerListener:]", ios(5.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
 @protocol  GKTurnBasedEventHandlerDelegate
 
 - (void)handleInviteFromGameCenter:(NSArray<NSString *> *)playersToInvite NS_DEPRECATED(10_8, 10_10, 5_0, 7_0);
@@ -310,7 +303,7 @@
 
 @end
 
-NS_CLASS_DEPRECATED(10_8, 10_10, 5_0, 7_0, "Use registerListener on GKLocalPlayer with an object that implements the GKTurnBasedEventListener protocol") 
+API_DEPRECATED_WITH_REPLACEMENT("-[GKTurnBasedEventListener registerListener:]", ios(5.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
 @interface GKTurnBasedEventHandler : NSObject
 
 + (GKTurnBasedEventHandler *)sharedTurnBasedEventHandler NS_DEPRECATED(10_8, 10_10, 5_0, 7_0);
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h	2023-05-31 04:15:21
@@ -0,0 +1,67 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <TargetConditionals.h>
+#import <Foundation/Foundation.h>
+
+#if !TARGET_OS_WATCH
+
+@protocol GKTurnBasedMatchmakerViewControllerDelegate;
+
+@class GKMatchmakerViewController, GKTurnBasedMatch, GKMatchRequest;
+
+@protocol GKTurnBasedMatchmakerViewControllerDelegate;
+
+#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
+NS_CLASS_AVAILABLE(10_8, 5_0)
+@interface GKTurnBasedMatchmakerViewController : UINavigationController
+@end
+#else
+#import <GameKit/GKDialogController.h>
+NS_ASSUME_NONNULL_BEGIN
+NS_CLASS_AVAILABLE(10_8, 5_0)
+@interface GKTurnBasedMatchmakerViewController : NSViewController <GKViewController>
+@end
+#endif
+
+@interface GKTurnBasedMatchmakerViewController ()
+
+@property (nonatomic, nullable, readwrite, weak) id<GKTurnBasedMatchmakerViewControllerDelegate> turnBasedMatchmakerDelegate;
+@property (nonatomic, readwrite, assign) BOOL showExistingMatches; /// defaults to YES
+
+/// This controls the mode of matchmaking to support in the UI (all, nearby only, automatch only, invite only). Throws an exception if you can not set to the desired mode (due to restrictions)
+@property (nonatomic, assign) GKMatchmakingMode matchmakingMode API_AVAILABLE(ios(15), macos(12), tvos(15));
+
+- (id)initWithMatchRequest:(GKMatchRequest *)request;
+
+@end
+
+@protocol GKTurnBasedMatchmakerViewControllerDelegate <NSObject>
+@required
+
+/// The user has cancelled
+- (void)turnBasedMatchmakerViewControllerWasCancelled:(GKTurnBasedMatchmakerViewController *)viewController NS_AVAILABLE(10_8, 5_0);
+
+/// Matchmaking has failed with an error
+- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController didFailWithError:(NSError *)error NS_AVAILABLE(10_8, 5_0);
+
+
+@optional
+
+// Deprecated
+- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController didFindMatch:(GKTurnBasedMatch *)match API_DEPRECATED_WITH_REPLACEMENT("-player:receivedTurnEventForMatch:didBecomeActive:", ios(5.0,9.0), macos(10.8,10.11)) API_UNAVAILABLE(tvos);
+
+// Deprectated
+- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController playerQuitForMatch:(GKTurnBasedMatch *)match API_DEPRECATED_WITH_REPLACEMENT("-player:wantsToQuitMatch:", ios(5.0,9.0), macos(10.8,10.11)) API_UNAVAILABLE(tvos);
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChat.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChat.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChat.h	2023-03-09 19:24:53
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChat.h	2023-05-31 04:15:21
@@ -1,9 +1,4 @@
-//
-//  GKVoiceChat.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 #import <Foundation/Foundation.h>
 
@@ -17,7 +12,6 @@
 
 @class GKPlayer;
 
-
 NS_ASSUME_NONNULL_BEGIN
 /// GKVoiceChat represents an instance of a named voice communications channel
 NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_PROHIBITED
@@ -42,15 +36,15 @@
 
 __WATCHOS_PROHIBITED
 @interface GKVoiceChat (Deprecated)
-@property(copy, NS_NONATOMIC_IOSONLY) void(^playerStateUpdateHandler)(NSString *playerID, GKVoiceChatPlayerState state) NS_DEPRECATED(10_8, 10_10, 4_1, 8_0, "use setPlayerVoiceChatStateDidChangeHandler:") ;
+@property(copy, NS_NONATOMIC_IOSONLY) void(^playerStateUpdateHandler)(NSString *playerID, GKVoiceChatPlayerState state) API_DEPRECATED_WITH_REPLACEMENT("-setPlayerVoiceChatStateDidChangeHandler:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 @end
 
 __WATCHOS_PROHIBITED
 @interface GKVoiceChat (Obsoleted)
 /*** This property is obsolete. ***/
-@property(readonly, nullable, NS_NONATOMIC_IOSONLY) NSArray<NSString *> *playerIDs NS_DEPRECATED(10_8, 10_10, 5_0, 8_0, "use players") ;
+@property(readonly, nullable, NS_NONATOMIC_IOSONLY) NSArray<NSString *> *playerIDs API_DEPRECATED_WITH_REPLACEMENT("-players:", ios(5.0,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 
 /*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)setMute:(BOOL)isMuted forPlayer:(NSString *)playerID NS_DEPRECATED(10_8, 10_10, 5_0, 8_0, "This is never invoked and its implementation does nothing, use setPlayer:muted:") ;
+- (void)setMute:(BOOL)isMuted forPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("-setPlayer:muted:", ios(5.0,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
 @end
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChatService.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChatService.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChatService.h	2023-03-09 23:54:33
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChatService.h	2023-05-31 04:15:21
@@ -1,9 +1,4 @@
-//
-//  GKVoiceChatService.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
+// Copyright © Apple Inc. All rights reserved.
 
 /*
 
@@ -96,7 +91,6 @@
  
 */
 
-#import <TargetConditionals.h>
 #import <Foundation/Foundation.h>
 #import <GameKit/GKDefines.h>
 #import <GameKit/GKPublicProtocols.h>
@@ -105,14 +99,14 @@
 @class GKVoiceChatService;
 
 // GKVoiceChatService provides voice chat capabilities depending on your networking situation.
-NS_CLASS_DEPRECATED_IOS(3_0, 7_0, "Use GKVoiceChat instead") 
+NS_CLASS_DEPRECATED_IOS(3_0, 7_0, "Use GKVoiceChat instead") API_UNAVAILABLE(tvos)
 @interface GKVoiceChatService : NSObject
 
 + (GKVoiceChatService *)defaultVoiceChatService;
 
 + (BOOL)isVoIPAllowed;
 
-@property(assign) id<GKVoiceChatClient> client NS_DEPRECATED_IOS(3_0, 7_0) ;
+@property(assign) id<GKVoiceChatClient> client NS_DEPRECATED_IOS(3_0, 7_0) __TVOS_UNAVAILABLE;
 
 // May fail if you already in a chat, or if there is no peer-to-peer channel that can be made to the participant.
 - (BOOL)startVoiceChatWithParticipantID:(NSString *)participantID error:(NSError **)error;
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GameKit.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GameKit.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GameKit.h	2023-03-04 19:44:32
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/GameKit.framework/Headers/GameKit.h	2023-05-31 04:15:20
@@ -1,35 +1,68 @@
-//
-//  GameKit.h
-//  Game Center
-//
-//  Copyright 2010-2023 Apple Inc. All rights reserved.
-//
-
 #import <TargetConditionals.h>
+
 #import <simd/simd.h>
 
+#if TARGET_OS_OSX
+
+#import <Cocoa/Cocoa.h>
+
+#import <Metal/Metal.h>
+#import <MetalKit/MetalKit.h>
+
+#elif TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_MACCATALYST
+
+#import <UIKit/UIKit.h>
+
+#if !TARGET_OS_SIMULATOR
+#import <Metal/Metal.h>
+#import <MetalKit/MetalKit.h>
+#endif
+
+#endif
+
 #import <SpriteKit/SpriteKit.h>
 #import <SceneKit/SceneKit.h>
 
-#import <GameKit/GKDefines.h>
+#if !TARGET_OS_WATCH
+#import <GameplayKit/GameplayKit.h>
+#import <GameController/GameController.h>
+#import <ModelIO/ModelIO.h>
+#endif
+
+#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_MACCATALYST
+#import <ReplayKit/ReplayKit.h>
+#endif
+
+#import <GameKit/GKAccessPoint.h>
 #import <GameKit/GKAchievement.h>
 #import <GameKit/GKAchievementDescription.h>
+#import <GameKit/GKAchievementViewController.h>
 #import <GameKit/GKBasePlayer.h>
 #import <GameKit/GKChallenge.h>
 #import <GameKit/GKChallengeEventHandler.h>
+#import <GameKit/GKChallengesViewController.h>
 #import <GameKit/GKCloudPlayer.h>
+#import <GameKit/GKDefines.h>
+#import <GameKit/GKDialogController.h>
 #import <GameKit/GKError.h>
 #import <GameKit/GKEventListener.h>
+#import <GameKit/GKFriendRequestComposeViewController.h>
+#import <GameKit/GKGameCenterViewController.h>
 #import <GameKit/GKGameSession.h>
 #import <GameKit/GKGameSessionError.h>
 #import <GameKit/GKGameSessionEventListener.h>
+#import <GameKit/GKGameSessionSharingViewController.h>
 #import <GameKit/GKLeaderboard.h>
 #import <GameKit/GKLeaderboardEntry.h>
 #import <GameKit/GKLeaderboardScore.h>
 #import <GameKit/GKLeaderboardSet.h>
+#import <GameKit/GKLeaderboardViewController.h>
 #import <GameKit/GKLocalPlayer.h>
 #import <GameKit/GKMatch.h>
 #import <GameKit/GKMatchmaker.h>
+#import <GameKit/GKMatchmakerViewController.h>
+#import <GameKit/GKNotificationBanner.h>
+#import <GameKit/GKPeerPickerController.h>
 #import <GameKit/GKPlayer.h>
 #import <GameKit/GKPublicConstants.h>
 #import <GameKit/GKPublicProtocols.h>
@@ -39,5 +72,6 @@
 #import <GameKit/GKSession.h>
 #import <GameKit/GKSessionError.h>
 #import <GameKit/GKTurnBasedMatch.h>
+#import <GameKit/GKTurnBasedMatchmakerViewController.h>
 #import <GameKit/GKVoiceChat.h>
 #import <GameKit/GKVoiceChatService.h>
Clone this wiki locally