-
Notifications
You must be signed in to change notification settings - Fork 520
GameKit MacCatalyst xcode16.3 b1
Rolf Bjarne Kvinge edited this page Dec 12, 2024
·
1 revision
#GameKit.framework
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h 2024-11-10 11:58:16
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAccessPoint.h 2025-02-08 02:20:19
@@ -24,7 +24,7 @@
GKAccessPointLocationTopTrailing,
GKAccessPointLocationBottomLeading,
GKAccessPointLocationBottomTrailing
-} NS_SWIFT_NAME(GKAccessPoint.Location);
+} NS_SWIFT_NAME(GKAccessPoint.Location) API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0));
API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0))
@interface GKAccessPoint : NSObject
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievement.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievement.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievement.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievement.h 2025-02-13 05:59:50
@@ -7,7 +7,7 @@
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)
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKAchievement : NSObject <NSCoding, NSSecureCoding>
/// Asynchronously load all achievements for the local player
@@ -23,7 +23,7 @@
- (instancetype)initWithIdentifier:(nullable NSString *)identifier;
/// Initialize the achievement for a specific player. Use to submit participant achievements when ending a turn-based match.
-- (instancetype)initWithIdentifier:(nullable NSString *)identifier player:(GKPlayer *)player NS_AVAILABLE(10_10, 8_0);
+- (instancetype)initWithIdentifier:(nullable NSString *)identifier player:(GKPlayer *)player API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
/// Report an array of achievements to the server. Percent complete is required. Points, completed state are set based on percentComplete. isHidden is set to NO anytime this method is invoked. Date is optional. Error will be nil on success.
@@ -31,7 +31,7 @@
/// 1. Local player not authenticated
/// 2. Communications failure
/// 3. Reported Achievement does not exist
-+ (void)reportAchievements:(NSArray<GKAchievement *> *)achievements withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 6_0);
++ (void)reportAchievements:(NSArray<GKAchievement *> *)achievements withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
/// Achievement identifier
@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *identifier;
@@ -43,22 +43,22 @@
@property(copy, readonly, NS_NONATOMIC_IOSONLY) NSDate *lastReportedDate;
/// A banner will be momentarily displayed after reporting a completed achievement
-@property(assign, NS_NONATOMIC_IOSONLY) BOOL showsCompletionBanner NS_AVAILABLE(10_8, 5_0);
+@property(assign, NS_NONATOMIC_IOSONLY) BOOL showsCompletionBanner API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
/// The identifier of the player that earned the achievement.
-@property(readonly, strong, nullable, NS_NONATOMIC_IOSONLY) GKPlayer *player NS_AVAILABLE(10_10, 8_0);
+@property(readonly, strong, nullable, NS_NONATOMIC_IOSONLY) GKPlayer *player API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
@end
@interface GKAchievement (Deprecated)
-- (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;
+- (void)reportAchievementWithCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use ``GKAchievement/report(_:withCompletionHandler:)`` instead.", ios(4.1,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
+@property(assign, getter=isHidden, readonly, NS_NONATOMIC_IOSONLY) BOOL hidden API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievementDescription/isHidden`` property on the ``GKAchievementDescription`` class instead.", ios(4.1,6.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
@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 API_DEPRECATED_WITH_REPLACEMENT("-initWithIdentifier:player:", ios(7.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
+/*** This method is obsolete. Calling this initializer does nothing and will return nil ***/
+- (nullable instancetype)initWithIdentifier:(nullable NSString *)identifier forPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKAchievement/init(identifier:player:)`` instead.", ios(7.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
/*** This property is obsolete. ***/
-@property(readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSString * playerID API_DEPRECATED_WITH_REPLACEMENT("-player:", ios(7.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
+@property(readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSString * playerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKAchievement/player`` instead.", ios(7.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementDescription.h 2025-02-13 05:59:50
@@ -1,12 +1,13 @@
// Copyright © Apple Inc. All rights reserved.
-#import <TargetConditionals.h>
#import <Foundation/Foundation.h>
#import <GameKit/GKDefines.h>
+#import <GameKit/GKReleaseState.h>
+#import <TargetConditionals.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)
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKAchievementDescription : NSObject <NSCoding, NSSecureCoding>
/// Asynchronously load all achievement descriptions
@@ -14,7 +15,7 @@
@property(copy, readonly, nullable, NS_NONATOMIC_IOSONLY) NSString *identifier;
/// The group identifier for the achievement, if one exists.
-@property(nonatomic, retain, nullable, readonly) NSString *groupIdentifier NS_AVAILABLE(10_8, 6_0);
+@property(nonatomic, retain, nullable, readonly) NSString *groupIdentifier API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
/// The title of the achievement.
@property(copy, readonly, nullable, NS_NONATOMIC_IOSONLY) NSString *title;
/// The description for an unachieved achievement.
@@ -26,15 +27,15 @@
/// Whether or not the achievement should be listed or displayed if not yet unhidden by the game.
@property(getter = isHidden, assign, readonly, NS_NONATOMIC_IOSONLY) BOOL hidden;
/// Whether or not the achievement will be reported by the game when the user earns it again. This allows the achievement to be used for challenges when the recipient has previously earned it.
-@property(nonatomic, getter = isReplayable, assign, readonly) BOOL replayable NS_AVAILABLE(10_8, 6_0);
+@property(nonatomic, getter = isReplayable, assign, readonly) BOOL replayable API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.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;
+/// The release state of the achievement in App Store Connect.
+@property(nonatomic, assign, readonly) GKReleaseState releaseState API_AVAILABLE(ios(18.4), macos(15.4), watchos(11.4), tvos(18.4), visionos(2.4));
@end
NS_ASSUME_NONNULL_END
-#if !TARGET_OS_WATCH
-
#if TARGET_OS_IPHONE
@class UIImage;
#else
@@ -46,14 +47,14 @@
#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), tvos(9.0,17.2));
+@property(nonatomic, retain, readonly, nullable) UIImage *image API_DEPRECATED_WITH_REPLACEMENT("Use ``GKAchievementDescription/loadImage(completionHandler:)`` instead.", ios(4.1,7.0), macos(10.8,10.10), tvos(9.0,17.2)) API_UNAVAILABLE(watchos);
// Asynchronously load the image. Error will be nil on success.
-- (void)loadImageWithCompletionHandler:(void(^ __nullable)(UIImage * __nullable image, NSError * __nullable error))completionHandler;
+- (void)loadImageWithCompletionHandler:(void(^ __nullable)(UIImage * __nullable image, NSError * __nullable error))completionHandler API_UNAVAILABLE(watchos);
#else
// Image for completed achievement. Not valid until loadImage: has completed. Deprecated -- use loadImageWithCompletionHandler: instead.
-@property(atomic, retain, readonly, nullable) NSImage *image API_DEPRECATED_WITH_REPLACEMENT("-loadImageWithCompletionHandler:", macos(10.8,14.2));
+@property(atomic, retain, readonly, nullable) NSImage *image API_DEPRECATED_WITH_REPLACEMENT("Use ``GKAchievementDescription/loadImage(completionHandler:)`` instead.", macos(10.8,14.2));
// Asynchronously load the image. Error will be nil on success.
- (void)loadImageWithCompletionHandler:(void(^ __nullable)(NSImage * __nullable image, NSError * __nullable error))completionHandler;
@@ -62,10 +63,10 @@
#if TARGET_OS_IPHONE
// The default image for any incomplete achievement
-+ (nonnull UIImage *)incompleteAchievementImage;
++ (nonnull UIImage *)incompleteAchievementImage API_UNAVAILABLE(watchos);
// A placeholder image to be used for any completed achievement until the description image has loaded.
-+ (nonnull UIImage *)placeholderCompletedAchievementImage;
++ (nonnull UIImage *)placeholderCompletedAchievementImage API_UNAVAILABLE(watchos);
#else
@@ -79,4 +80,3 @@
@end
-#endif
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementViewController.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementViewController.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementViewController.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKAchievementViewController.h 2025-02-13 05:59:50
@@ -14,13 +14,13 @@
@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
+API_DEPRECATED_WITH_REPLACEMENT("Use ``GKGameCenterViewController`` instead.", ios(4.1,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
@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
+API_DEPRECATED_WITH_REPLACEMENT("Use ``GKGameCenterViewController`` instead.", ios(4.1,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
@protocol GKAchievementViewControllerDelegate <NSObject>
@required
/// The achievement view has finished
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKBasePlayer.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKBasePlayer.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKBasePlayer.h 2024-11-10 11:51:14
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKBasePlayer.h 2025-02-13 05:59:49
@@ -4,10 +4,10 @@
#import <Foundation/Foundation.h>
#import <GameKit/GKDefines.h>
-NS_CLASS_AVAILABLE(10_12, 10_0) __WATCHOS_AVAILABLE(3_0)
+API_AVAILABLE(ios(10.0), macos(10.12), tvos(10.0), visionos(1.0), watchos(3.0))
@interface GKBasePlayer : NSObject
-@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),macos(10.8,10.15));
+@property(readonly, nullable, retain, NS_NONATOMIC_IOSONLY) NSString *playerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKPlayer/gamePlayerID`` or ``GKPlayer/teamPlayerID`` instead.", ios(10.0,13.0), macos(10.12,10.15), tvos(10.0,13.0), visionos(1.0,1.0), watchos(3.0,6.0));
/// 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_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h 2024-11-10 13:04:09
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallenge.h 2025-02-08 02:20:19
@@ -16,9 +16,9 @@
GKChallengeStatePending = 1, // The challenge has been issued, but neither completed nor declined
GKChallengeStateCompleted = 2, // The challenge has been completed by the receiving player
GKChallengeStateDeclined = 3, // The challenge has been declined by the receiving player
-};
+} API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
-NS_CLASS_AVAILABLE(10_8, 6_0) __WATCHOS_PROHIBITED
+API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface GKChallenge : NSObject <NSCoding, NSSecureCoding>
/// Query challenges for the current game issued to the local player -- equivalent GKChallenge objects are not guaranteed to be pointer equivalent across calls, but equal GKChallenge objects will have equal hashes
@@ -28,9 +28,9 @@
- (void)decline;
/// The GKPlayer who issued the challenge
-@property (nonatomic, readonly, nullable, copy) GKPlayer *issuingPlayer NS_AVAILABLE(10_10, 8_0);
+@property (nonatomic, readonly, nullable, copy) GKPlayer *issuingPlayer API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// The GKPlayer who has received the challenge
-@property (nonatomic, readonly, nullable, copy) GKPlayer *receivingPlayer NS_AVAILABLE(10_10, 8_0);
+@property (nonatomic, readonly, nullable, copy) GKPlayer *receivingPlayer API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// Current state of the challenge
@property (nonatomic, readonly, assign) GKChallengeState state;
/// Date the challenge was issued
@@ -43,26 +43,26 @@
@end
-__WATCHOS_PROHIBITED
+API_UNAVAILABLE(watchos)
@interface GKChallenge (Obsoleted)
/*** This property is obsolete. ***/
-@property (nonatomic, readonly, nullable, copy) NSString *issuingPlayerID API_DEPRECATED_WITH_REPLACEMENT("-issuingPlayer:", ios(6.0,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+@property (nonatomic, readonly, nullable, copy) NSString *issuingPlayerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKChallenge/issuingPlayer`` instead.", ios(6.0,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos, watchos);
/*** This property is obsolete. ***/
-@property (nonatomic, readonly, nullable, copy) NSString *receivingPlayerID API_DEPRECATED_WITH_REPLACEMENT("-receivingPlayer:", ios(6.0,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+@property (nonatomic, readonly, nullable, copy) NSString *receivingPlayerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKChallenge/receivingPlayer`` instead", ios(6.0,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos, watchos);
@end
-NS_CLASS_AVAILABLE(10_8, 6_0) __WATCHOS_PROHIBITED
+API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface GKScoreChallenge : GKChallenge
/// The score to meet to satisfy this challenge
-@property (nonatomic, readonly, nullable, retain) GKScore *score API_DEPRECATED_WITH_REPLACEMENT("-leaderboardEntry:", ios(6.0, 17.4), macos(10.8, 14.4), tvos(9.0, 17.4), visionos(1.0, 1.1));
+@property (nonatomic, readonly, nullable, retain) GKScore *score API_DEPRECATED_WITH_REPLACEMENT("Use ``GKChallenge/leaderboardEntry`` instead", ios(6.0, 17.4), macos(10.8, 14.4), tvos(9.0, 17.4), visionos(1.0, 1.1)) API_UNAVAILABLE(watchos);
/// The leaderboard entry to meet to satisfy this challenge
-@property (nonatomic, readonly, nullable, retain) GKLeaderboardEntry *leaderboardEntry API_AVAILABLE(ios(17.4), macos(14.4), tvos(17.4));
+@property (nonatomic, readonly, nullable, retain) GKLeaderboardEntry *leaderboardEntry API_AVAILABLE(ios(17.4), macos(14.4), tvos(17.4)) API_UNAVAILABLE(watchos);
@end
-NS_CLASS_AVAILABLE(10_8, 6_0) __WATCHOS_PROHIBITED
+API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface GKAchievementChallenge : GKChallenge
/// The achievement to achieve to satisfy this challenge
@@ -70,48 +70,48 @@
@end
-#if !TARGET_OS_WATCH
+API_UNAVAILABLE_BEGIN(watchos)
/// 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 (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 API_DEPRECATED_WITH_REPLACEMENT("-reportLeaderboardScores:withEligibleChallenges:withCompletionHandler", ios(6.0,14.0), macos(10.10,11.0));
++ (void)reportScores:(NSArray<GKScore *> *)scores withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use ``GKScore/report(_:withEligibleChallenges:withCompletionHandler:)`` instead.", ios(6.0,14.0), macos(10.10,11.0));
-+ (void)reportLeaderboardScores:(NSArray<GKLeaderboardScore *> *)scores withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(11_0, 14_0);
++ (void)reportLeaderboardScores:(NSArray<GKLeaderboardScore *> *)scores withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@interface GKAchievement (GKChallenge)
/// Given a list of players, return a subset of that list containing only players that are eligible to receive a challenge for the achievement.
-- (void)selectChallengeablePlayers:(NSArray<GKPlayer *> *)players withCompletionHandler:(void(^ __nullable)(NSArray<GKPlayer *> * __nullable challengeablePlayers, NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 8_0);
+- (void)selectChallengeablePlayers:(NSArray<GKPlayer *> *)players withCompletionHandler:(void(^ __nullable)(NSArray<GKPlayer *> * __nullable challengeablePlayers, NSError * __nullable error))completionHandler API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// Use this alternative to reportAchievements:withCompletionHandler: to allow only certain specific challenges to be completed. Pass nil to avoid completing any challenges.
-+ (void)reportAchievements:(NSArray<GKAchievement *> *)achievements withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 7_0);
++ (void)reportAchievements:(NSArray<GKAchievement *> *)achievements withEligibleChallenges:(NSArray<GKChallenge *> *)challenges withCompletionHandler:(void(^ __nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
@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 API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completionHandler:", ios(6.0,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+- (void)issueChallengeToPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completionHandler:)`` method of the ``GKAchievement`` class instead.", ios(6.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
@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 API_DEPRECATED_WITH_REPLACEMENT("-challengeComposeControllerWithMessage:players:completionHandler:", ios(6.0,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+- (void)issueChallengeToPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completionHandler:)`` method of the ``GKAchievement`` class instead.", ios(6.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
/*** 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 API_DEPRECATED_WITH_REPLACEMENT("-selectChallengeablePlayers:", ios(6.0,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+- (void)selectChallengeablePlayerIDs:(nullable NSArray<NSString *> *)playerIDs withCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable challengeablePlayerIDs, NSError * __nullable error))completionHandler API_DEPRECATED("This method is obsolete.", ios(6.0,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
@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 (^GKChallengeComposeCompletionBlock)(UIViewController *composeController, BOOL didIssueChallenge, NSArray<NSString *> * __nullable sentPlayerIDs) API_DEPRECATED_WITH_REPLACEMENT("Use ``GKChallengeComposeHandler`` instead.", ios(8.0, 17.0), tvos(9.0, 17.0));
typedef void (^GKChallengeComposeHandler)(UIViewController *composeController, BOOL didIssueChallenge, NSArray<GKPlayer *> * __nullable sentPlayers) API_AVAILABLE(ios(17.0), tvos(17.0));
#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 (^GKChallengeComposeCompletionBlock)(NSViewController *composeController, BOOL didIssueChallenge, NSArray<NSString *> * __nullable sentPlayerIDs) API_DEPRECATED_WITH_REPLACEMENT("Use ``GKChallengeComposeHandler`` instead.", macos(10.10, 14.0));
typedef void (^GKChallengeComposeHandler)(NSViewController *composeController, BOOL didIssueChallenge, NSArray<GKPlayer *> * __nullable sentPlayers) API_AVAILABLE(macos(14.0));
#endif
@@ -122,10 +122,10 @@
// 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 completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", ios(8.0, 17.0), tvos(9.0, 17.0));
- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(ios(17.0), tvos(17.0));
#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 completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", macos(10.10, 14.0));
- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(macos(14.0));
#endif
@@ -135,10 +135,10 @@
// 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 completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", ios(14.0, 17.0), tvos(14.0, 17.0));
- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(ios(17.0), tvos(17.0));
#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 completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", macos(11.0, 14.0));
- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(nullable NSArray<GKPlayer *> *)players completion:(nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(macos(14.0));
#endif
@@ -150,10 +150,10 @@
// 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 completionHandler:(__nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", ios(8.0, 17.0), tvos(9.0, 17.0));
- (UIViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completion:(__nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(ios(17.0), tvos(17.0));
#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 completionHandler:(__nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", macos(10.10, 14.0));
- (NSViewController *)challengeComposeControllerWithMessage:(nullable NSString *)message players:(NSArray<GKPlayer *> *)players completion:(__nullable GKChallengeComposeHandler)completionHandler API_AVAILABLE(macos(14.0));
#endif
@@ -163,7 +163,10 @@
#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));
+- (nullable UIViewController *)challengeComposeControllerWithPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message completionHandler:(__nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", ios(7.0, 8.0), tvos(9.0, 17.0));
+#else
+/*** This method is obsolete. Calling this method does nothing and will return nil ***/
+- (nullable NSViewController *)challengeComposeControllerWithPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message completionHandler:(__nullable GKChallengeComposeCompletionBlock)completionHandler API_UNAVAILABLE(macos);
#endif
@end
@@ -172,11 +175,14 @@
#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));
+- (nullable UIViewController *)challengeComposeControllerWithPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKAchievement/challengeComposeController(withMessage:players:completion:)`` method instead.", ios(7.0, 8.0), tvos(9.0, 17.0));
+#else
+/*** This method is obsolete. Calling this method does nothing and will return nil ***/
+- (nullable NSViewController *)challengeComposeControllerWithPlayers:(nullable NSArray<NSString *> *)playerIDs message:(nullable NSString *)message completionHandler:(nullable GKChallengeComposeCompletionBlock)completionHandler API_UNAVAILABLE(macos);
#endif
@end
-#endif // TARGET_OS_WATCH
+API_UNAVAILABLE_END // watchos
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeEventHandler.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeEventHandler.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeEventHandler.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallengeEventHandler.h 2025-02-13 05:59:50
@@ -5,7 +5,7 @@
#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.
-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)
+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, watchos)
@protocol GKChallengeEventHandlerDelegate <NSObject>
@optional
@@ -33,13 +33,11 @@
@end
-#if !TARGET_OS_WATCH
-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)
+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, watchos)
/// A singleton object responsible for dispatching challenge-related events to its delegate
@interface GKChallengeEventHandler : NSObject
-+ (GKChallengeEventHandler *) challengeEventHandler NS_DEPRECATED(10_8, 10_10, 6_0, 7_0);
++ (GKChallengeEventHandler *) challengeEventHandler API_DEPRECATED("No longer supported.", ios(6.0,7.0), macos(10.8,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
-@property (nonatomic, weak) id<GKChallengeEventHandlerDelegate> delegate NS_DEPRECATED(10_8, 10_10, 6_0, 7_0); /// It is not safe to read or write this property on anything other than the main thread
+@property (nonatomic, weak) id<GKChallengeEventHandlerDelegate> delegate API_DEPRECATED("No longer supported.", ios(6.0,7.0), macos(10.8,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos); /// It is not safe to read or write this property on anything other than the main thread
@end
-#endif
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallengesViewController.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallengesViewController.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallengesViewController.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKChallengesViewController.h 2025-02-13 05:59:50
@@ -10,7 +10,7 @@
// 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)
+API_DEPRECATED("No longer supported", macos(10.8, 10.10))
@interface GKChallengesViewController : NSViewController <GKViewController> {
id _internal1,_internal2,_internal3,_internal4;
}
@@ -21,6 +21,7 @@
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
// Optional delegate
+API_DEPRECATED("No longer supported", macos(10.8, 15.4))
@protocol GKChallengesViewControllerDelegate
@required
// The challenge view has finished
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKCloudPlayer.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKCloudPlayer.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKCloudPlayer.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKCloudPlayer.h 2025-02-13 05:59:50
@@ -3,7 +3,7 @@
#import <GameKit/GKBasePlayer.h>
NS_ASSUME_NONNULL_BEGIN
-API_DEPRECATED_WITH_REPLACEMENT("GKPlayer", ios(10.0, 12.0), tvos(10.0, 12.0), macos(10.12, 10.14)) API_UNAVAILABLE(watchos)
+API_DEPRECATED_WITH_REPLACEMENT("Use ``GKPlayer`` instead.", ios(10.0, 12.0), tvos(10.0, 12.0), macos(10.12, 10.14)) API_UNAVAILABLE(watchos)
@interface GKCloudPlayer : GKBasePlayer
#if !__OBJC2__
{
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKDefines.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKDefines.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKDefines.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKDefines.h 2025-02-13 05:59:50
@@ -15,4 +15,3 @@
#endif
typedef NSDictionary<NSString *, id> GKMatchProperties API_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2), visionos(1.1));
-
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKDialogController.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKDialogController.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKDialogController.h 2024-11-10 11:51:14
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKDialogController.h 2025-02-13 05:59:50
@@ -10,9 +10,11 @@
NS_ASSUME_NONNULL_BEGIN
+API_AVAILABLE(macos(10.8)) API_UNAVAILABLE(ios, tvos, visionos, watchos)
@protocol GKViewController
@end
+API_AVAILABLE(macos(10.8)) API_UNAVAILABLE(ios, tvos, visionos, watchos)
@interface GKDialogController : NSResponder
@property (weak, nullable) IBOutlet NSWindow *parentWindow;
@@ -22,6 +24,7 @@
@end
+API_AVAILABLE(macos(10.8)) API_UNAVAILABLE(ios, tvos, visionos, watchos)
@interface GKDialogController (SharedDialogController)
+ (GKDialogController *)sharedDialogController;
@end
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKError.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKError.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKError.h 2024-11-10 11:51:13
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKError.h 2025-02-07 20:40:41
@@ -3,7 +3,7 @@
#import <Foundation/Foundation.h>
#import <GameKit/GKDefines.h>
-GK_EXTERN_WEAK NSString * __nonnull GKErrorDomain;
+GK_EXTERN_WEAK NSString * __nonnull GKErrorDomain API_AVAILABLE(ios(4.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
typedef NS_ENUM(NSInteger, GKErrorCode) {
GKErrorUnknown = 1,
@@ -16,36 +16,37 @@
GKErrorInvalidPlayer = 8,
GKErrorScoreNotSet = 9,
GKErrorParentalControlsBlocked = 10,
- GKErrorPlayerStatusExceedsMaximumLength = 11,
- GKErrorPlayerStatusInvalid = 12,
+ GKErrorPlayerStatusExceedsMaximumLength API_AVAILABLE(ios(4.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0)) = 11,
+ GKErrorPlayerStatusInvalid API_AVAILABLE(ios(4.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0)) = 12,
GKErrorMatchRequestInvalid = 13,
- GKErrorUnderage = 14,
- GKErrorGameUnrecognized = 15,
- GKErrorNotSupported = 16,
- GKErrorInvalidParameter = 17,
- GKErrorUnexpectedConnection = 18,
- GKErrorChallengeInvalid = 19,
- GKErrorTurnBasedMatchDataTooLarge = 20,
- GKErrorTurnBasedTooManySessions = 21,
- GKErrorTurnBasedInvalidParticipant = 22,
- GKErrorTurnBasedInvalidTurn = 23,
- GKErrorTurnBasedInvalidState = 24,
- GKErrorInvitationsDisabled = 25,
- GKErrorPlayerPhotoFailure = 26,
- GKErrorUbiquityContainerUnavailable = 27,
- GKErrorMatchNotConnected = 28,
- GKErrorGameSessionRequestInvalid = 29,
- GKErrorRestrictedToAutomatch = 30,
- GKErrorAPINotAvailable = 31,
- GKErrorNotAuthorized = 32,
- GKErrorConnectionTimeout = 33,
- GKErrorAPIObsolete = 34,
- GKErrorICloudUnavailable = 35,
- GKErrorLockdownMode = 36,
- GKErrorAppUnlisted = 37,
+ GKErrorUnderage API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 14,
+ GKErrorGameUnrecognized API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 15,
+ GKErrorNotSupported API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 16,
+ GKErrorInvalidParameter API_AVAILABLE(ios(4.2), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 17,
+ GKErrorUnexpectedConnection API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 18,
+ GKErrorChallengeInvalid API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 19,
+ GKErrorTurnBasedMatchDataTooLarge API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 20,
+ GKErrorTurnBasedTooManySessions API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 21,
+ GKErrorTurnBasedInvalidParticipant API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 22,
+ GKErrorTurnBasedInvalidTurn API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 23,
+ GKErrorTurnBasedInvalidState API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0)) = 24,
+ GKErrorInvitationsDisabled API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0)) = 25,
+ GKErrorPlayerPhotoFailure API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0)) = 26,
+ GKErrorUbiquityContainerUnavailable API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0)) = 27,
+ GKErrorMatchNotConnected API_AVAILABLE(ios(10.0), macos(10.12), tvos(10.0), visionos(1.0), watchos(3.0)) = 28,
+ GKErrorGameSessionRequestInvalid API_AVAILABLE(ios(10.0), macos(10.12), tvos(10.0), visionos(1.0), watchos(3.0)) = 29,
+ GKErrorRestrictedToAutomatch API_AVAILABLE(ios(13.0), macos(10.15), tvos(13.0), visionos(1.0), watchos(6.0)) = 30,
+ GKErrorAPINotAvailable API_AVAILABLE(ios(13.0), macos(10.15), tvos(13.0), visionos(1.0), watchos(6.0)) = 31,
+ GKErrorNotAuthorized API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0), watchos(7.0)) = 32,
+ GKErrorConnectionTimeout API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0), watchos(7.0)) = 33,
+ GKErrorAPIObsolete API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0), watchos(7.0)) = 34,
+ GKErrorICloudUnavailable API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1), watchos(10.2)) = 35,
+ GKErrorLockdownMode API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1), watchos(10.2)) = 36,
+ GKErrorAppUnlisted API_AVAILABLE(ios(17.4), macos(14.4), tvos(17.4), visionos(1.1), watchos(10.4)) = 37,
+ GKErrorDebugMode API_AVAILABLE(ios(18.4), macos(15.4), tvos(18.4), visionos(2.4), watchos(11.4)) = 38,
- GKErrorFriendListDescriptionMissing = 100,
- GKErrorFriendListRestricted = 101,
- GKErrorFriendListDenied = 102,
- GKErrorFriendRequestNotAvailable = 103,
-};
+ GKErrorFriendListDescriptionMissing API_AVAILABLE(ios(14.5), macos(11.3), tvos(14.5), visionos(1.0), watchos(7.4)) = 100,
+ GKErrorFriendListRestricted API_AVAILABLE(ios(14.5), macos(11.3), tvos(14.5), visionos(1.0), watchos(7.4)) = 101,
+ GKErrorFriendListDenied API_AVAILABLE(ios(14.5), macos(11.3), tvos(14.5), visionos(1.0), watchos(7.4)) = 102,
+ GKErrorFriendRequestNotAvailable API_AVAILABLE(ios(15.0), macos(12.0), tvos(15.0), visionos(1.0), watchos(8.0)) = 103,
+} API_AVAILABLE(ios(4.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKEventListener.h 2025-02-13 05:59:50
@@ -5,30 +5,32 @@
@class GKPlayer, GKChallenge;
NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0))
@protocol GKChallengeListener <NSObject>
@optional
/// Called when a player starts the game with the intent of playing a challenge, or intends to play a challenge after selecting it within the in-game Game Center UI.
/// player: The player who selected the challenge
/// challenge: The challenge which was selected
-- (void)player:(GKPlayer *)player wantsToPlayChallenge:(GKChallenge *)challenge NS_AVAILABLE(10_10, 7_0) __WATCHOS_PROHIBITED;
+- (void)player:(GKPlayer *)player wantsToPlayChallenge:(GKChallenge *)challenge API_UNAVAILABLE(watchos);
/// Called when a player has received a challenge, triggered by a push notification from the server. Received only while the game is running.
/// player: The player who received the challenge
/// challenge: The challenge which was received
-- (void)player:(GKPlayer *)player didReceiveChallenge:(GKChallenge *)challenge NS_AVAILABLE(10_10, 7_0) __WATCHOS_PROHIBITED;
+- (void)player:(GKPlayer *)player didReceiveChallenge:(GKChallenge *)challenge API_UNAVAILABLE(watchos);
/// Called when a player has completed a challenge, triggered while the game is running, or when the user has tapped a challenge notification banner while outside of the game.
/// player: The player who completed the challenge
/// challenge: The challenge which the player completed
/// friendPlayer: The friend who sent the challenge originally
-- (void)player:(GKPlayer *)player didCompleteChallenge:(GKChallenge *)challenge issuedByFriend:(GKPlayer *)friendPlayer NS_AVAILABLE(10_10, 7_0) __WATCHOS_PROHIBITED;
+- (void)player:(GKPlayer *)player didCompleteChallenge:(GKChallenge *)challenge issuedByFriend:(GKPlayer *)friendPlayer API_UNAVAILABLE(watchos);
/// Called when a player's friend has completed a challenge which the player sent to that friend. Triggered while the game is running, or when the user has tapped a challenge notification banner while outside of the game.
/// player: The player who sent the challenge originally
/// challenge: The challenge which the player created and sent
/// friendPlayer: The friend who completed the challenge
-- (void)player:(GKPlayer *)player issuedChallengeWasCompleted:(GKChallenge *)challenge byFriend:(GKPlayer *)friendPlayer NS_AVAILABLE(10_10, 7_0) __WATCHOS_PROHIBITED;
+- (void)player:(GKPlayer *)player issuedChallengeWasCompleted:(GKChallenge *)challenge byFriend:(GKPlayer *)friendPlayer API_UNAVAILABLE(watchos);
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h 2024-11-10 11:51:14
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKFriendRequestComposeViewController.h 2025-02-13 05:59:49
@@ -18,18 +18,18 @@
#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)
+API_DEPRECATED("No longer supported.", ios(4.2,10.0), macos(10.8,10.12), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos)
@interface GKFriendRequestComposeViewController : UINavigationController
@end
#else
#import <GameKit/GKDialogController.h>
NS_ASSUME_NONNULL_BEGIN
-NS_CLASS_DEPRECATED(10_8, 10_12, 4_2, 10_0)
-@interface GKFriendRequestComposeViewController : NSViewController <GKViewController>
+API_DEPRECATED("No longer supported.", ios(4.2,10.0), macos(10.8,10.12), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos)
+@interface GKFriendRequestComposeViewController : NSViewController <GKViewController>
@end
#endif
-NS_CLASS_DEPRECATED(10_8, 10_12, 4_2, 10_0) __TVOS_UNAVAILABLE
+API_DEPRECATED("No longer supported.", ios(4.2,10.0), macos(10.8,10.12), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos)
@interface GKFriendRequestComposeViewController ()
/// Get the maximum number of recipients permitted
+ (NSUInteger)maxNumberOfRecipients;
@@ -40,18 +40,18 @@
/// 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)addRecipientPlayers:(NSArray<GKPlayer *> *)players API_AVAILABLE(ios(8.0), macos(10.10), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
+- (void)addRecipientsWithPlayerIDs:(NSArray<NSString *> *)playerIDs API_DEPRECATED_WITH_REPLACEMENT("Use ``GKFriendRequestComposeViewController/addRecipientPlayers(_:)`` instead.", ios(4.2,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
- (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);
+@property (nonatomic, weak, nullable) id<GKFriendRequestComposeViewControllerDelegate> composeViewDelegate API_DEPRECATED("No longer supported.", ios(4.2,10.0), macos(10.8,10.12), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
@end
/// Optional delegate
-NS_DEPRECATED(10_8, 10_12, 4_2, 10_0) API_UNAVAILABLE(tvos)
+API_DEPRECATED("No longer supported.", ios(4.2,10.0), macos(10.8,10.12), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos)
@protocol GKFriendRequestComposeViewControllerDelegate
/// The compose view has finished
-- (void)friendRequestComposeViewControllerDidFinish:(GKFriendRequestComposeViewController *)viewController NS_DEPRECATED(10_8, 10_12, 4_2, 10_0) API_UNAVAILABLE(tvos);
+- (void)friendRequestComposeViewControllerDidFinish:(GKFriendRequestComposeViewController *)viewController API_DEPRECATED("No longer supported.", ios(4.2,10.0), macos(10.8,10.12), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h 2024-11-14 05:58:04
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameCenterViewController.h 2025-02-12 06:03:45
@@ -2,11 +2,12 @@
#import <TargetConditionals.h>
-#if !TARGET_OS_WATCH
-
#import <GameKit/GKLeaderboard.h>
#import <GameKit/GKAchievement.h>
+API_UNAVAILABLE_BEGIN(watchos)
+
+API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0))
@protocol GKGameCenterControllerDelegate;
typedef NS_ENUM(NSInteger, GKGameCenterViewControllerState) {
@@ -14,12 +15,13 @@
GKGameCenterViewControllerStateLeaderboards,
GKGameCenterViewControllerStateAchievements,
GKGameCenterViewControllerStateChallenges,
- GKGameCenterViewControllerStateLocalPlayerProfile,
- GKGameCenterViewControllerStateDashboard,
- GKGameCenterViewControllerStateLocalPlayerFriendsList
-};
+ GKGameCenterViewControllerStateLocalPlayerProfile API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0)),
+ GKGameCenterViewControllerStateDashboard API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0)),
+ GKGameCenterViewControllerStateLocalPlayerFriendsList API_AVAILABLE(ios(15.0), macos(12.0), tvos(15.0), visionos(1.0))
+} API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0));
-#if TARGET_OS_IPHONE
+#if TARGET_OS_WATCH
+#elif TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#else
#import <Cocoa/Cocoa.h>
@@ -28,12 +30,16 @@
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)
+#if TARGET_OS_WATCH
+API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0))
+@interface GKGameCenterViewController
+@end
+#elif TARGET_OS_IPHONE
+API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0))
@interface GKGameCenterViewController : UINavigationController
@end
#else
-NS_CLASS_AVAILABLE(10_9, 6_0)
+API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0))
@interface GKGameCenterViewController : NSViewController <GKViewController>
@end
#endif
@@ -45,50 +51,50 @@
/**
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);
+- (instancetype)initWithState:(GKGameCenterViewControllerState)state API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0));
/**
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);
+- (instancetype)initWithLeaderboardID:(NSString *)leaderboardID playerScope:(GKLeaderboardPlayerScope)playerScope timeScope:(GKLeaderboardTimeScope)timeScope API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0));
/**
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);
+- (instancetype)initWithLeaderboard:(GKLeaderboard *)leaderboard playerScope:(GKLeaderboardPlayerScope)playerScope API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0));
/**
Use this to display the leaderboard sets for the specified leaderboardSetID.
*/
-- (instancetype)initWithLeaderboardSetID:(NSString *)leaderboardSetID API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+- (instancetype)initWithLeaderboardSetID:(NSString *)leaderboardSetID API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), visionos(2.0));
/**
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);
+- (instancetype)initWithAchievementID:(NSString *)achievementID API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0));
/**
Use this to display the profile page associated with the specified player.
*/
-- (instancetype)initWithPlayer:(GKPlayer *)player API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+- (instancetype)initWithPlayer:(GKPlayer *)player API_AVAILABLE(ios(18.0), macos(15.0), tvos(18.0), visionos(2.0));
@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), macos(10.9, 11.0));
-@property (nonatomic, assign) GKLeaderboardTimeScope leaderboardTimeScope API_DEPRECATED_WITH_REPLACEMENT("-initWithLeaderboard:playerScope:", ios(4.1, 14.0), macos(10.8, 11.0)) __TVOS_UNAVAILABLE;
-@property (nonatomic, nullable, strong) NSString *leaderboardIdentifier API_DEPRECATED_WITH_REPLACEMENT("-initWithLeaderboard:playerScope:", ios(7.0, 14.0), tvos(9.0, 14.0), macos(10.10, 11.0));
-@property (nonatomic, nullable, strong) NSString *leaderboardCategory API_DEPRECATED_WITH_REPLACEMENT("-initWithLeaderboard:playerScope:", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+@property (assign, NS_NONATOMIC_IOSONLY) GKGameCenterViewControllerState viewState API_DEPRECATED_WITH_REPLACEMENT("Use ``GKGameCenterViewController/init(state:)`` instead.", ios(6.0, 14.0), tvos(9.0, 14.0), macos(10.9, 11.0));
+@property (nonatomic, assign) GKLeaderboardTimeScope leaderboardTimeScope API_DEPRECATED_WITH_REPLACEMENT("Use ``GKGameCenterViewController/init(leaderboardID:playerScope:timeScope:)`` instead.", ios(4.1, 14.0), macos(10.8, 11.0)) API_UNAVAILABLE(tvos);
+@property (nonatomic, nullable, strong) NSString *leaderboardIdentifier API_DEPRECATED_WITH_REPLACEMENT("Use ``GKGameCenterViewController/init(leaderboard:playerScope:)`` instead.", ios(7.0, 14.0), tvos(9.0, 14.0), macos(10.10, 11.0));
+@property (nonatomic, nullable, strong) NSString *leaderboardCategory API_DEPRECATED_WITH_REPLACEMENT("Use ``GKGameCenterViewController/init(leaderboard:playerScope:)`` instead.", ios(4.1,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
@end
@protocol GKGameCenterControllerDelegate <NSObject>
-- (void)gameCenterViewControllerDidFinish:(GKGameCenterViewController *)gameCenterViewController NS_AVAILABLE(10_9, 6_0);
+- (void)gameCenterViewControllerDidFinish:(GKGameCenterViewController *)gameCenterViewController API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
NS_ASSUME_NONNULL_END
-#endif
+API_UNAVAILABLE_END // watchos
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSession.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSession.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSession.h 2024-11-10 11:51:14
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSession.h 2025-02-07 20:54:10
@@ -8,12 +8,12 @@
typedef NS_ENUM(NSInteger, GKConnectionState) {
GKConnectionStateNotConnected,
GKConnectionStateConnected
-};
+} API_AVAILABLE(ios(10.0), macos(10.12), tvos(10.0), visionos(1.0), watchos(3.0));
typedef NS_ENUM(NSInteger, GKTransportType) {
GKTransportTypeUnreliable,
GKTransportTypeReliable
-};
+} API_AVAILABLE(ios(10.0), macos(10.12), tvos(10.0), visionos(1.0), watchos(3.0));
NS_ASSUME_NONNULL_BEGIN
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionError.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionError.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionError.h 2024-11-10 11:51:14
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionError.h 2025-02-13 05:59:49
@@ -4,7 +4,7 @@
#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), macos(10.12, 10.14)) API_UNAVAILABLE(watchos);
+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), macos(10.12, 10.14), visionos(1.0, 1.0)) API_UNAVAILABLE(watchos);
typedef NS_ENUM(NSInteger, GKGameSessionErrorCode) {
GKGameSessionErrorUnknown = 1,
@@ -23,4 +23,4 @@
GKGameSessionErrorNetworkFailure = 14,
GKGameSessionErrorCloudDriveDisabled = 15,
GKGameSessionErrorInvalidSession = 16,
-} API_DEPRECATED("GKGameSession is deprecated, use real-time and turn-based matchmaking APIs instead.", ios(10.0, 12.0), tvos(10.0, 12.0), macos(10.12, 10.14)) API_UNAVAILABLE(watchos);
+} API_DEPRECATED("GKGameSession is deprecated, use real-time and turn-based matchmaking APIs instead.", ios(10.0, 12.0), tvos(10.0, 12.0), macos(10.12, 10.14), visionos(1.0, 1.0)) API_UNAVAILABLE(watchos);
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionEventListener.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionEventListener.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionEventListener.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKGameSessionEventListener.h 2025-02-13 05:59:50
@@ -4,7 +4,7 @@
NS_ASSUME_NONNULL_BEGIN
-API_DEPRECATED_WITH_REPLACEMENT("GKLocalPlayerListener", ios(10.0, 12.0), tvos(10.0, 12.0), macos(10.12, 10.14)) API_UNAVAILABLE(watchos)
+API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLocalPlayerListener`` instead.", ios(10.0, 12.0), tvos(10.0, 12.0), macos(10.12, 10.14)) API_UNAVAILABLE(watchos)
@protocol GKGameSessionEventListener <NSObject>
@optional
- (void)session:(GKGameSession *)session didAddPlayer:(GKCloudPlayer *)player;
@@ -17,8 +17,8 @@
@end
@interface GKGameSession (GKGameSessionEventListener)
-+ (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), macos(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), macos(10.12, 10.14)) API_UNAVAILABLE(watchos);
++ (void)addEventListener:(NSObject<GKGameSessionEventListener> *)listener NS_SWIFT_NAME(add(listener:)) API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/register(_:)`` method of the ``GKLocalPlayer`` class instead.", ios(10.0, 12.0), tvos(10.0, 12.0), macos(10.12, 10.14)) API_UNAVAILABLE(watchos);
++ (void)removeEventListener:(NSObject<GKGameSessionEventListener> *)listener NS_SWIFT_NAME(remove(listener:)) API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/unregisterListener(_:)`` or ``GKLocalPlayer/unregisterAllListeners()`` methods of ``GKLocalPlayer`` instead.", ios(10.0, 12.0), tvos(10.0, 12.0), macos(10.12, 10.14)) API_UNAVAILABLE(watchos);
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h 2024-11-10 13:04:10
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboard.h 2025-02-08 02:20:20
@@ -1,8 +1,8 @@
// Copyright © Apple Inc. All rights reserved.
-#import <TargetConditionals.h>
-#import <os/lock.h>
#import <GameKit/GKPlayer.h>
+#import <GameKit/GKReleaseState.h>
+#import <TargetConditionals.h>
#if !TARGET_OS_TV
#import <Contacts/Contacts.h>
@@ -12,19 +12,18 @@
GKLeaderboardTimeScopeToday = 0,
GKLeaderboardTimeScopeWeek,
GKLeaderboardTimeScopeAllTime
-};
+} API_AVAILABLE(ios(4.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
typedef NS_ENUM(NSInteger, GKLeaderboardPlayerScope) {
GKLeaderboardPlayerScopeGlobal = 0,
GKLeaderboardPlayerScopeFriendsOnly
-};
+} API_AVAILABLE(ios(4.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
-API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), watchos(7.0))
typedef NS_ENUM(NSInteger, GKLeaderboardType)
{
GKLeaderboardTypeClassic,
GKLeaderboardTypeRecurring,
-};
+} API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0), watchos(7.0));
@class GKScore;
@class UIImage;
@@ -37,14 +36,14 @@
/// 1. Classic - Traditional, non-expiring leaderboards
/// 2. Recurring - Periodic timed leaderboards that follow a recurrence rule defined in App Store Connect.
-NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_AVAILABLE(3_0)
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKLeaderboard : NSObject
/// Localized title
@property(readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSString *title;
/// set when leaderboards have been designated a game group; set when loadLeaderboardsWithCompletionHandler has been called for leaderboards that support game groups
-@property(nonatomic, readonly, nullable, strong) NSString *groupIdentifier NS_AVAILABLE(10_9, 6_0);
+@property(nonatomic, readonly, nullable, strong) NSString *groupIdentifier API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0), watchos(3.0));
/// Leaderboard ID defined in App Store Connect that this instance is associated with
@property (strong, readonly, nonatomic) NSString *baseLeaderboardID API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), watchos(7.0));
@@ -118,57 +117,57 @@
@interface GKLeaderboard (Deprecated)
-@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *category API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *category API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLeaderboard/loadEntries(for:timeScope:range:completionHandler:)`` method instead.", ios(4.1,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
-- (nullable instancetype)initWithPlayerIDs:(nullable NSArray<NSString *> *)playerIDs API_DEPRECATED_WITH_REPLACEMENT("-loadEntriesForPlayers:timeScope:completionHandler:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+- (nullable instancetype)initWithPlayerIDs:(nullable NSArray<NSString *> *)playerIDs API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLeaderboard/loadEntries(for:timeScope:completionHandler:)`` method instead.", ios(4.1,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
-+ (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)loadCategoriesWithCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable categories, NSArray<NSString *> * __nullable titles, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLeaderboard/loadLeaderboards(completionHandler:)`` method instead.", ios(4.1,6.0), macos(10.8,10.9)) API_UNAVAILABLE(tvos);
-+ (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;
++ (void)setDefaultLeaderboard:(nullable NSString *)leaderboardIdentifier withCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/setDefaultLeaderboardIdentifier(_:completionHandler:)`` method instead.", ios(5.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
-@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), macos(10.8, 11.0), watchos(3.0, 7.0));
+@property(assign, NS_NONATOMIC_IOSONLY) GKLeaderboardTimeScope timeScope API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboard/loadEntries(for:timeScope:range:completionHandler:)`` instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macos(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_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macos(10.8, 11.0), watchos(3.0, 7.0));
+@property(assign, NS_NONATOMIC_IOSONLY) GKLeaderboardPlayerScope playerScope API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboard/loadEntries(for:timeScope:range:completionHandler:)`` instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macos(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_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(7.0, 14.0), tvos(9.0, 14.0), macos(10.10, 11.0), watchos(2.0, 7.0));
+@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *identifier API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboard/loadEntries(for:timeScope:range:completionHandler:)`` instead.", ios(7.0, 14.0), tvos(9.0, 14.0), macos(10.10, 11.0), watchos(3.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_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macos(10.8, 11.0), watchos(3.0, 7.0));
+@property(assign, NS_NONATOMIC_IOSONLY) NSRange range API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboard/loadEntries(for:timeScope:range:completionHandler:)`` instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macos(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_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macos(10.8, 11.0), watchos(3.0, 7.0));
+@property(readonly, strong, nullable, NS_NONATOMIC_IOSONLY) NSArray<GKScore *> *scores API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboard/loadEntries(for:timeScope:range:completionHandler:)`` instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macos(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_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macos(10.8, 11.0), watchos(3.0, 7.0));
+@property(readonly, assign, NS_NONATOMIC_IOSONLY) NSUInteger maxRange API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboard/loadEntries(for:timeScope:range:completionHandler:)`` instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macos(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_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macos(10.8, 11.0), watchos(3.0, 7.0));
+@property(readonly, strong, nullable, NS_NONATOMIC_IOSONLY) GKScore *localPlayerScore API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboard/loadEntries(for:timeScope:range:completionHandler:)`` instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macos(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_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.1, 14.0), tvos(9.0, 14.0), macos(10.8, 11.0), watchos(3.0, 7.0));
+@property(readonly, getter=isLoading) BOOL loading API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboard/loadEntries(for:timeScope:range:completionHandler:)`` instead.", ios(4.1, 14.0), tvos(9.0, 14.0), macos(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_WITH_REPLACEMENT("+loadLeaderboardsWithIDs:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macos(10.8, 11.0), watchos(3.0, 7.0));
+- (instancetype)init API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLeaderboard/loadLeaderboards(IDs:completionHandler:)`` method instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macos(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_WITH_REPLACEMENT("-loadEntriesForPlayers:timeScope:completionHandler:", ios(8.0, 14.0), tvos(9.0, 14.0), macos(10.10, 11.0), watchos(2.0, 7.0));
+- (instancetype)initWithPlayers:(NSArray<GKPlayer *> *)players API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLeaderboard/loadEntries(for:timeScope:completionHandler:)`` method instead.", ios(8.0, 14.0), tvos(9.0, 14.0), macos(10.10, 11.0), watchos(3.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_WITH_REPLACEMENT("-loadEntriesForPlayerScope:timeScope:range:completionHandler:", ios(4.0, 14.0), tvos(9.0, 14.0), macos(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("Use ``GKLeaderboard/loadEntries(for:timeScope:range:completionHandler:)`` instead.", ios(4.0, 14.0), tvos(9.0, 14.0), macos(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_WITH_REPLACEMENT("+loadLeaderboardsWithIDs:completionHandler:", ios(6.0, 14.0), tvos(9.0, 14.0), macos(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("Use the ``GKLeaderboard/loadLeaderboards(IDs:completionHandler:)`` method instead.", ios(6.0, 14.0), tvos(9.0, 14.0), macos(10.8, 11.0), watchos(3.0, 7.0));
@end
NS_ASSUME_NONNULL_END
@@ -179,9 +178,9 @@
// 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;
+- (void)loadImageWithCompletionHandler:(void(^__nullable)(UIImage * __nullable image, NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.8), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
#else
-- (void)loadImageWithCompletionHandler:(void(^__nullable)(NSImage * __nullable image, NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 7_0);
+- (void)loadImageWithCompletionHandler:(void(^__nullable)(NSImage * __nullable image, NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.8), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
#endif
@end
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardSet.h 2025-02-13 05:59:50
@@ -8,7 +8,7 @@
NS_ASSUME_NONNULL_BEGIN
/// GKLeaderboardSet represents the sets that leaderboards can be broken out into.
-NS_CLASS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0)
+API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKLeaderboardSet : NSObject <NSCoding, NSSecureCoding>
/// Localized set title.
@@ -26,7 +26,7 @@
/// 1. Communications problem
/// 2. Unauthenticated player
/// 3. Set not present
-+ (void)loadLeaderboardSetsWithCompletionHandler:(void(^__nullable)(NSArray<GKLeaderboardSet *> * __nullable leaderboardSets, NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 7_0);
++ (void)loadLeaderboardSetsWithCompletionHandler:(void(^__nullable)(NSArray<GKLeaderboardSet *> * __nullable leaderboardSets, NSError * __nullable error))completionHandler;
/// Loads array with all classic leaderboards and current instances of recurring leaderboards for this leaderboardSet
/// Possible reasons for error:
@@ -42,7 +42,7 @@
/// Possible reasons for error:
/// 1. Communications problem
/// 2. Unauthenticated player
-- (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), macos(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("Use the ``GKLeaderboardSet/loadLeaderboards(handler:)`` method instead.", ios(7.0, 14.0), tvos(9.0, 14.0), macos(10.10, 11.0), watchos(3.0, 7.0));
@end
NS_ASSUME_NONNULL_END
@@ -53,9 +53,9 @@
// 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;
+- (void)loadImageWithCompletionHandler:(void(^__nullable)(UIImage * __nullable image, NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
#else
-- (void)loadImageWithCompletionHandler:(void(^__nullable)(NSImage * __nullable image, NSError * __nullable error))completionHandler;
+- (void)loadImageWithCompletionHandler:(void(^__nullable)(NSImage * __nullable image, NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
#endif
@end
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardViewController.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardViewController.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardViewController.h 2024-11-10 11:51:14
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLeaderboardViewController.h 2025-02-13 05:59:49
@@ -2,15 +2,13 @@
#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
+API_DEPRECATED_WITH_REPLACEMENT("Use ``GKGameCenterViewController`` instead.", ios(4.1,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos, watchos)
@interface GKLeaderboardViewController : GKGameCenterViewController
#if !TARGET_OS_IPHONE
{
@@ -27,11 +25,10 @@
@end
-API_DEPRECATED_WITH_REPLACEMENT("GKGameCenterViewController", ios(4.1,7.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE
+API_DEPRECATED_WITH_REPLACEMENT("Use ``GKGameCenterViewController`` instead.", ios(4.1,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos, watchos)
@protocol GKLeaderboardViewControllerDelegate <NSObject>
@required
/// The leaderboard view has finished
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController;
@end
-#endif
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h 2024-11-10 11:41:39
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKLocalPlayer.h 2025-02-12 06:00:26
@@ -11,20 +11,24 @@
#if TARGET_OS_IPHONE
@class UIViewController;
+@class UIWindow;
#else
@class NSViewController;
+@class NSWindow;
#endif
+@protocol GKGameActivityListener;
+
NS_ASSUME_NONNULL_BEGIN
-NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_AVAILABLE(3_0)
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKLocalPlayer : GKPlayer
/** Obtain the primary GKLocalPlayer object.
The player is only available for offline play until logged in.
A temporary player is created if no account is set up.
*/
-@property (class, readonly, nonnull) GKLocalPlayer *local API_AVAILABLE(ios(13.0), macos(10.15), tvos(13.0)) API_UNAVAILABLE(watchos);
+@property (class, readonly, nonnull) GKLocalPlayer *local API_AVAILABLE(ios(13.0), macos(10.15), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@property (class, readonly, nonnull) GKLocalPlayer *localPlayer;
@@ -36,13 +40,13 @@
@property(readonly, getter=isUnderage, NS_NONATOMIC_IOSONLY) BOOL underage;
/// A Boolean value that declares whether or not multiplayer gaming is restricted on this device.
-@property(readonly, getter=isMultiplayerGamingRestricted, nonatomic) BOOL multiplayerGamingRestricted API_AVAILABLE(ios(13.0), macos(10.15), tvos(13.0)) API_UNAVAILABLE(watchos);
+@property(readonly, getter=isMultiplayerGamingRestricted, nonatomic) BOOL multiplayerGamingRestricted API_AVAILABLE(ios(13.0), macos(10.15), tvos(13.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// A Boolean value that declares whether personalized communication is restricted on this device. If it is restricted, the player will not be able to read or write personalized messages on game invites, challenges, or enable voice communication in multiplayer games. Note: this value will always be true when isUnderage is true.
-@property(readonly, getter=isPersonalizedCommunicationRestricted, nonatomic) BOOL personalizedCommunicationRestricted API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+@property(readonly, getter=isPersonalizedCommunicationRestricted, nonatomic) BOOL personalizedCommunicationRestricted API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#if TARGET_OS_WATCH
-@property(atomic, nullable, copy) void(^authenticateHandler)(NSError * __nullable error) __WATCHOS_AVAILABLE(3_0);
+@property(atomic, nullable, copy) void(^authenticateHandler)(NSError * __nullable error) API_AVAILABLE(watchos(3.0));
#endif
/** Asynchronously load the recent players list as an array of GKPlayer. A recent player is someone that you have played a game with or is a legacy game center friend. Calls completionHandler when finished. Error will be nil on success.
@@ -50,7 +54,7 @@
1. Communications problem
2. Unauthenticated player
*/
-- (void)loadRecentPlayersWithCompletionHandler:(void(^__nullable)(NSArray<GKPlayer *> * __nullable recentPlayers, NSError * __nullable error))completionHandler NS_AVAILABLE(10_11, 10_0) __WATCHOS_AVAILABLE(3_0);
+- (void)loadRecentPlayersWithCompletionHandler:(void(^__nullable)(NSArray<GKPlayer *> * __nullable recentPlayers, NSError * __nullable error))completionHandler API_AVAILABLE(ios(10.0), macos(10.11), tvos(10.0), visionos(1.0), watchos(3.0));
/** Asynchronously load the challengable friends list as an array of GKPlayer. A challengable player is a friend player with friend level FL1 and FL2. Calls completionHandler when finished. Error will be nil on success.
Possible reasons for error:
@@ -66,7 +70,7 @@
2. Unauthenticated player
3. Leaderboard not present
*/
-- (void)setDefaultLeaderboardIdentifier:(NSString *)leaderboardIdentifier completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)setDefaultLeaderboardIdentifier:(NSString *)leaderboardIdentifier completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
/** Load the default leaderboard identifier for the local player
@@ -75,7 +79,7 @@
2. Unauthenticated player
3. Leaderboard not present
*/
-- (void)loadDefaultLeaderboardIdentifierWithCompletionHandler:(void(^__nullable)(NSString * __nullable leaderboardIdentifier, NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)loadDefaultLeaderboardIdentifierWithCompletionHandler:(void(^__nullable)(NSString * __nullable leaderboardIdentifier, NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
/**Generates a signature allowing 3rd party server to authenticate the GKLocalPlayer
@@ -83,18 +87,17 @@
1. Communications problem
2. Unauthenticated player
*/
-- (void)fetchItemsForIdentityVerificationSignature:(void (^__nullable)(NSURL * __nullable publicKeyURL, NSData * __nullable signature, NSData * __nullable salt, uint64_t timestamp, NSError * __nullable error))completionHandler API_AVAILABLE(ios(13.5), macos(10.15.5), tvos(13.4.8), watchos(6.5));
+- (void)fetchItemsForIdentityVerificationSignature:(void (^__nullable)(NSURL * __nullable publicKeyURL, NSData * __nullable signature, NSData * __nullable salt, uint64_t timestamp, NSError * __nullable error))completionHandler API_AVAILABLE(ios(13.5), macos(10.15.5), tvos(13.4.8), visionos(1.0), watchos(6.5));
@end
-#if TARGET_OS_WATCH
+#if TARGET_OS_TV || TARGET_OS_WATCH
+API_AVAILABLE(tvos(9.0), watchos(3.0))
@protocol GKLocalPlayerListener <GKChallengeListener, GKInviteEventListener, GKTurnBasedEventListener>
@end
-#elif TARGET_OS_TV
-@protocol GKLocalPlayerListener <GKChallengeListener, GKInviteEventListener, GKTurnBasedEventListener>
-@end
#else
+API_AVAILABLE(ios(7.0), macos(10.10), visionos(1.0))
@protocol GKLocalPlayerListener <GKChallengeListener, GKInviteEventListener, GKTurnBasedEventListener, GKSavedGameListener>
@end
#endif
@@ -103,24 +106,24 @@
@interface GKLocalPlayer (GKLocalPlayerEvents)
/// A single listener may be registered once. Registering multiple times results in undefined behavior. The registered listener will receive callbacks for any selector it responds to.
-- (void)registerListener:(id<GKLocalPlayerListener>)listener NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)registerListener:(id<GKLocalPlayerListener>)listener API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
-- (void)unregisterListener:(id<GKLocalPlayerListener>)listener NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)unregisterListener:(id<GKLocalPlayerListener>)listener API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
-- (void)unregisterAllListeners NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)unregisterAllListeners API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
@end
/// Notification will be posted whenever authentication status changes.
-GK_EXTERN NSNotificationName GKPlayerAuthenticationDidChangeNotificationName NS_AVAILABLE(10_8, 4_1);
+GK_EXTERN NSNotificationName GKPlayerAuthenticationDidChangeNotificationName API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
@interface GKLocalPlayer (Deprecated)
-- (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)setDefaultLeaderboardCategoryID:(nullable NSString *)categoryID completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLocalPlayer/setDefaultLeaderboardIdentifier(_:completionHandler:)`` instead.", ios(6.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
+- (void)loadDefaultLeaderboardCategoryIDWithCompletionHandler:(void(^__nullable)(NSString * __nullable categoryID, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLocalPlayer/loadDefaultLeaderboardIdentifier(completionHandler:)`` instead.", ios(6.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
+- (void)authenticateWithCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLocalPlayer/authenticateHandler`` instead.", ios(4.1,6.0), macos(10.8,10.8)) API_UNAVAILABLE(tvos);
-- (void)loadFriendPlayersWithCompletionHandler:(void(^__nullable)(NSArray<GKPlayer *> * __nullable friendPlayers, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-loadFriends:", ios(8.0,10.0), macos(10.10,10.11));
+- (void)loadFriendPlayersWithCompletionHandler:(void(^__nullable)(NSArray<GKPlayer *> * __nullable friendPlayers, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLocalPlayer/loadFriends(_:)`` instead.", ios(8.0,10.0), macos(10.10,10.11), tvos(9.0,10.0), visionos(1.0,1.0), watchos(3.0,3.0));
/** Generates a signature allowing 3rd party server to authenticate the GKLocalPlayer
@@ -128,19 +131,20 @@
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_WITH_REPLACEMENT("-fetchItemsForIdentityVerificationSignature:completionHandler:", ios(7.0, 13.5), tvos(9.0, 13.4.8), macos(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("Use ``GKLocalPlayer/fetchItems(forIdentityVerificationSignature:)`` instead.", ios(7.0,13.5), macos(10.10,10.15.5), tvos(9.0,13.4.8), visionos(1.0,1.0), 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 API_DEPRECATED_WITH_REPLACEMENT("-loadFriends:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE NS_SWIFT_NAME(loadFriendsObsoleted(completionHandler:));;
+- (void)loadFriendsWithCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable friendIDs, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLocalPlayer/loadFriends(_:)`` instead.", ios(4.1,8.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos) NS_SWIFT_NAME(loadFriendsObsoleted(completionHandler:));
/** This property is obsolete. ***/
-@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.
+@property(nonatomic, readonly, nullable, retain) NSArray<NSString *> *friends API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLocalPlayer/loadFriendPlayers(completionHandler:)`` instead.", ios(4.1,8.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos); // Array of player identifiers of friends for the local player. Not valid until loadFriendsWithCompletionHandler: has completed.
@end
NS_ASSUME_NONNULL_BEGIN
+
typedef NS_ENUM(NSInteger, GKFriendsAuthorizationStatus) {
// User has not yet made a choice with regards to this application.
// A call to loadFriendsListWithHandler: in this state will result
@@ -162,7 +166,7 @@
// A call to loadFriends: will return the player's
// friend list via a completion block
GKFriendsAuthorizationStatusAuthorized,
-}API_AVAILABLE(ios(14.5), macos(11.3), tvos(14.5), watchos(7.3));
+} API_AVAILABLE(ios(14.5), macos(11.3), tvos(14.5), visionos(1.0), watchos(7.3));
@interface GKLocalPlayer (FriendsList)
@@ -182,7 +186,7 @@
* - User is not online
* - Unauthenticated player
*/
-- (void)loadFriendsAuthorizationStatus:(void(^)(GKFriendsAuthorizationStatus authorizationStatus, NSError * __nullable error))completionHandler API_AVAILABLE(ios(14.5), macos(11.3), tvos(14.5), watchos(7.3));
+- (void)loadFriendsAuthorizationStatus:(void(^)(GKFriendsAuthorizationStatus authorizationStatus, NSError * __nullable error))completionHandler API_AVAILABLE(ios(14.5), macos(11.3), tvos(14.5), visionos(1.0), watchos(7.3));
/*
* loadFriends:
@@ -211,7 +215,7 @@
* - User is not online
* - Unauthenticated player
*/
-- (void)loadFriends:(void(^)(NSArray<GKPlayer *> * __nullable friends, NSError * __nullable error))completionHandler API_AVAILABLE(ios(14.5), macos(11.3), tvos(14.5), watchos(7.3));
+- (void)loadFriends:(void(^)(NSArray<GKPlayer *> * __nullable friends, NSError * __nullable error))completionHandler API_AVAILABLE(ios(14.5), macos(11.3), tvos(14.5), visionos(1.0), watchos(7.3));
/*
* loadFriendsWithIdentifiers:completionHandler:
@@ -243,23 +247,21 @@
* - Unauthenticated player
* - User is not online
*/
-- (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:));
+- (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), visionos(1.0), watchos(7.3)) NS_SWIFT_NAME(loadFriends(identifiedBy:completionHandler:));
@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);
+@property(nonatomic, nullable, copy) void(^authenticateHandler)(UIViewController * __nullable viewController, NSError * __nullable error) API_AVAILABLE(ios(6.0), tvos(9.0), visionos(1.0));
#else
-@property(atomic, nullable, copy) void(^authenticateHandler)(NSViewController * __nullable viewController, NSError * __nullable error) NS_AVAILABLE_MAC(10_9);
+@property(atomic, nullable, copy) void(^authenticateHandler)(NSViewController * __nullable viewController, NSError * __nullable error) API_AVAILABLE(macos(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);
+@property (nonatomic, readonly) BOOL isPresentingFriendRequestViewController API_AVAILABLE(ios(15.0), macos(12.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
-#if TARGET_OS_IOS && !TARGET_OS_MACCATALYST
/**
* presentFriendRequestCreatorFromViewController:
*
@@ -271,9 +273,12 @@
* - 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);
+#if TARGET_OS_IPHONE
+- (BOOL)presentFriendRequestCreatorFromViewController:(UIViewController *)viewController error:(NSError **)error API_AVAILABLE(ios(15.0), visionos(1.0)) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos);
+#else
+- (BOOL)presentFriendRequestCreatorFromViewController:(NSViewController *)viewController error:(NSError **)error API_AVAILABLE(ios(15.0), visionos(1.0)) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos);
+#endif
-#elif TARGET_OS_OSX
/**
* presentFriendRequestCreatorFromWindow:
*
@@ -285,10 +290,12 @@
* - 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);
+#if TARGET_OS_OSX
+- (BOOL)presentFriendRequestCreatorFromWindow:(nullable NSWindow *)window error:(NSError **)error API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, visionos, watchos);
+#else
+- (BOOL)presentFriendRequestCreatorFromWindow:(nullable UIWindow *)window error:(NSError **)error API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, tvos, visionos, watchos);
#endif
-#endif
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatch.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatch.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatch.h 2024-11-10 11:41:39
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatch.h 2025-02-07 20:13:13
@@ -14,27 +14,27 @@
typedef NS_ENUM(NSInteger, GKMatchSendDataMode) {
GKMatchSendDataReliable, /// a.s.a.p. but requires fragmentation and reassembly for large messages, may stall if network congestion occurs
GKMatchSendDataUnreliable /// Preferred method. Best effort and immediate, but no guarantees of delivery or order; will not stall.
-} __WATCHOS_PROHIBITED;
+} API_AVAILABLE(ios(4.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
typedef NS_ENUM(NSInteger, GKPlayerConnectionState) {
GKPlayerStateUnknown, /// initial player state
GKPlayerStateConnected, /// connected to the match
GKPlayerStateDisconnected /// disconnected from the match
-};
+} API_AVAILABLE(ios(4.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
NS_ASSUME_NONNULL_BEGIN
/// GKMatch represents an active networking sessions between players. It handles network communications and can report player connection status. All matches are created by a GKMatchmaker.
-NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_PROHIBITED
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface GKMatch : NSObject
-@property(nonatomic, readonly) NSArray<GKPlayer *> *players NS_AVAILABLE(10_10, 8_0); /// all the GKPlayers in the match
+@property(nonatomic, readonly) NSArray<GKPlayer *> *players API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos); /// all the GKPlayers in the match
@property(nonatomic, nullable, weak) id<GKMatchDelegate> delegate;
@property(nonatomic, readonly) NSUInteger expectedPlayerCount;
-@property(nonatomic, nullable, readonly) GKMatchProperties *properties API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1));
-@property(nonatomic, nullable, readonly) NSDictionary<GKPlayer *, GKMatchProperties *> *playerProperties API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1));
+@property(nonatomic, nullable, readonly) GKMatchProperties *properties API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1)) API_UNAVAILABLE(watchos);
+@property(nonatomic, nullable, readonly) NSDictionary<GKPlayer *, GKMatchProperties *> *playerProperties API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1)) API_UNAVAILABLE(watchos);
/// Asynchronously send data to one or more GKPlayers. Returns YES if delivery started, NO if unable to start sending and error will be set.
-- (BOOL)sendData:(NSData *)data toPlayers:(NSArray<GKPlayer *> *)players dataMode:(GKMatchSendDataMode)mode error:(NSError * __nullable * __nullable)error NS_AVAILABLE(10_10, 8_0);
+- (BOOL)sendData:(NSData *)data toPlayers:(NSArray<GKPlayer *> *)players dataMode:(GKMatchSendDataMode)mode error:(NSError * __nullable * __nullable)error API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// Asynchronously broadcasts data to all players. Returns YES if delivery started, NO if unable to start sending and error will be set.
- (BOOL)sendDataToAllPlayers:(NSData *)data withDataMode:(GKMatchSendDataMode)mode error:(NSError * __nullable * __nullable)error;
@@ -43,52 +43,52 @@
- (void)disconnect;
/// Choose the best host from among the connected players using gathered estimates for bandwidth and packet loss. This is intended for applications that wish to implement a client-server model on top of the match. The returned player ID will be nil if the best host cannot currently be determined (e.g. players are still connecting).
-- (void)chooseBestHostingPlayerWithCompletionHandler:(void(^)(GKPlayer * __nullable player))completionHandler NS_AVAILABLE(10_10, 8_0);
+- (void)chooseBestHostingPlayerWithCompletionHandler:(void(^)(GKPlayer * __nullable player))completionHandler API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// Automatching to recreate a previous peer-to-peer match that became disconnected. A new match with the same set of players will be returned by the completion handler. All players should perform this when the match has ended for automatching to succeed. Error will be nil on success.
/// Possible reasons for error:
/// 1. Communications failure
/// 2. Timeout
-- (void)rematchWithCompletionHandler:(void(^__nullable)(GKMatch * __nullable match, NSError * __nullable error))completionHandler NS_AVAILABLE(10_9, 6_0);
+- (void)rematchWithCompletionHandler:(void(^__nullable)(GKMatch * __nullable match, NSError * __nullable error))completionHandler API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*** This method is deprecated. GKVoiceChat is no longer supported. ***/
-- (nullable GKVoiceChat *)voiceChatWithName:(NSString *)name API_DEPRECATED("No longer supported", ios(4.1, 18.0), macos(10.8, 15.0), tvos(9.0, 18.0), visionos(1.0, 2.0));
+- (nullable GKVoiceChat *)voiceChatWithName:(NSString *)name API_DEPRECATED("No longer supported", ios(4.1, 18.0), macos(10.8, 15.0), tvos(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
@end
-__WATCHOS_PROHIBITED
+API_AVAILABLE(ios(4.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@protocol GKMatchDelegate <NSObject>
@optional
/// The match received data sent from the player.
-- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromRemotePlayer:(GKPlayer *)player NS_AVAILABLE(10_10, 8_0);
-- (void)match:(GKMatch *)match didReceiveData:(NSData *)data forRecipient:(GKPlayer *)recipient fromRemotePlayer:(GKPlayer *)player NS_AVAILABLE(10_11, 9_0);
+- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromRemotePlayer:(GKPlayer *)player API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+- (void)match:(GKMatch *)match didReceiveData:(NSData *)data forRecipient:(GKPlayer *)recipient fromRemotePlayer:(GKPlayer *)player API_AVAILABLE(ios(9.0), macos(10.11), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// The player state changed (eg. connected or disconnected)
-- (void)match:(GKMatch *)match player:(GKPlayer *)player didChangeConnectionState:(GKPlayerConnectionState)state NS_AVAILABLE(10_8, 4_1);
+- (void)match:(GKMatch *)match player:(GKPlayer *)player didChangeConnectionState:(GKPlayerConnectionState)state API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// The match was unable to be established with any players due to an error.
-- (void)match:(GKMatch *)match didFailWithError:(nullable NSError *)error NS_AVAILABLE(10_8, 4_1);
+- (void)match:(GKMatch *)match didFailWithError:(nullable NSError *)error API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// This method is called when the match is interrupted; if it returns YES, a new invite will be sent to attempt reconnection. This is supported only for 1v1 games
-- (BOOL)match:(GKMatch *)match shouldReinviteDisconnectedPlayer:(GKPlayer *)player NS_AVAILABLE(10_10, 8_0);
+- (BOOL)match:(GKMatch *)match shouldReinviteDisconnectedPlayer:(GKPlayer *)player API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*** 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 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);
+- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKMatchDelegate/match(_:didReceive:fromRemotePlayer:)`` instead.", ios(4.1,8.0), macos(10.8,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
+- (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state API_DEPRECATED_WITH_REPLACEMENT("Use ``GKMatchDelegate/match(_:player:didChange:)-8ohgr`` instead.", ios(4.1,8.0), macos(10.8,10.8), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
+- (BOOL)match:(GKMatch *)match shouldReinvitePlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKMatchDelegate/match(_:shouldReinviteDisconnectedPlayer:)`` instead.", ios(5.0,8.0), macos(10.8,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
@end
-__WATCHOS_PROHIBITED
+API_UNAVAILABLE(watchos, tvos)
@interface GKMatch (Obsoleted)
/*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)chooseBestHostPlayerWithCompletionHandler:(void(^)(NSString * __nullable playerID))completionHandler API_DEPRECATED_WITH_REPLACEMENT("-chooseBestHostingPlayerWithCompletionHandler:", ios(6.0,8.0), macos(10.9,10.10)) __TVOS_UNAVAILABLE;
+- (void)chooseBestHostPlayerWithCompletionHandler:(void(^)(NSString * __nullable playerID))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatch/chooseBestHostingPlayer(completionHandler:)`` method instead.", ios(6.0,8.0), macos(10.9,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
/*** 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 API_DEPRECATED_WITH_REPLACEMENT("-sendData:toPlayers:dataMode:error:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+- (BOOL)sendData:(NSData *)data toPlayers:(NSArray<NSString *> *)playerIDs withDataMode:(GKMatchSendDataMode)mode error:(NSError **)error API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatch/sendData(toAllPlayers:with:)`` method instead.", ios(4.1,8.0), macos(10.8,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
/*** This property is obsolete. ***/
-@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
+@property(nonatomic, nullable, readonly) NSArray<NSString *> *playerIDs API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatch/players`` property instead.", ios(4.1,8.0), macos(10.8,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos); // NSStrings of player identifiers in the match
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmaker.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmaker.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmaker.h 2024-11-11 08:12:12
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmaker.h 2025-02-08 01:30:35
@@ -16,21 +16,32 @@
GKInviteRecipientResponseIncompatible = 3,
GKInviteRecipientResponseUnableToConnect = 4,
GKInviteRecipientResponseNoAnswer = 5,
-
+
// Old names
- GKInviteeResponseAccepted = GKInviteRecipientResponseAccepted,
- GKInviteeResponseDeclined = GKInviteRecipientResponseDeclined,
- GKInviteeResponseFailed = GKInviteRecipientResponseFailed,
- GKInviteeResponseIncompatible = GKInviteRecipientResponseIncompatible,
- GKInviteeResponseUnableToConnect = GKInviteRecipientResponseUnableToConnect,
- GKInviteeResponseNoAnswer = GKInviteRecipientResponseNoAnswer,
-};
+ GKInviteeResponseAccepted API_DEPRECATED_WITH_REPLACEMENT("Use ``GKInviteRecipientResponse/accepted`` instead.", ios(6.0,18.4), macos(10.8,15.4), tvos(9.0,18.4), watchos(3.0,11.4), visionos(1.0,2.4))
+ = GKInviteRecipientResponseAccepted,
-typedef GKInviteRecipientResponse GKInviteeResponse API_DEPRECATED_WITH_REPLACEMENT("GKInviteRecipientResponse", ios(6.0,17.0), macos(10.8,14.0), tvos(9.0,17.0), watchos(3.0,10.0));
+ GKInviteeResponseDeclined API_DEPRECATED_WITH_REPLACEMENT("Use ``GKInviteRecipientResponse/declined`` instead.", ios(6.0,18.4), macos(10.8,15.4), tvos(9.0,18.4), watchos(3.0,11.4), visionos(1.0,2.4))
+ = GKInviteRecipientResponseDeclined,
+ GKInviteeResponseFailed API_DEPRECATED_WITH_REPLACEMENT("Use ``GKInviteRecipientResponse/failed`` instead.", ios(6.0,18.4), macos(10.8,15.4), tvos(9.0,18.4), watchos(3.0,11.4), visionos(1.0,2.4))
+ = GKInviteRecipientResponseFailed,
+
+ GKInviteeResponseIncompatible API_DEPRECATED_WITH_REPLACEMENT("Use ``GKInviteRecipientResponse/incompatible`` instead.", ios(6.0,18.4), macos(10.8,15.4), tvos(9.0,18.4), watchos(3.0,11.4), visionos(1.0,2.4))
+ = GKInviteRecipientResponseIncompatible,
+
+ GKInviteeResponseUnableToConnect API_DEPRECATED_WITH_REPLACEMENT("Use ``GKInviteRecipientResponse/unableToConnect`` instead.", ios(6.0,18.4), macos(10.8,15.4), tvos(9.0,18.4), watchos(3.0,11.4), visionos(1.0,2.4))
+ = GKInviteRecipientResponseUnableToConnect,
+
+ GKInviteeResponseNoAnswer API_DEPRECATED_WITH_REPLACEMENT("Use ``GKInviteRecipientResponse/noAnswer`` instead.", ios(6.0,18.4), macos(10.8,15.4), tvos(9.0,18.4), watchos(3.0,11.4), visionos(1.0,2.4))
+ = GKInviteRecipientResponseNoAnswer,
+} API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
+
+typedef GKInviteRecipientResponse GKInviteeResponse API_DEPRECATED_WITH_REPLACEMENT("Use ``GKInviteRecipientResponse`` instead.", ios(6.0,17.0), macos(10.8,14.0), tvos(9.0,17.0), watchos(3.0,10.0), visionos(1.0,1.0));
+
NS_ASSUME_NONNULL_BEGIN
/// GKMatchRequest represents the parameters needed to create the match.
-NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_AVAILABLE(3_0)
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKMatchRequest : NSObject
/// Minimum number of players for the match
@@ -46,34 +57,34 @@
@property(assign) uint32_t playerAttributes;
/// Array of GKPlayers to invite, or nil if none. This array can also include local guest players.
-@property(retain, nullable) NSArray<GKPlayer *> *recipients NS_AVAILABLE(10_10, 8_0);
+@property(retain, nullable) NSArray<GKPlayer *> *recipients API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
/// Message sent to invited players, may be modified if using GKMatchmakerViewController
/// Will return nil if the player is underage or restricted.
-@property(copy, nullable) NSString *inviteMessage NS_AVAILABLE(10_8, 6_0);
+@property(copy, nullable) NSString *inviteMessage API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
/// Default number of players to use during matchmaking. If not set we will default to the number that the player previously set for this game, or maxPlayers.
-@property(assign) NSUInteger defaultNumberOfPlayers NS_AVAILABLE(10_8, 6_0);
+@property(assign) NSUInteger defaultNumberOfPlayers API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
/// 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_WITH_REPLACEMENT("-[GKMatchmakerViewController matchmakingMode:]", ios(13.0, 14.0), tvos(13.0, 14.0), macos(10.15, 11.0));
+@property(assign) BOOL restrictToAutomatch API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatchmakerViewController/matchmakingMode`` property instead.", ios(13.0, 14.0), tvos(13.0, 14.0), macos(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) API_DEPRECATED_WITH_REPLACEMENT("recipientResponseHandler", ios(6.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
+@property(copy, nullable) void(^recipientResponseHandler)(GKPlayer *player, GKInviteRecipientResponse response) API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
+@property(copy, nullable) void(^inviteeResponseHandler)(NSString *playerID, GKInviteeResponse response) API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatchRequest/recipientResponseHandler`` property instead.", ios(6.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
typedef NS_ENUM(NSUInteger, GKMatchType) {
GKMatchTypePeerToPeer,
GKMatchTypeHosted,
GKMatchTypeTurnBased
-};
+} API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
/// To determine the maximum allowed players for each type of match supported.
-+ (NSUInteger)maxPlayersAllowedForMatchOfType:(GKMatchType)matchType NS_AVAILABLE(10_9, 6_0);
++ (NSUInteger)maxPlayersAllowedForMatchOfType:(GKMatchType)matchType API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0), watchos(3.0));
-@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
+@property(retain, nullable) NSArray<NSString *> *playersToInvite API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatchRequest/recipients`` property instead.", ios(4.1,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos); // Array of player IDs to invite, or nil if none
/// The name of the queue, if rule-based matchmaking is used.
@property(copy, nullable) NSString *queueName API_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2), visionos(1.1));
@@ -87,36 +98,37 @@
@end
/// GKInvite represents an accepted game invite, it is used to create a GKMatchmakerViewController
-NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_PROHIBITED
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface GKInvite : NSObject
-@property(readonly, retain, NS_NONATOMIC_IOSONLY) GKPlayer *sender NS_AVAILABLE(10_10, 8_0);
+@property(readonly, retain, NS_NONATOMIC_IOSONLY) GKPlayer *sender API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@property(readonly, getter=isHosted, NS_NONATOMIC_IOSONLY) BOOL hosted;
/// player group from inviter's match request
-@property(readonly, NS_NONATOMIC_IOSONLY) NSUInteger playerGroup NS_AVAILABLE(10_9, 6_0);
+@property(readonly, NS_NONATOMIC_IOSONLY) NSUInteger playerGroup API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// player attributes from inviter's match request
-@property(readonly, NS_NONATOMIC_IOSONLY) uint32_t playerAttributes NS_AVAILABLE(10_9, 6_0);
+@property(readonly, NS_NONATOMIC_IOSONLY) uint32_t playerAttributes API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*** This property is obsolete. ***/
-@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);
+@property(readonly, retain, NS_NONATOMIC_IOSONLY) NSString *inviter API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKInvite/sender`` property instead.", ios(4.1,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos, watchos);
@end
/// GKInviteEventListener uses the GKLocalPlayerListener mechanism on GKLocalPlayer to listen to the two kinds of invite events that a game must respond to
+API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0))
@protocol GKInviteEventListener
@optional
/// player:didAcceptInvite: gets called when another player accepts the invite from the local player
-- (void)player:(GKPlayer *)player didAcceptInvite:(GKInvite *)invite NS_AVAILABLE(10_10, 7_0) __WATCHOS_PROHIBITED;
+- (void)player:(GKPlayer *)player didAcceptInvite:(GKInvite *)invite API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// didRequestMatchWithRecipients: gets called when the player chooses to play with another player from Game Center and it launches the game to start matchmaking
-- (void)player:(GKPlayer *)player didRequestMatchWithRecipients:(NSArray<GKPlayer *> *)recipientPlayers NS_AVAILABLE(10_10, 8_0) __WATCHOS_PROHIBITED;
+- (void)player:(GKPlayer *)player didRequestMatchWithRecipients:(NSArray<GKPlayer *> *)recipientPlayers API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray<NSString *> *)playerIDsToInvite API_DEPRECATED_WITH_REPLACEMENT("-player:didRequestMatchWithRecipients:", ios(7.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
+- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray<NSString *> *)playerIDsToInvite API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKInviteEventListener/player(_:didRequestMatchWithRecipients:)`` method instead.", ios(7.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
@end
-API_AVAILABLE_BEGIN(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1)) __WATCHOS_PROHIBITED
+API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1)) API_UNAVAILABLE(watchos)
@interface GKMatchedPlayers : NSObject
@property(nonatomic, nullable, readonly) GKMatchProperties *properties;
@@ -124,10 +136,9 @@
@property(nonatomic, nullable, readonly) NSDictionary<GKPlayer *, GKMatchProperties *> *playerProperties;
@end
-API_AVAILABLE_END
/// GKMatchmaker is a singleton object to manage match creation from invites and automatching.
-NS_CLASS_AVAILABLE(10_8, 4_1) __WATCHOS_PROHIBITED
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface GKMatchmaker : NSObject
/// The shared matchmaker
@@ -137,7 +148,7 @@
/// Possible reasons for error:
/// 1. Communications failure
/// 2. Invite cancelled
-- (void)matchForInvite:(GKInvite *)invite completionHandler:(void(^__nullable)(GKMatch * __nullable match, NSError * __nullable error))completionHandler NS_AVAILABLE(10_9, 6_0);
+- (void)matchForInvite:(GKInvite *)invite completionHandler:(void(^__nullable)(GKMatch * __nullable match, NSError * __nullable error))completionHandler API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// Automatching or invites to find a peer-to-peer match for the specified request. Error will be nil on success:
/// Possible reasons for error:
@@ -153,10 +164,10 @@
/// 1. Communications failure
/// 2. Unauthenticated player
/// 3. Timeout
-- (void)findPlayersForHostedRequest:(GKMatchRequest *)request withCompletionHandler:(void(^__nullable)(NSArray<GKPlayer *> * __nullable players, NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 8_0);
+- (void)findPlayersForHostedRequest:(GKMatchRequest *)request withCompletionHandler:(void(^__nullable)(NSArray<GKPlayer *> * __nullable players, NSError * __nullable error))completionHandler API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// Automatching or invites for host-client rule-based match request.
-- (void)findMatchedPlayers:(GKMatchRequest *)request withCompletionHandler:(void(^)(GKMatchedPlayers * __nullable matchedPlayers, NSError * __nullable error))completionHandler API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1));
+- (void)findMatchedPlayers:(GKMatchRequest *)request withCompletionHandler:(void(^)(GKMatchedPlayers * __nullable matchedPlayers, NSError * __nullable error))completionHandler API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1)) API_UNAVAILABLE(watchos);
/// 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:
@@ -168,10 +179,10 @@
- (void)cancel;
/// Cancel a pending invitation to a player
-- (void)cancelPendingInviteToPlayer:(GKPlayer *)player NS_AVAILABLE(10_10, 8_0);
+- (void)cancelPendingInviteToPlayer:(GKPlayer *)player API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// Call this when finished with all programmatic P2P invites/matchmaking, for compatability with connected players using GKMatchmakerViewController.
-- (void)finishMatchmakingForMatch:(GKMatch *)match NS_AVAILABLE(10_9, 6_0);
+- (void)finishMatchmakingForMatch:(GKMatch *)match API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// Query the server for recent activity in the specified player group. A larger value indicates that a given group has seen more recent activity. Error will be nil on success.
/// Possible reasons for error:
@@ -184,39 +195,35 @@
- (void)queryActivityWithCompletionHandler:(void(^__nullable)(NSInteger activity, NSError * __nullable error))completionHandler;
/// Query the server for recent activity for the specified queue.
-- (void)queryQueueActivity:(NSString *)queueName withCompletionHandler:(void(^__nullable)(NSInteger activity, NSError * __nullable error))completionHandler API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1));
+- (void)queryQueueActivity:(NSString *)queueName withCompletionHandler:(void(^__nullable)(NSInteger activity, NSError * __nullable error))completionHandler API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1)) API_UNAVAILABLE(watchos);
/// Start browsing for nearby players that can be invited to a match. The reachableHandler will be called for each player found with a compatible game. It may be called more than once for the same player if that player ever becomes unreachable (e.g. moves out of range). You should call stopBrowsingForNearbyPlayers when finished browsing.
-- (void)startBrowsingForNearbyPlayersWithHandler:(void(^__nullable)(GKPlayer *player, BOOL reachable))reachableHandler NS_AVAILABLE(10_10, 8_0);
+- (void)startBrowsingForNearbyPlayersWithHandler:(void(^__nullable)(GKPlayer *player, BOOL reachable))reachableHandler API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// Stop browsing for nearby players.
-- (void)stopBrowsingForNearbyPlayers NS_AVAILABLE(10_9, 6_0);
+- (void)stopBrowsingForNearbyPlayers API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
-#if !TARGET_OS_TV && !TARGET_OS_WATCH
/// Activate a group activity by Game Center for your game, which allows people in the FaceTime call to join the local player's game. The handler will be called for each player who joined from the activity.
-- (void)startGroupActivityWithPlayerHandler:(void(^)(GKPlayer *player))handler API_AVAILABLE(ios(16.2), macos(13.1)) NS_SWIFT_DISABLE_ASYNC;
+- (void)startGroupActivityWithPlayerHandler:(void(^)(GKPlayer *player))handler API_AVAILABLE(ios(16.2), macos(13.1), visionos(1.0)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_DISABLE_ASYNC;
/// End the group activity created by Game Center for your game, which was activated by the local player.
-- (void)stopGroupActivity API_AVAILABLE(ios(16.2), macos(13.1));
-#endif
+- (void)stopGroupActivity API_AVAILABLE(ios(16.2), macos(13.1), visionos(1.0)) API_UNAVAILABLE(tvos, watchos);
@end
-__WATCHOS_PROHIBITED
@interface GKMatchmaker (GKDeprecated)
-@property(nonatomic, nullable, copy) void(^inviteHandler)(GKInvite *acceptedInvite, NSArray * __nullable playerIDsToInvite) API_DEPRECATED("Use registerListener on GKLocalPlayer to register an object that implements the GKInviteEventListener instead.", ios(4.1,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
+@property(nonatomic, nullable, copy) void(^inviteHandler)(GKInvite *acceptedInvite, NSArray * __nullable playerIDsToInvite) API_DEPRECATED("Use the ``GKLocalPlayer/register(_:)`` method instead.", ios(4.1,7.0), macos(10.8,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
@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 API_DEPRECATED_WITH_REPLACEMENT("-startBrowsingForNearbyPlayersWithHandler:", ios(6.0,8.0), macos(10.9,10.10)) __TVOS_UNAVAILABLE;
+- (void)startBrowsingForNearbyPlayersWithReachableHandler:(void(^__nullable)(NSString *playerID, BOOL reachable))reachableHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatchmaker/startBrowsingForNearbyPlayers(handler:)`` method instead.", ios(6.0,8.0), macos(10.9,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
/*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (void)cancelInviteToPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("-cancelPendingInviteToPlayer:", ios(6.0,8.0), macos(10.9,10.10)) __TVOS_UNAVAILABLE;
+- (void)cancelInviteToPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatchmaker/cancelPendingInvite(to:)`` method instead.", ios(6.0,8.0), macos(10.9,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
/*** 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 API_DEPRECATED_WITH_REPLACEMENT("-findPlayersForHostedRequest:", ios(4.1,8.0), macos(10.8,10.10)) __TVOS_UNAVAILABLE;
+- (void)findPlayersForHostedMatchRequest:(GKMatchRequest *)request withCompletionHandler:(void(^__nullable)(NSArray<NSString *> * __nullable playerIDs, NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatchmaker/findPlayers(forHostedRequest:withCompletionHandler:)`` method instead.", ios(4.1,8.0), macos(10.8,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmakerViewController.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmakerViewController.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmakerViewController.h 2024-11-10 12:34:53
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKMatchmakerViewController.h 2025-02-13 05:59:49
@@ -13,8 +13,8 @@
GKMatchmakingModeDefault = 0,
GKMatchmakingModeNearbyOnly = 1,
GKMatchmakingModeAutomatchOnly = 2,
- GKMatchmakingModeInviteOnly API_AVAILABLE(ios(15), macos(12), tvos(15)) = 3 ,
-};
+ GKMatchmakingModeInviteOnly API_AVAILABLE(ios(15.0), macos(12.0), tvos(15.0), visionos(1.0)) = 3 ,
+} API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0));
/// View controller to invite friends, respond to invites, and perform automatching. Present modally from the top view controller.
#if TARGET_OS_IPHONE
@@ -22,13 +22,13 @@
#import <UIKit/UINavigationController.h> // UINavigationController
NS_ASSUME_NONNULL_BEGIN
-NS_CLASS_AVAILABLE(10_8, 4_1)
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface GKMatchmakerViewController : UINavigationController
#else
#import <GameKit/GKDialogController.h>
NS_ASSUME_NONNULL_BEGIN
-NS_CLASS_AVAILABLE(10_8, 4_1)
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface GKMatchmakerViewController : NSViewController <GKViewController>
#endif
@property(nonatomic, nullable, weak) id<GKMatchmakerViewControllerDelegate> matchmakerDelegate;
@@ -36,7 +36,7 @@
/// 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;
+@property(nonatomic, assign) GKMatchmakingMode matchmakingMode API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0));
/// 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.
@@ -50,41 +50,40 @@
/// 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)addPlayersToMatch:(GKMatch *)match API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0));
-- (void)setHostedPlayer:(GKPlayer *)player didConnect:(BOOL)connected NS_AVAILABLE(10_10, 8_0);
+- (void)setHostedPlayer:(GKPlayer *)player didConnect:(BOOL)connected API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.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.
+@property(nonatomic, nullable, copy) NSString *defaultInvitationMessage API_DEPRECATED("No longer supported.", ios(5.0,7.0), macos(10.8,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos); // 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;
+- (void)setHostedPlayer:(NSString *)playerID connected:(BOOL)connected API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatchmakerViewController/setHostedPlayer(_:didConnect:)`` method instead.", ios(5.0,8.0), macos(10.8,10.10), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
-#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
+- (void)setHostedPlayerReady:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKMatchmakerViewController/setHostedPlayer(_:connected:)`` method instead.", ios(4.1,5.0), visionos(1.0,1.0)) API_UNAVAILABLE(macos, tvos, watchos);
@end
+API_AVAILABLE(ios(4.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@protocol GKMatchmakerViewControllerDelegate <NSObject>
@required
/// The user has cancelled matchmaking
-- (void)matchmakerViewControllerWasCancelled:(GKMatchmakerViewController *)viewController NS_AVAILABLE(10_8, 4_1);
+- (void)matchmakerViewControllerWasCancelled:(GKMatchmakerViewController *)viewController API_AVAILABLE(ios(4.1));
/// Matchmaking has failed with an error
-- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFailWithError:(NSError *)error NS_AVAILABLE(10_8, 4_1);
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFailWithError:(NSError *)error API_AVAILABLE(ios(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);
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match API_AVAILABLE(ios(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);
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindHostedPlayers:(NSArray<GKPlayer *> *)players API_AVAILABLE(ios(8.0), macos(10.10));
/// 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);
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController hostedPlayerDidAccept:(GKPlayer *)player API_AVAILABLE(ios(8.0), macos(10.10));
/// The game should provide `GKMatchProperties` for the `GKPlayer` that has been invited.
/// If implemented, this function must call `completionHandler`: failing to do so will hang matchmaking.
@@ -93,8 +92,8 @@
withCompletionHandler:(void(^)(GKMatchProperties *recipientProperties))completionHandler API_AVAILABLE(ios(17.2), macos(14.2), tvos(17.2), visionos(1.1));
/*** 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);
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindPlayers:(NSArray<NSString *> *)playerIDs API_DEPRECATED_WITH_REPLACEMENT("Use ``GKMatchmakerViewControllerDelegate/matchmakerViewController(_:didFindHostedPlayers:)`` instead.", ios(4.1,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
+- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didReceiveAcceptFromHostedPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKMatchmakerViewControllerDelegate/matchmakerViewController(_:hostedPlayerDidAccept:)`` instead.", ios(5.0,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos);
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPeerPickerController.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPeerPickerController.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPeerPickerController.h 2024-11-10 13:56:33
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPeerPickerController.h 2025-02-08 02:20:18
@@ -19,15 +19,15 @@
*/
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);
+ GKPeerPickerConnectionTypeOnline = 1 << 0, // Online (Internet) based multiplayer connection
+ GKPeerPickerConnectionTypeNearby = 1 << 1 // Nearby (Bluetooth) based multiplayer connection
+} API_DEPRECATED("No longer supported", ios(3.0, 7.0), visionos(1.0, 1.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
+API_DEPRECATED("Use MCBrowserViewController along with MCBrowserViewControllerDelegate from the MultipeerConnectivity framework.", ios(3.0,7.0)) API_UNAVAILABLE(tvos)
@protocol GKPeerPickerControllerDelegate <NSObject>
@optional
@@ -36,23 +36,23 @@
#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;
+- (void)peerPickerController:(GKPeerPickerController *)picker didSelectConnectionType:(GKPeerPickerConnectionType)type;
/* 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;
+- (GKSession *)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type;
/* Notifies delegate that the peer was connected to a GKSession.
*/
-- (void)peerPickerController:(GKPeerPickerController *)picker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session __TVOS_UNAVAILABLE;
+- (void)peerPickerController:(GKPeerPickerController *)picker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session;
#pragma clang diagnostic pop
/* Notifies delegate that the user cancelled the picker.
*/
-- (void)peerPickerControllerDidCancel:(GKPeerPickerController *)picker __TVOS_UNAVAILABLE;
+- (void)peerPickerControllerDidCancel:(GKPeerPickerController *)picker;
@end
@@ -63,7 +63,7 @@
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
+API_DEPRECATED("Use MCBrowserViewController from the MultipeerConnectivity framework.", ios(3.0,7.0)) API_UNAVAILABLE(tvos)
@interface GKPeerPickerController : NSObject
/* An integer bit mask that determines what connection types are supported by the application, and displays system-supplied UI as appropriate.
@@ -74,7 +74,7 @@
/* 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;
+@property(nonatomic, nullable, weak) id<GKPeerPickerControllerDelegate> delegate API_DEPRECATED("No longer supported", ios(3.0,7.0), visionos(1.0,1.0)) API_UNAVAILABLE(macos, tvos, watchos);
/* Show the picker.
*/
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h 2024-11-10 11:41:39
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPlayer.h 2025-02-12 05:26:14
@@ -14,8 +14,7 @@
/// Deprecated methods that previously returned player IDs will return GKPlayerIDNoLongerAvailable instead.
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)
-
+API_AVAILABLE(ios(4.1), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKPlayer : GKBasePlayer
/// This convenience method checks if the gamePlayerID and the teamPlayerID (scopedIDs) are persistent or unique for the instantiation of this app.
@@ -28,16 +27,16 @@
@property(NS_NONATOMIC_IOSONLY, readonly, nonnull, retain) NSString *teamPlayerID API_AVAILABLE(ios(12.4), macos(10.14.6), tvos(12.4)) API_UNAVAILABLE(watchos);
/// This is player's alias to be displayed. The display name may be very long, so be sure to use appropriate string truncation API when drawing.
-@property(readonly, nonnull, NS_NONATOMIC_IOSONLY) NSString *displayName NS_AVAILABLE(10_8, 6_0) __WATCHOS_AVAILABLE(3_0);
+@property(readonly, nonnull, NS_NONATOMIC_IOSONLY) NSString *displayName API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
/// The alias property contains the player's nickname. When you need to display the name to the user, consider using displayName instead. The nickname is unique but not invariant: the player may change their nickname. The nickname may be very long, so be sure to use appropriate string truncation API when drawing.
@property(readonly, copy, nonnull, NS_NONATOMIC_IOSONLY) NSString *alias;
-+ (nonnull instancetype)anonymousGuestPlayerWithIdentifier:(nonnull NSString *)guestIdentifier NS_AVAILABLE(10_11, 9_0) __WATCHOS_PROHIBITED;
-@property(readonly, nullable, NS_NONATOMIC_IOSONLY) NSString *guestIdentifier NS_AVAILABLE(10_11, 9_0) __WATCHOS_PROHIBITED;
++ (nonnull instancetype)anonymousGuestPlayerWithIdentifier:(nonnull NSString *)guestIdentifier API_AVAILABLE(ios(9.0), macos(10.11), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+@property(readonly, nullable, NS_NONATOMIC_IOSONLY) NSString *guestIdentifier API_AVAILABLE(ios(9.0), macos(10.11), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
// This convenience method checks if you can invite the player to multiplayer game.
-@property(readonly, NS_NONATOMIC_IOSONLY) BOOL isInvitable API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) __WATCHOS_PROHIBITED;
+@property(readonly, NS_NONATOMIC_IOSONLY) BOOL isInvitable API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) API_UNAVAILABLE(watchos);
@end
#if !TARGET_OS_WATCH
@@ -48,15 +47,15 @@
typedef NS_ENUM(NSInteger, GKPhotoSize) {
GKPhotoSizeSmall = 0,
GKPhotoSizeNormal,
-};
+} API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0));
// Asynchronously load the player's photo. Error will be nil on success.
// Possible reasons for error:
// 1. Communications failure
#if TARGET_OS_IPHONE
-- (void)loadPhotoForSize:(GKPhotoSize)size withCompletionHandler:(void(^__nullable)(UIImage * __nullable photo, NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 5_0);
+- (void)loadPhotoForSize:(GKPhotoSize)size withCompletionHandler:(void(^__nullable)(UIImage * __nullable photo, NSError * __nullable error))completionHandler API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
#else
-- (void)loadPhotoForSize:(GKPhotoSize)size withCompletionHandler:(void(^__nullable)(NSImage * __nullable photo, NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 5_0);
+- (void)loadPhotoForSize:(GKPhotoSize)size withCompletionHandler:(void(^__nullable)(NSImage * __nullable photo, NSError * __nullable error))completionHandler API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
#endif
@end
@@ -64,17 +63,17 @@
#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;
+GK_EXTERN_WEAK NSNotificationName __nonnull GKPlayerDidChangeNotificationName API_AVAILABLE(ios(4.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
@interface GKPlayer (Deprecated)
-@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),macos(10.8,10.15));
+@property(readonly, NS_NONATOMIC_IOSONLY) BOOL isFriend API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLocalPlayer/loadFriendPlayers(completionHandler:)`` instead.", ios(4.1,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos); // True if this player is a friend of the local player
+@property(readonly, nonnull, retain, NS_NONATOMIC_IOSONLY) NSString *playerID API_DEPRECATED("Use ``GKPlayer/gamePlayerID`` or ``GKPlayer/teamPlayerID`` instead.", ios(4.1,13.0), tvos(9.0,13.0), macos(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_WITH_REPLACEMENT("-[GKLocalPlayer loadFriendsWithIdentifiers:completionHandler:]",ios(4.1,14.5),tvos(9.0,14.5),macos(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("Use ``GKLocalPlayer/loadFriends(identifiedBy:completionHandler:)`` instead.", ios(4.1,14.5), tvos(9.0,14.5), macos(10.8,11.3), watchos(3.0,7.4));
@end
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPublicConstants.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPublicConstants.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPublicConstants.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPublicConstants.h 2025-02-13 05:59:50
@@ -8,7 +8,7 @@
{
GKSendDataReliable, /// a.s.a.p. but requires fragmentation and reassembly for large messages, may stall if network congestion occurs
GKSendDataUnreliable, /// best effort and immediate, but no guarantees of delivery or order; will not stall.
-} NS_ENUM_DEPRECATED(10_8, 10_10, 3_0, 7_0);
+} API_DEPRECATED("No longer supported", ios(3.0, 7.0), macos(10.8, 10.10), tvos(9.0, 18.4), visionos(1.0, 1.0), watchos(3.0, 3.0));
/* Specifies how GKSession behaves when it is made available.
*/
@@ -17,7 +17,7 @@
GKSessionModeServer, /// delegate will get -didReceiveConnectionRequestFromPeer callback when a client wants to connect
GKSessionModeClient, /// delegate will get -session:peer:didChangeState: callback with GKPeerStateAvailable, or GKPeerStateUnavailable for discovered servers
GKSessionModePeer, /// delegate will get -didReceiveConnectionRequestFromPeer when a peer wants to connect, and -session:peer:didChangeState: callback with GKPeerStateAvailable, or GKPeerStateUnavailable for discovered servers
-} NS_ENUM_DEPRECATED(10_8, 10_10, 3_0, 7_0);
+} API_DEPRECATED("No longer supported", ios(3.0, 7.0), macos(10.8, 10.10), tvos(9.0, 18.4), visionos(1.0, 1.0), watchos(3.0, 3.0));
/** Specifies the type of peers to return in method -peersWithConnectionState:
*/
@@ -29,9 +29,9 @@
GKPeerStateDisconnected, /// disconnected from the session
GKPeerStateConnecting, /// waiting for accept, or deny response
GKPeerStateConnectedRelay, /// connected to the session via relay
-} NS_ENUM_DEPRECATED(10_8, 10_10, 3_0, 7_0);
+} API_DEPRECATED("No longer supported", ios(3.0, 7.0), macos(10.8, 10.10), tvos(9.0, 18.4), visionos(1.0, 1.0), watchos(3.0, 3.0));
-GK_EXTERN_WEAK NSString * const GKVoiceChatServiceErrorDomain;
+GK_EXTERN_WEAK NSString * const GKVoiceChatServiceErrorDomain API_DEPRECATED("No longer supported", ios(3.0,18.4), macos(10.10,15.4), tvos(9.0,18.4), visionos(1.0,2.4), watchos(3.0,11.4));
typedef NS_ENUM(int, GKVoiceChatServiceError)
{
@@ -54,4 +54,4 @@
GKVoiceChatServiceOutOfMemoryError = 32015,
GKVoiceChatServiceInvalidParameterError = 32016
-} NS_ENUM_DEPRECATED_IOS(3_0, 7_0);
+} API_DEPRECATED("No longer supported", ios(3.0, 7.0), tvos(9.0, 18.4), visionos(1.0, 1.0), watchos(3.0, 3.0)) API_UNAVAILABLE(macos);
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPublicProtocols.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPublicProtocols.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPublicProtocols.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKPublicProtocols.h 2025-02-13 05:59:50
@@ -10,7 +10,7 @@
/** Callbacks to the GKSession delegate.
*/
-API_DEPRECATED_WITH_REPLACEMENT("GKMatchDelegate", ios(3.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
+API_DEPRECATED_WITH_REPLACEMENT("Use ``GKMatchDelegate`` instead.", ios(3.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
@protocol GKSessionDelegate <NSObject>
@optional
@@ -42,7 +42,7 @@
@class GKVoiceChatService;
//All clients will need to implement this protocol
-API_DEPRECATED_WITH_REPLACEMENT("GKVoiceChat", ios(3.0,7.0), macos(10.6,10.8)) __TVOS_UNAVAILABLE
+API_DEPRECATED_WITH_REPLACEMENT("Use ``GKVoiceChat`` instead.", ios(3.0,7.0), macos(10.6,10.8), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos)
@protocol GKVoiceChatClient <NSObject>
@required
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKReleaseState.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKReleaseState.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKReleaseState.h 1970-01-01 01:00:00
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKReleaseState.h 2025-02-13 05:59:50
@@ -0,0 +1,16 @@
+// Copyright © Apple Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+
+/// Describes the release state of an App Store Connect resource, such as an Achievement or Leaderboard.
+typedef NS_OPTIONS(NSUInteger, GKReleaseState) {
+ /// The system can't determine the release state of the resource.
+ GKReleaseStateUnknown,
+
+ /// The resource is associated with a release in App Store Connect. This has no relationship with the "archived" state of a resource (i.e., A resource can be release _and_ archived).
+ GKReleaseStateReleased,
+
+ /// The resource has been created in App Store Connect but isn't yet associated with a released version of an App.
+ GKReleaseStatePrereleased
+} API_AVAILABLE(ios(18.4), macos(15.4), watchos(11.4), tvos(18.4), visionos(2.4));
+
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGame.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGame.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGame.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGame.h 2025-02-13 05:59:50
@@ -5,38 +5,37 @@
#import <GameKit/GKSavedGameListener.h>
/// Class representing a saved game for the local player, or a version of a saved game when in conflict
-API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED
+API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos, watchos)
@interface GKSavedGame : NSObject <NSCopying>
NS_ASSUME_NONNULL_BEGIN
-@property (atomic, nullable, readonly) NSString *name API_AVAILABLE(macos(10.10), ios(8.0));
-@property (atomic, nullable, readonly) NSString *deviceName API_AVAILABLE(macos(10.10), ios(8.0));
-@property (atomic, nullable, readonly) NSDate *modificationDate API_AVAILABLE(macos(10.10), ios(8.0));
+@property (atomic, nullable, readonly) NSString *name;
+@property (atomic, nullable, readonly) NSString *deviceName;
+@property (atomic, nullable, readonly) NSDate *modificationDate;
/// Asynchronously load the data for this saved game. The completion handler is called with loaded data or an error.
-- (void)loadDataWithCompletionHandler:(void(^__nullable)(NSData * __nullable data, NSError * __nullable error))handler API_AVAILABLE(macos(10.10), ios(8.0));
+- (void)loadDataWithCompletionHandler:(void(^__nullable)(NSData * __nullable data, NSError * __nullable error))handler;
@end
-#if !TARGET_OS_TV && !TARGET_OS_WATCH
+API_UNAVAILABLE(tvos, watchos)
@interface GKLocalPlayer (GKSavedGame) <GKSavedGameListener>
/// 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 API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos);
+- (void)fetchSavedGamesWithCompletionHandler:(void(^__nullable)(NSArray<GKSavedGame *> * __nullable savedGames, NSError * __nullable error))handler API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos, watchos);
/// 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 API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos);
+- (void)saveGameData:(NSData *)data withName:(NSString *)name completionHandler:(void(^__nullable)(GKSavedGame * __nullable savedGame, NSError * __nullable error))handler API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos, watchos);
/// 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 API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos);
+- (void)deleteSavedGamesWithName:(NSString *)name completionHandler:(void(^__nullable)(NSError * __nullable error))handler API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos, watchos);
/// 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 API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos);
+- (void)resolveConflictingSavedGames:(NSArray<GKSavedGame *> *)conflictingSavedGames withData:(NSData *)data completionHandler:(void(^__nullable)(NSArray<GKSavedGame *> * __nullable savedGames, NSError * __nullable error))handler API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos, watchos);
@end
-#endif
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGameListener.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGameListener.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGameListener.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSavedGameListener.h 2025-02-13 05:59:50
@@ -8,15 +8,15 @@
@class GKSavedGame;
NS_ASSUME_NONNULL_BEGIN
-API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED
+API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos, watchos)
@protocol GKSavedGameListener <NSObject>
@optional
/// Called when a player’s saved game data has been modified.
-- (void)player:(GKPlayer *)player didModifySavedGame:(GKSavedGame *)savedGame API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos);
+- (void)player:(GKPlayer *)player didModifySavedGame:(GKSavedGame *)savedGame;
/// 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 API_AVAILABLE(macos(10.10), ios(8.0)) API_UNAVAILABLE(tvos);
+- (void)player:(GKPlayer *)player hasConflictingSavedGames:(NSArray<GKSavedGame *> *)savedGames;
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKScore.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKScore.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKScore.h 2024-11-14 05:59:04
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKScore.h 2025-02-08 02:20:19
@@ -9,14 +9,14 @@
NS_ASSUME_NONNULL_BEGIN
/// GKScore represents a score in the leaderboards.
-API_DEPRECATED_WITH_REPLACEMENT("GKLeaderboardScore", ios(4.1, 14.0), tvos(9.0, 14.0), macos(10.8, 11.0), watchos(3.0, 7.0))
+API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLeaderboard/Entry`` class instead.", ios(4.1, 14.0), tvos(9.0, 14.0), macos(10.8, 11.0), visionos(1.0,1.0), watchos(3.0, 7.0))
@interface GKScore : NSObject <NSCoding, NSSecureCoding>
/// Initialize the score with the local player and current date.
- (instancetype)initWithLeaderboardIdentifier:(NSString *)identifier;
/// Initialize the achievement for a specific player. Use to submit participant scores when ending a turn-based match.
-- (instancetype)initWithLeaderboardIdentifier:(NSString *)identifier player:(GKPlayer *)player NS_AVAILABLE(10_10, 8_0) __WATCHOS_AVAILABLE(3_0);
+- (instancetype)initWithLeaderboardIdentifier:(NSString *)identifier player:(GKPlayer *)player API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(8.0,14.0), macos(10.10,11.0), tvos(9.0,14.0), visionos(1.0,1.0), watchos(3.0,7.0));
/// The score value as a 64bit integer.
@property(assign, NS_NONATOMIC_IOSONLY) int64_t value;
@@ -25,16 +25,16 @@
@property(readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSString *formattedValue;
/// leaderboard identifier (required)
-@property(copy, NS_NONATOMIC_IOSONLY) NSString *leaderboardIdentifier NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+@property(copy, NS_NONATOMIC_IOSONLY) NSString *leaderboardIdentifier API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(7.0,14.0), macos(10.10,11.0), tvos(9.0,14.0), visionos(1.0,1.0), watchos(3.0,7.0));
/// optional additional context that allows a game to store and retrieve additional data associated with the store. Default value of zero is returned if no value is set.
-@property(assign, NS_NONATOMIC_IOSONLY) uint64_t context NS_AVAILABLE(10_8, 5_0) __WATCHOS_AVAILABLE(3_0);
+@property(assign, NS_NONATOMIC_IOSONLY) uint64_t context API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(5.0,14.0), macos(10.8,11.0), tvos(9.0,14.0), visionos(1.0,1.0), watchos(3.0,7.0));
/// The date this score was recorded. A newly initialized, unsubmitted GKScore records the current date at init time.
@property(readonly, retain, NS_NONATOMIC_IOSONLY) NSDate *date;
/// The player that recorded the score.
-@property(readonly, retain, nullable, NS_NONATOMIC_IOSONLY) GKPlayer *player NS_AVAILABLE(10_10, 8_0) __WATCHOS_AVAILABLE(3_0);
+@property(readonly, retain, nullable, NS_NONATOMIC_IOSONLY) GKPlayer *player API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(8.0,14.0), macos(10.10,11.0), tvos(9.0,14.0), visionos(1.0,1.0), watchos(3.0,7.0));
/// The rank of the player within the leaderboard, only valid when returned from GKLeaderboard
@@ -42,31 +42,32 @@
/// Convenience property to make the leaderboard associated with this GKScore, the default leaderboard for this player. Default value is false.
/// If true, reporting that score will make the category this score belongs to, the default leaderboard for this user
-@property(nonatomic, assign) BOOL shouldSetDefaultLeaderboard NS_AVAILABLE(10_8, 5_0) __WATCHOS_AVAILABLE(3_0);
+@property(nonatomic, assign) BOOL shouldSetDefaultLeaderboard API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(5.0,14.0), macos(10.8,11.0), tvos(9.0,14.0), visionos(1.0,1.0), watchos(3.0,7.0));
/// Report scores to the server. The value must be set, and date may be changed.
/// Possible reasons for error:
/// 1. Value not set
/// 2. Local player not authenticated
/// 3. Communications problem
-+ (void)reportScores:(NSArray<GKScore *> *)scores withCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 6_0) __WATCHOS_AVAILABLE(3_0);
++ (void)reportScores:(NSArray<GKScore *> *)scores withCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(6.0,14.0), macos(10.8,11.0), tvos(9.0,14.0), visionos(1.0,1.0), watchos(3.0,7.0));
@end
@interface GKScore (Deprecated)
-- (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;
+- (void)reportScoreWithCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(4.1,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
+- (instancetype)initWithCategory:(nullable NSString *)category API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(4.1,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
-@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;
+@property(copy, nullable, NS_NONATOMIC_IOSONLY) NSString *category API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(4.1,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
@end
+API_UNAVAILABLE(tvos)
@interface GKScore (Obsoleted)
/*** This method is obsolete. Calling this initialiser does nothing and will return nil ***/
-- (nullable instancetype)initWithLeaderboardIdentifier:(NSString *)identifier forPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("-initWithLeaderboardIdentifier:player:", ios(7.0,8.0), macos(10.9,10.10)) __TVOS_UNAVAILABLE;
+- (nullable instancetype)initWithLeaderboardIdentifier:(NSString *)identifier forPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(7.0,8.0), macos(10.9,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
/*** This property is obsolete. ***/
-@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.
+@property(readonly, nullable, retain, NS_NONATOMIC_IOSONLY) NSString *playerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKLeaderboardScore`` instead.", ios(4.1,8.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos); // The identifier of the player that recorded the score.
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSession.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSession.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSession.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSession.h 2025-02-13 05:59:50
@@ -16,7 +16,7 @@
This a not a Game Center feature. To support Game Center and online play, see GKMatch.
*/
-API_DEPRECATED_WITH_REPLACEMENT("GKMatch", ios(3.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
+API_DEPRECATED_WITH_REPLACEMENT("Use ``GKMatch`` instead.", 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.
@@ -26,14 +26,14 @@
*/
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-- (id)initWithSessionID:(NSString *)sessionID displayName:(NSString *)name sessionMode:(GKSessionMode)mode NS_DEPRECATED(10_8, 10_10, 3_0, 7_0);
+- (id)initWithSessionID:(NSString *)sessionID displayName:(NSString *)name sessionMode:(GKSessionMode)mode API_DEPRECATED("No longer available", ios(3.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
#pragma clang diagnostic pop
-@property(weak) id<GKSessionDelegate> delegate NS_DEPRECATED(10_8, 10_10, 3_0, 7_0) API_UNAVAILABLE(tvos);
+@property(weak) id<GKSessionDelegate> delegate API_DEPRECATED("No longer supported.", ios(3.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
@property(readonly) NSString *sessionID;
@property(readonly) NSString *displayName;
-@property(readonly) GKSessionMode sessionMode NS_DEPRECATED(10_8, 10_10, 3_0, 7_0);
+@property(readonly) GKSessionMode sessionMode API_DEPRECATED("No longer supported.", ios(3.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
@property(readonly) NSString *peerID; // session's peerID
/** Toggle availability on the network based on session mode and search criteria. Delegate will get a callback -session:didReceiveConnectionRequestFromPeer: when a peer attempts a connection.
@@ -50,11 +50,11 @@
/** Asynchronous delivery of data to one or more peers. Returns YES if delivery started, NO if unable to start sending, and error will be set. Delivery will be reliable or unreliable as set by mode.
*/
-- (BOOL)sendData:(NSData *) data toPeers:(NSArray *)peers withDataMode:(GKSendDataMode)mode error:(NSError **)error NS_DEPRECATED(10_8, 10_10, 3_0, 7_0);
+- (BOOL)sendData:(NSData *) data toPeers:(NSArray *)peers withDataMode:(GKSendDataMode)mode error:(NSError **)error API_DEPRECATED("No longer supported.", ios(3.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
/** Asynchronous delivery to all peers. Returns YES if delivery started, NO if unable to start sending, and error will be set. Delivery will be reliable or unreliable as set by mode.
*/
-- (BOOL)sendDataToAllPeers:(NSData *) data withDataMode:(GKSendDataMode)mode error:(NSError **)error NS_DEPRECATED(10_8, 10_10, 3_0, 7_0); // errors: buffer full, data too big
+- (BOOL)sendDataToAllPeers:(NSData *) data withDataMode:(GKSendDataMode)mode error:(NSError **)error API_DEPRECATED("No longer supported.", ios(3.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos); // errors: buffer full, data too big
/** Set the handler to receive data sent from remote peers.
*/
@@ -83,5 +83,5 @@
/** Returns peers according to connection state
*/
-- (NSArray *)peersWithConnectionState:(GKPeerConnectionState)state NS_DEPRECATED(10_8, 10_10, 3_0, 7_0);
+- (NSArray *)peersWithConnectionState:(GKPeerConnectionState)state API_DEPRECATED("No longer supported.", ios(3.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
@end
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSessionError.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSessionError.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSessionError.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKSessionError.h 2025-02-13 05:59:50
@@ -4,7 +4,7 @@
#import <GameKit/GKDefines.h>
// domain
-GK_EXTERN_WEAK NSString * __nonnull const GKSessionErrorDomain;
+GK_EXTERN_WEAK NSString * __nonnull const GKSessionErrorDomain API_DEPRECATED("No longer supported", ios(3.0, 18.4), macos(10.10,15.4), tvos(9.0, 18.4), visionos(1.0, 2.4), watchos(3.0, 11.4));
// code
typedef NS_ENUM(int, GKSessionError)
@@ -26,5 +26,5 @@
GKSessionInternalError = 30203,
GKSessionUnknownError = 30204,
GKSessionSystemError = 30205
-} NS_ENUM_DEPRECATED_IOS(3_0, 7_0);
+} API_DEPRECATED("No longer supported", ios(3.0, 7.0), tvos(9.0, 18.4), visionos(1.0, 1.0), watchos(3.0, 3.0)) API_UNAVAILABLE(macos);
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatch.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatch.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatch.h 2024-11-10 11:41:39
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatch.h 2025-02-12 05:26:13
@@ -11,7 +11,7 @@
GKTurnBasedMatchStatusOpen = 1,
GKTurnBasedMatchStatusEnded = 2,
GKTurnBasedMatchStatusMatching = 3
-};
+} API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
/// Constants that describe the state of individual participants in the match
typedef NS_ENUM(NSInteger, GKTurnBasedParticipantStatus) {
@@ -22,7 +22,7 @@
GKTurnBasedParticipantStatusMatching = 3, // a participant that is waiting to be matched
GKTurnBasedParticipantStatusActive = 4, // a participant that is active in this match
GKTurnBasedParticipantStatusDone = 5, // a participant is done with this session
-};
+} API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
/// Constants that describe the game result for a given participant who has reached the done state. The developer is free to use these constants or add additional ones
typedef NS_ENUM(NSInteger, GKTurnBasedMatchOutcome) {
@@ -36,10 +36,9 @@
GKTurnBasedMatchOutcomeSecond = 7,
GKTurnBasedMatchOutcomeThird = 8,
GKTurnBasedMatchOutcomeFourth = 9,
-
+
GKTurnBasedMatchOutcomeCustomRange = 0x00FF0000 // game result range available for custom app use
-
-};
+} API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
/// GKTurnBasedMatch represents an ongoing turn-based game among the matched group of participants
/// Existing matches can be shown and new matches created using GKTurnBasedMatchmakerViewController
@@ -47,28 +46,29 @@
///
/// By default turn based events will badge your app. To opt out of this add GKGameCenterBadgingDisabled with a boolean value of YES to your info plist
-NS_CLASS_AVAILABLE(10_8, 5_0) __WATCHOS_AVAILABLE(3_0)
+API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKTurnBasedParticipant : NSObject
-@property(readonly, nullable, strong, NS_NONATOMIC_IOSONLY) GKPlayer *player NS_AVAILABLE(10_10, 8_0) __WATCHOS_AVAILABLE(3_0);
+@property(readonly, nullable, strong, NS_NONATOMIC_IOSONLY) GKPlayer *player API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
@property(readonly, nullable, copy, NS_NONATOMIC_IOSONLY) NSDate *lastTurnDate;
@property(readonly, NS_NONATOMIC_IOSONLY) GKTurnBasedParticipantStatus status;
@property(assign, NS_NONATOMIC_IOSONLY) GKTurnBasedMatchOutcome matchOutcome;
-@property(readonly, nullable, copy, NS_NONATOMIC_IOSONLY) NSDate *timeoutDate NS_AVAILABLE(10_8, 6_0) __WATCHOS_AVAILABLE(3_0);
+@property(readonly, nullable, copy, NS_NONATOMIC_IOSONLY) NSDate *timeoutDate API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
@end
@interface GKTurnBasedParticipant (Obsoleted)
/*** This property is obsolete. ***/
-@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;
+@property(readonly, nullable, copy, NS_NONATOMIC_IOSONLY) NSString *playerID API_DEPRECATED_WITH_REPLACEMENT("Use ``GKTurnBasedParticipant/player`` instead.", ios(5.0,8.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
@end
NS_ASSUME_NONNULL_BEGIN
+API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0))
@protocol GKTurnBasedEventListener
@optional
/// If Game Center initiates a match the developer should create a GKTurnBasedMatch from playersToInvite and present a GKTurnbasedMatchmakerViewController.
-- (void)player:(GKPlayer *)player didRequestMatchWithOtherPlayers:(NSArray<GKPlayer *> *)playersToInvite NS_AVAILABLE(10_10, 8_0) API_UNAVAILABLE(watchos);
+- (void)player:(GKPlayer *)player didRequestMatchWithOtherPlayers:(NSArray<GKPlayer *> *)playersToInvite API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// called when it becomes this player's turn. It also gets called under the following conditions:
/// the player's turn has a timeout and it is about to expire.
@@ -77,34 +77,34 @@
/// turn was passed to another player
/// another player saved the match data
/// Because of this the app needs to be prepared to handle this even while the player is taking a turn in an existing match. The boolean indicates whether this event launched or brought to forground the app.
-- (void)player:(GKPlayer *)player receivedTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)player:(GKPlayer *)player receivedTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
/// called when the match has ended.
- (void)player:(GKPlayer *)player matchEnded:(GKTurnBasedMatch *)match;
/// this is called when a player receives an exchange request from another player.
-- (void)player:(GKPlayer *)player receivedExchangeRequest:(GKTurnBasedExchange *)exchange forMatch:(GKTurnBasedMatch *)match NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)player:(GKPlayer *)player receivedExchangeRequest:(GKTurnBasedExchange *)exchange forMatch:(GKTurnBasedMatch *)match API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
/// this is called when an exchange is canceled by the sender.
-- (void)player:(GKPlayer *)player receivedExchangeCancellation:(GKTurnBasedExchange *)exchange forMatch:(GKTurnBasedMatch *)match NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)player:(GKPlayer *)player receivedExchangeCancellation:(GKTurnBasedExchange *)exchange forMatch:(GKTurnBasedMatch *)match API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
/// called when all players either respond or timeout responding to this request. This is sent to both the turn holder and the initiator of the exchange
-- (void)player:(GKPlayer *)player receivedExchangeReplies:(NSArray<GKTurnBasedExchangeReply *> *)replies forCompletedExchange:(GKTurnBasedExchange *)exchange forMatch:(GKTurnBasedMatch *)match NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)player:(GKPlayer *)player receivedExchangeReplies:(NSArray<GKTurnBasedExchangeReply *> *)replies forCompletedExchange:(GKTurnBasedExchange *)exchange forMatch:(GKTurnBasedMatch *)match API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
/// Called when a player chooses to quit a match and that player has the current turn. The developer should call participantQuitInTurnWithOutcome:nextParticipants:turnTimeout:matchData:completionHandler: on the match passing in appropriate values. They can also update matchOutcome for other players as appropriate.
-- (void)player:(GKPlayer *)player wantsToQuitMatch:(GKTurnBasedMatch *)match NS_AVAILABLE(10_11, 9_0) __WATCHOS_AVAILABLE(3_0);
+- (void)player:(GKPlayer *)player wantsToQuitMatch:(GKTurnBasedMatch *)match API_AVAILABLE(ios(9.0), macos(10.11), tvos(9.0), visionos(1.0), watchos(3.0));
/// Deprecated
-- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray<NSString *> *)playerIDsToInvite API_DEPRECATED_WITH_REPLACEMENT("-didRequestMatchWithOtherPlayers:", ios(7.0,8.0), macos(10.9,10.10)) API_UNAVAILABLE(tvos);
+- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray<NSString *> *)playerIDsToInvite API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKTurnBasedEventListener/player(_:didRequestMatchWithOtherPlayers:)`` method instead.", ios(7.0,8.0), macos(10.9,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
@end
// Turn timeout constants
-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);
+GK_EXTERN NSTimeInterval GKTurnTimeoutDefault API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0), watchos(3.0)); // use a default timeout of one week
+GK_EXTERN NSTimeInterval GKTurnTimeoutNone API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0), watchos(3.0));
-NS_CLASS_AVAILABLE(10_8, 5_0) __WATCHOS_AVAILABLE(3_0)
+API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKTurnBasedMatch : NSObject
@property(readonly, nullable, strong, NS_NONATOMIC_IOSONLY) NSString *matchID;
@@ -127,29 +127,29 @@
// Notes: The localized message will be evaluated locally from these keys and sent across as well so that devices that do not have the game installed will see the message in the sender's localization
// The developer can access resulting string using the message property
// This is a similar concept to the way we handle localization for Push Notifications. See the "Local and Push Notification Programming Guide" for more details.
-- (void)setLocalizableMessageWithKey:(NSString*)key arguments:(nullable NSArray<NSString *> *)arguments NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)setLocalizableMessageWithKey:(NSString*)key arguments:(nullable NSArray<NSString *> *)arguments API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// returns the localizable message in the current locale. Setting this is equivalent to calling [self setLocalizableMessageWithKey:message arguments:nil]
@property(readwrite, nullable, copy, NS_NONATOMIC_IOSONLY) NSString *message;
// Returns the maximum size for the match data.
-@property(readonly, NS_NONATOMIC_IOSONLY) NSUInteger matchDataMaximumSize NS_AVAILABLE(10_8, 6_0) __WATCHOS_AVAILABLE(3_0);
+@property(readonly, NS_NONATOMIC_IOSONLY) NSUInteger matchDataMaximumSize API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
// exchanges that are in progress on this match. Once an exchange has completed and has been resolved by merging it into the match data by the current turn holder then it will be removed from this list
-@property(readonly, nullable, strong, NS_NONATOMIC_IOSONLY) NSArray<GKTurnBasedExchange *> *exchanges NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+@property(readonly, nullable, strong, NS_NONATOMIC_IOSONLY) NSArray<GKTurnBasedExchange *> *exchanges API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// returns the exchanges that currently await a reply from the local player
-@property(readonly, nullable, strong, NS_NONATOMIC_IOSONLY) NSArray<GKTurnBasedExchange *> *activeExchanges NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+@property(readonly, nullable, strong, NS_NONATOMIC_IOSONLY) NSArray<GKTurnBasedExchange *> *activeExchanges API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// returns the exchanges that have been completed and need to be merged by the local participant. This will be nil unless the local participant is the current turn holder for this match
-@property(readonly, nullable, strong, NS_NONATOMIC_IOSONLY) NSArray<GKTurnBasedExchange *> *completedExchanges NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+@property(readonly, nullable, strong, NS_NONATOMIC_IOSONLY) NSArray<GKTurnBasedExchange *> *completedExchanges API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// maximum data allowed for exchange data
-@property(readonly, NS_NONATOMIC_IOSONLY) NSUInteger exchangeDataMaximumSize NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+@property(readonly, NS_NONATOMIC_IOSONLY) NSUInteger exchangeDataMaximumSize API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// limit of the number of exchanges that this player can have initiated at a given time
-@property(readonly, NS_NONATOMIC_IOSONLY) NSUInteger exchangeMaxInitiatedExchangesPerPlayer NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+@property(readonly, NS_NONATOMIC_IOSONLY) NSUInteger exchangeMaxInitiatedExchangesPerPlayer API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// Attempt to find a turn-based match for the specified request. Error will be nil on success.
// Possible reasons for error:
@@ -161,19 +161,19 @@
+ (void)loadMatchesWithCompletionHandler:(void(^__nullable)(NSArray<GKTurnBasedMatch *> * __nullable matches, NSError * __nullable error))completionHandler;
// load a match based on a previously known match ID
-+ (void)loadMatchWithID:(NSString *)matchID withCompletionHandler:(void(^__nullable)(GKTurnBasedMatch * __nullable match, NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 5_0) __WATCHOS_AVAILABLE(3_0);
++ (void)loadMatchWithID:(NSString *)matchID withCompletionHandler:(void(^__nullable)(GKTurnBasedMatch * __nullable match, NSError * __nullable error))completionHandler API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
// Recreate a previously existing turn based match that ended. A new match with the same set of players will be returned by the completion handler. If multiple players do this then multiple new matches will be created. Error will be nil on success.
// Possible reasons for error:
// 1. Communications failure
// 2. Unauthenticated player
-- (void)rematchWithCompletionHandler:(void(^__nullable)(GKTurnBasedMatch * __nullable match, NSError * __nullable error))completionHandler NS_AVAILABLE(10_9, 6_0) __WATCHOS_AVAILABLE(3_0);
+- (void)rematchWithCompletionHandler:(void(^__nullable)(GKTurnBasedMatch * __nullable match, NSError * __nullable error))completionHandler API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0), watchos(3.0));
// If the local participant has status invited then accept the invite, otherwise returns an error
-- (void)acceptInviteWithCompletionHandler:(void(^__nullable)(GKTurnBasedMatch * __nullable match, NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 5_0) __WATCHOS_AVAILABLE(3_0);
+- (void)acceptInviteWithCompletionHandler:(void(^__nullable)(GKTurnBasedMatch * __nullable match, NSError * __nullable error))completionHandler API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
// If the local participant has status invited then decline the invite, otherwise returns an error
-- (void)declineInviteWithCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 5_0) __WATCHOS_AVAILABLE(3_0);
+- (void)declineInviteWithCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
// Remove a declined or completed match (one with a matchOutcome set) from the player's list of matches. If using the GKTurnBasedMatchmakerViewController UI, this will remove it from the finished sessions. The developer should not do this without user input.
- (void)removeWithCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler;
@@ -190,7 +190,7 @@
- (void)endTurnWithNextParticipants:(NSArray<GKTurnBasedParticipant *> *)nextParticipants
turnTimeout:(NSTimeInterval)timeout
matchData:(NSData*)matchData
- completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_9, 6_0) __WATCHOS_AVAILABLE(3_0);
+ completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0), watchos(3.0));
// Ends the current player's turn by quitting the match. The caller must indicate the next player and pass in updated matchData (if used). All completed exchanges must be resolved or canceled before calling this.
@@ -198,7 +198,7 @@
nextParticipants:(NSArray<GKTurnBasedParticipant *> *)nextParticipants
turnTimeout:(NSTimeInterval)timeout
matchData:(NSData*)matchData
- completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_9, 6_0) __WATCHOS_AVAILABLE(3_0);
+ completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(6.0), macos(10.9), tvos(9.0), visionos(1.0), watchos(3.0));
// Abandon the match when it is not the current participant's turn. In this there is no update to matchData and no need to set nextParticipant.
- (void)participantQuitOutOfTurnWithOutcome:(GKTurnBasedMatchOutcome)matchOutcome withCompletionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler;
@@ -207,17 +207,17 @@
- (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 API_DEPRECATED_WITH_REPLACEMENT("-endMatchInTurnWithMatchData:scores:completionHandler", ios(6.0,14.0), macos(10.10,11.0));
+- (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("Use the ``GKTurnBasedMatch/endMatchInTurn(withMatch:scores:achievements:completionHandler:)`` method instead.", ios(6.0,14.0), macos(10.10,11.0), tvos(9.0,14.0), visionos(1.0,1.0), watchos(3.0,7.0));
-- (void)endMatchInTurnWithMatchData:(NSData*)matchData leaderboardScores:(NSArray<GKLeaderboardScore *> *)scores achievements:(NSArray *)achievements completionHandler:(void(^)(NSError * __nullable error))completionHandler NS_AVAILABLE(11_0, 14_0);
+- (void)endMatchInTurnWithMatchData:(NSData*)matchData leaderboardScores:(NSArray<GKLeaderboardScore *> *)scores achievements:(NSArray *)achievements completionHandler:(void(^)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), visionos(1.0), watchos(7.0));
// saves the matchData for the current turn without ending the turn. If other players have the game running they will receive a handleTurnEventForMatch to indicate that the matchData has changed. This is useful to initialize the game state for the first player when they take their turn or for updating the turn data due to the user taking an irreversible action within their turn. All completed exchanges must be resolved or canceled before calling this. If you are using exchanges use saveMergedMatchData instead.
-- (void)saveCurrentTurnWithMatchData:(NSData *)matchData completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_8, 6_0) __WATCHOS_AVAILABLE(3_0);
+- (void)saveCurrentTurnWithMatchData:(NSData *)matchData completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(6.0), macos(10.8), tvos(9.0), visionos(1.0), watchos(3.0));
// saves the merged matchData for the current turn without ending the turn and mark the supplied exchanges as resolved meaning that the data has been merged into the match data. If other players have the game running they will receive a handleTurnEventForMatch to indicate that the matchData has changed. It is required that all completed exchanges are resolved before ending a turn. Otherwise calling endTurn, participantQuitInTurnWithOutCome or endMatchInTurn will return an error
- (void)saveMergedMatchData:(NSData *)matchData
withResolvedExchanges:(NSArray<GKTurnBasedExchange *> *)exchanges
- completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+ completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// Send an exchange request to one or more participants. Each recipient will receive a push notification using supplied localizable message. If any of the participants have an inactive status (GKTurnBasedParticipantStatusDone) then this will return an error. completionHandler gets passed the updated exchange with identifier, sender and recipients set
- (void)sendExchangeToParticipants:(NSArray<GKTurnBasedParticipant *> *)participants
@@ -225,38 +225,37 @@
localizableMessageKey:(NSString *)key
arguments:(NSArray<NSString *> *)arguments
timeout:(NSTimeInterval)timeout
- completionHandler:(void(^__nullable)(GKTurnBasedExchange * __nullable exchange, NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+ completionHandler:(void(^__nullable)(GKTurnBasedExchange * __nullable exchange, NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// Send a reminder to one or more participants. Each recipient will receive a push notification using supplied localizable message. This allows a game to send reminders that a turn or exchange request needs action. On the receiver side this will generate a turn event for the match.
- (void)sendReminderToParticipants:(NSArray<GKTurnBasedParticipant *> *)participants
localizableMessageKey:(NSString *)key
arguments:(NSArray<NSString *> *)arguments
- completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+ completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// deprecated methods
-- (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;
+- (void)endTurnWithNextParticipant:(GKTurnBasedParticipant *)nextParticipant matchData:(NSData*)matchData completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKTurnBasedMatch/endTurn(withNextParticipants:turnTimeout:match:completionHandler:)`` method instead.", ios(5.0,6.0), macos(10.8,10.9), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
+- (void)participantQuitInTurnWithOutcome:(GKTurnBasedMatchOutcome)matchOutcome nextParticipant:(GKTurnBasedParticipant *)nextParticipant matchData:(NSData*)matchData completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKTurnBasedMatch/participantQuitInTurn(with:nextParticipants:turnTimeout:match:completionHandler:)`` method instead.", ios(5.0,6.0), macos(10.8,10.9), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
@end
// Turn Based Exchanges
// Constants that describe the status of exchanges and their replies
-
typedef NS_ENUM(int8_t, GKTurnBasedExchangeStatus) {
GKTurnBasedExchangeStatusUnknown = 0,
GKTurnBasedExchangeStatusActive = 1,
GKTurnBasedExchangeStatusComplete = 2,
GKTurnBasedExchangeStatusResolved = 3,
GKTurnBasedExchangeStatusCanceled = 4
-} NS_ENUM_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+} API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// Exchange timeout constants
-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);
+GK_EXTERN NSTimeInterval GKExchangeTimeoutDefault API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0)); // use a default timeout of one day
+GK_EXTERN NSTimeInterval GKExchangeTimeoutNone API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
-NS_CLASS_AVAILABLE(10_10,7_0) __WATCHOS_AVAILABLE(3_0)
+API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKTurnBasedExchange : NSObject
@property (readonly, nullable, NS_NONATOMIC_IOSONLY) NSString *exchangeID; // persistent identifier used to refer to this exchange.
@@ -272,43 +271,43 @@
@property (readonly, nullable, NS_NONATOMIC_IOSONLY) NSArray<GKTurnBasedExchangeReply *> *replies; // Array of GKTurnBasedExchangeReply.
// cancel an exchange. It is possible to cancel an exchange that is active or complete. Each recipient will receive a push notification using supplied localizable message. Returns an error if the exchange has already been canceled.
-- (void)cancelWithLocalizableMessageKey:(NSString *)key arguments:(NSArray<NSString *> *)arguments completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)cancelWithLocalizableMessageKey:(NSString *)key arguments:(NSArray<NSString *> *)arguments completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
// reply to an exchange. The sender will receive a push notification using supplied localizable message. Returns an error if the exchange has already been canceled.
-- (void)replyWithLocalizableMessageKey:(NSString *)key arguments:(NSArray<NSString *> *)arguments data:(NSData *)data completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler NS_AVAILABLE(10_10, 7_0) __WATCHOS_AVAILABLE(3_0);
+- (void)replyWithLocalizableMessageKey:(NSString *)key arguments:(NSArray<NSString *> *)arguments data:(NSData *)data completionHandler:(void(^__nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0));
@end
-NS_CLASS_AVAILABLE(10_10,7_0) __WATCHOS_AVAILABLE(3_0)
+API_AVAILABLE(ios(7.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0))
@interface GKTurnBasedExchangeReply : NSObject
@property (readonly, nullable, NS_NONATOMIC_IOSONLY) GKTurnBasedParticipant *recipient; // the recipient who this reply is from
@property (readonly, nullable, NS_NONATOMIC_IOSONLY) NSString *message; // localized message for the push notification generated by the reply of this exchange
@property (readonly, nullable, NS_NONATOMIC_IOSONLY) NSData *data; // data sent by the replying recipient
-@property (readonly, nullable, NS_NONATOMIC_IOSONLY) NSDate *replyDate NS_AVAILABLE(10_10, 8_0) __WATCHOS_AVAILABLE(3_0); // send date for the exchange.
+@property (readonly, nullable, NS_NONATOMIC_IOSONLY) NSDate *replyDate API_AVAILABLE(ios(8.0), macos(10.10), tvos(9.0), visionos(1.0), watchos(3.0)); // send date for the exchange.
@end
// deprecated
// see documentation for GKTurnBasedEventListener for the equivalent methods
-API_DEPRECATED_WITH_REPLACEMENT("-[GKLocalPlayer registerListener:]", ios(5.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
+API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/register(_:)`` method of the ``GKLocalPlayer`` class instead.", ios(5.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos)
@protocol GKTurnBasedEventHandlerDelegate
-- (void)handleInviteFromGameCenter:(NSArray<NSString *> *)playersToInvite NS_DEPRECATED(10_8, 10_10, 5_0, 7_0);
-- (void)handleTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive NS_DEPRECATED(10_9, 10_10, 6_0, 7_0);
+- (void)handleInviteFromGameCenter:(NSArray<NSString *> *)playersToInvite API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/register(_:)`` method of the ``GKLocalPlayer`` class instead.", ios(5.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
+- (void)handleTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/register(_:)`` method of the ``GKLocalPlayer`` class instead.", ios(6.0,7.0), macos(10.9,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
@optional
-- (void)handleTurnEventForMatch:(GKTurnBasedMatch *)match NS_DEPRECATED(10_8, 10_9, 5_0, 7_0);
-- (void)handleMatchEnded:(GKTurnBasedMatch *)match NS_DEPRECATED(10_8, 10_10, 6_0, 7_0);
+- (void)handleTurnEventForMatch:(GKTurnBasedMatch *)match API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/register(_:)`` method of the ``GKLocalPlayer`` class instead.", ios(5.0,7.0), macos(10.8,10.9), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
+- (void)handleMatchEnded:(GKTurnBasedMatch *)match API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/register(_:)`` method of the ``GKLocalPlayer`` class instead.", ios(6.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
@end
-API_DEPRECATED_WITH_REPLACEMENT("-[GKTurnBasedEventListener registerListener:]", ios(5.0,7.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos)
+API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/register(_:)`` method of the ``GKLocalPlayer`` class instead.", ios(5.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos)
@interface GKTurnBasedEventHandler : NSObject
-+ (GKTurnBasedEventHandler *)sharedTurnBasedEventHandler NS_DEPRECATED(10_8, 10_10, 5_0, 7_0);
++ (GKTurnBasedEventHandler *)sharedTurnBasedEventHandler API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/register(_:)`` method of the ``GKLocalPlayer`` class instead.", ios(5.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
-@property (weak, NS_NONATOMIC_IOSONLY) NSObject<GKTurnBasedEventHandlerDelegate> *delegate NS_DEPRECATED(10_8, 10_10, 5_0, 7_0);
+@property (weak, NS_NONATOMIC_IOSONLY) NSObject<GKTurnBasedEventHandlerDelegate> *delegate API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKLocalPlayer/register(_:)`` method of the ``GKLocalPlayer`` class instead.", ios(5.0,7.0), macos(10.8,10.10), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(tvos);
@end
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKTurnBasedMatchmakerViewController.h 2025-02-13 05:59:50
@@ -19,13 +19,13 @@
#import <UIKit/UINavigationController.h> // UINavigationController
NS_ASSUME_NONNULL_BEGIN
-NS_CLASS_AVAILABLE(10_8, 5_0)
+API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface GKTurnBasedMatchmakerViewController : UINavigationController
@end
#else
#import <GameKit/GKDialogController.h>
NS_ASSUME_NONNULL_BEGIN
-NS_CLASS_AVAILABLE(10_8, 5_0)
+API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface GKTurnBasedMatchmakerViewController : NSViewController <GKViewController>
@end
#endif
@@ -36,29 +36,30 @@
@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));
+@property (nonatomic, assign) GKMatchmakingMode matchmakingMode API_AVAILABLE(ios(15.0), macos(12.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos);
- (id)initWithMatchRequest:(GKMatchRequest *)request;
@end
+API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@protocol GKTurnBasedMatchmakerViewControllerDelegate <NSObject>
@required
/// The user has cancelled
-- (void)turnBasedMatchmakerViewControllerWasCancelled:(GKTurnBasedMatchmakerViewController *)viewController NS_AVAILABLE(10_8, 5_0);
+- (void)turnBasedMatchmakerViewControllerWasCancelled:(GKTurnBasedMatchmakerViewController *)viewController API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
/// Matchmaking has failed with an error
-- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController didFailWithError:(NSError *)error NS_AVAILABLE(10_8, 5_0);
+- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController didFailWithError:(NSError *)error API_AVAILABLE(ios(5.0), macos(10.8), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@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);
+- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController didFindMatch:(GKTurnBasedMatch *)match API_DEPRECATED_WITH_REPLACEMENT("Use ``GKTurnBasedEventListener`` method ``GKTurnBasedEventListener/player(_:receivedTurnEventFor:didBecomeActive:)`` instead.", ios(5.0,9.0), macos(10.8,10.11), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
// 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);
+- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController playerQuitForMatch:(GKTurnBasedMatch *)match API_DEPRECATED_WITH_REPLACEMENT("Use ``GKTurnBasedEventListener`` method ``GKTurnBasedEventListener/player(_:wantsToQuitMatch:)`` instead.", ios(5.0,9.0), macos(10.8,10.11), visionos(1.0,1.0)) API_UNAVAILABLE(tvos, watchos);
@end
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChat.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChat.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChat.h 2024-11-10 11:51:15
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChat.h 2025-02-13 05:59:50
@@ -8,42 +8,41 @@
GKVoiceChatPlayerSpeaking,
GKVoiceChatPlayerSilent,
GKVoiceChatPlayerConnecting
-} API_DEPRECATED("No longer supported", ios(4.1, 18.0), macos(10.8, 15.0), tvos(9.0, 18.0), visionos(1.0, 2.0)) __WATCHOS_PROHIBITED;
+} API_DEPRECATED("No longer supported", ios(4.1, 18.0), macos(10.8, 15.0), tvos(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
+
@class GKPlayer;
NS_ASSUME_NONNULL_BEGIN
/// GKVoiceChat represents an instance of a named voice communications channel
-API_DEPRECATED("No longer supported", ios(4.1, 18.0), macos(10.8, 15.0), tvos(9.0, 18.0), visionos(1.0, 2.0)) __WATCHOS_PROHIBITED
+API_DEPRECATED("No longer supported", ios(4.1, 18.0), macos(10.8, 15.0), tvos(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos)
@interface GKVoiceChat : NSObject
- (void)start; /// start receiving audio from the chat
- (void)stop; /// stop receiving audio from the chat
-- (void)setPlayer:(GKPlayer *)player muted:(BOOL)isMuted NS_AVAILABLE(10_10, 8_0);
+- (void)setPlayer:(GKPlayer *)player muted:(BOOL)isMuted API_DEPRECATED("No longer supported", ios(8.0, 18.0), macos(10.10, 15.0), tvos(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
-@property(copy, NS_NONATOMIC_IOSONLY) void(^playerVoiceChatStateDidChangeHandler)(GKPlayer *player, GKVoiceChatPlayerState state) NS_AVAILABLE(10_10, 8_0);
+@property(copy, NS_NONATOMIC_IOSONLY) void(^playerVoiceChatStateDidChangeHandler)(GKPlayer *player, GKVoiceChatPlayerState state) API_DEPRECATED("No longer supported", ios(8.0, 18.0), macos(10.10, 15.0), tvos(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
@property(readonly, copy, NS_NONATOMIC_IOSONLY) NSString *name; // name the chat was created with
@property(assign, getter=isActive, NS_NONATOMIC_IOSONLY) BOOL active; // make this session active and route the microphone
@property(assign, NS_NONATOMIC_IOSONLY) float volume; // default 1.0 (max is 1.0, min is 0.0)
-@property(readonly, NS_NONATOMIC_IOSONLY) NSArray<GKPlayer *> *players NS_AVAILABLE(10_10, 8_0); // array of GKPlayer *
+@property(readonly, NS_NONATOMIC_IOSONLY) NSArray<GKPlayer *> *players API_DEPRECATED("No longer supported", ios(8.0, 18.0), macos(10.10, 15.0), tvos(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
+ (BOOL)isVoIPAllowed;
@end
-__WATCHOS_PROHIBITED
@interface GKVoiceChat (Deprecated)
-@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;
+@property(copy, NS_NONATOMIC_IOSONLY) void(^playerStateUpdateHandler)(NSString *playerID, GKVoiceChatPlayerState state) API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKVoiceChat/playerVoiceChatStateDidChangeHandler`` property instead.", ios(4.1,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos, watchos);
@end
-__WATCHOS_PROHIBITED
@interface GKVoiceChat (Obsoleted)
/*** This property is obsolete. ***/
-@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;
+@property(readonly, nullable, NS_NONATOMIC_IOSONLY) NSArray<NSString *> *playerIDs API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKVoiceChat/players`` property instead.", ios(5.0,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos, watchos);
/*** This method is obsolete. It will never be invoked and its implementation does nothing***/
-- (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;
+- (void)setMute:(BOOL)isMuted forPlayer:(NSString *)playerID API_DEPRECATED_WITH_REPLACEMENT("Use the ``GKVoiceChat/setPlayer(_:muted:)`` method instead.", ios(5.0,8.0), macos(10.8,10.10)) API_UNAVAILABLE(tvos, watchos);
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChatService.h /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChatService.h
--- /Applications/Xcode_16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChatService.h 2024-11-14 05:58:05
+++ /Applications/Xcode_16.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/GameKit.framework/Headers/GKVoiceChatService.h 2025-02-07 20:40:41
@@ -99,14 +99,14 @@
@class GKVoiceChatService;
// GKVoiceChatService provides voice chat capabilities depending on your networking situation.
-NS_CLASS_DEPRECATED_IOS(3_0, 7_0, "Use SharePlay instead") API_UNAVAILABLE(tvos)
+API_DEPRECATED("Use SharePlay instead", ios(3.0,7.0), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(macos, tvos)
@interface GKVoiceChatService : NSObject
+ (GKVoiceChatService *)defaultVoiceChatService;
+ (BOOL)isVoIPAllowed;
-@property(assign) id<GKVoiceChatClient> client NS_DEPRECATED_IOS(3_0, 7_0) __TVOS_UNAVAILABLE;
+@property(assign) id<GKVoiceChatClient> client API_DEPRECATED("No longer supported.", ios(3.0,7.0), visionos(1.0,1.0), watchos(3.0,3.0)) API_UNAVAILABLE(macos, tvos);
// 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;
@@ -143,5 +143,3 @@
@property(readonly) float inputMeterLevel; //changes frequently as the near-end participant speaks
@end
-
-