Skip to content

StoreKit tvOS xcode16.0 b1

Rolf Bjarne Kvinge edited this page Sep 2, 2024 · 3 revisions

#StoreKit.framework https://github.com/xamarin/xamarin-macios/pull/21165

diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKCloudServiceController.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKCloudServiceController.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKCloudServiceController.h	2024-04-19 07:38:57
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKCloudServiceController.h	2024-05-30 05:23:40
@@ -15,33 +15,39 @@
     SKCloudServiceAuthorizationStatusDenied,
     SKCloudServiceAuthorizationStatusRestricted,
     SKCloudServiceAuthorizationStatusAuthorized,
-} API_AVAILABLE(ios(9.3), tvos(9.3), watchos(7.0), macos(11.0), macCatalyst(13.0)) API_UNAVAILABLE(visionos);
+}
+API_DEPRECATED("Use MusicAuthorization.Status from MusicKit", ios(9.3, 18.0), tvos(9.3, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0))
+API_UNAVAILABLE(visionos);
 
 typedef NS_OPTIONS(NSUInteger, SKCloudServiceCapability) {
     SKCloudServiceCapabilityNone                           = 0,
     SKCloudServiceCapabilityMusicCatalogPlayback           = 1 << 0,
-    SKCloudServiceCapabilityMusicCatalogSubscriptionEligible API_AVAILABLE(ios(10.1), tvos(10.1), watchos(7.0), macos(11.0), macCatalyst(13.0)) = 1 << 1,
+    SKCloudServiceCapabilityMusicCatalogSubscriptionEligible API_DEPRECATED("Use the canBecomeSubscriber property of MusicSubscription from MusicKit", ios(10.1, 18.0), tvos(10.1, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0)) = 1 << 1,
     SKCloudServiceCapabilityAddToCloudMusicLibrary         = 1 << 8,
-} API_AVAILABLE(ios(9.3), tvos(9.3), watchos(7.0), macos(11.0), macCatalyst(13.0)) API_UNAVAILABLE(visionos);
+}
+API_DEPRECATED("Use MusicSubscription from MusicKit", ios(9.3, 18.0), tvos(9.3, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0))
+API_UNAVAILABLE(visionos);
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(9.3), tvos(9.3), watchos(7.0), macos(11.0), macCatalyst(13.0)) API_UNAVAILABLE(visionos)
+SK_EXTERN_CLASS
+API_DEPRECATED("Use MusicKit", ios(9.3, 18.0), tvos(9.3, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0))
+API_UNAVAILABLE(visionos)
 @interface SKCloudServiceController : NSObject
 
-+ (SKCloudServiceAuthorizationStatus)authorizationStatus API_AVAILABLE(ios(9.3), tvos(9.3), watchos(7.0), macos(11.0), macCatalyst(13.0));
-+ (void)requestAuthorization:(void (^) (SKCloudServiceAuthorizationStatus authorizationStatus))completionHandler API_AVAILABLE(ios(9.3), tvos(9.3), watchos(7.0), macos(11.0), macCatalyst(13.0));
++ (SKCloudServiceAuthorizationStatus)authorizationStatus API_DEPRECATED("Use MusicAuthorization.currentStatus from MusicKit", ios(9.3, 18.0), tvos(9.3, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0));
++ (void)requestAuthorization:(void (^) (SKCloudServiceAuthorizationStatus authorizationStatus))completionHandler API_DEPRECATED("Use MusicAuthorization.request() from MusicKit", ios(9.3, 18.0), tvos(9.3, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0));
 
-- (void)requestCapabilitiesWithCompletionHandler:(void (^) (SKCloudServiceCapability capabilities, NSError * _Nullable error))completionHandler API_AVAILABLE(ios(9.3), tvos(9.3), watchos(7.0), macos(11.0), macCatalyst(13.0));
+- (void)requestCapabilitiesWithCompletionHandler:(void (^) (SKCloudServiceCapability capabilities, NSError * _Nullable error))completionHandler API_DEPRECATED("Use MusicSubscription.current from MusicKit", ios(9.3, 18.0), tvos(9.3, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0));
 
-- (void)requestStorefrontCountryCodeWithCompletionHandler:(void (^) (NSString * _Nullable storefrontCountryCode, NSError * _Nullable error))completionHandler API_AVAILABLE(ios(11.0));
-- (void)requestStorefrontIdentifierWithCompletionHandler:(void (^) (NSString * _Nullable storefrontIdentifier, NSError * _Nullable error))completionHandler API_AVAILABLE(ios(9.3), tvos(9.3), watchos(7.0), macos(11.0), macCatalyst(13.0));
+- (void)requestStorefrontCountryCodeWithCompletionHandler:(void (^) (NSString * _Nullable storefrontCountryCode, NSError * _Nullable error))completionHandler API_DEPRECATED("Use MusicDataRequest.currentCountryCode from MusicKit", ios(11.0, 18.0), macos(11.0, 15.0), macCatalyst(13.1, 18.0), tvos(11.0, 18.0), watchos(7.0, 11.0));
+- (void)requestStorefrontIdentifierWithCompletionHandler:(void (^) (NSString * _Nullable storefrontIdentifier, NSError * _Nullable error))completionHandler API_DEPRECATED("Use Storefront.current.id", ios(9.3, 18.0), tvos(9.3, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0));
 
-- (void)requestUserTokenForDeveloperToken:(NSString *)developerToken completionHandler:(void (^) (NSString * _Nullable userToken, NSError * _Nullable error))completionHandler API_AVAILABLE(ios(11.0), tvos(11.0), watchos(7.0), macos(11.0), macCatalyst(13.0));
+- (void)requestUserTokenForDeveloperToken:(NSString *)developerToken completionHandler:(void (^) (NSString * _Nullable userToken, NSError * _Nullable error))completionHandler API_DEPRECATED("Use MusicKit", ios(11.0, 18.0), tvos(11.0, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0));
 - (void)requestPersonalizationTokenForClientToken:(NSString *)clientToken withCompletionHandler:(void (^) (NSString * _Nullable personalizationToken, NSError * _Nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("requestUserTokenForDeveloperToken:completionHandler:", ios(10.3, 11.0), tvos(10.3, 11.0)) API_UNAVAILABLE(watchos, macos, macCatalyst);
 
 @end
 
-SK_EXTERN NSNotificationName const SKCloudServiceCapabilitiesDidChangeNotification API_AVAILABLE(ios(9.3), tvos(9.3), watchos(7.0), macos(11.0), macCatalyst(13.0)) API_UNAVAILABLE(visionos);
-SK_EXTERN NSNotificationName const SKStorefrontCountryCodeDidChangeNotification API_AVAILABLE(ios(11.0), tvos(11.0), watchos(7.0), macos(11.0), macCatalyst(13.0)) API_UNAVAILABLE(visionos);
-SK_EXTERN NSNotificationName const SKStorefrontIdentifierDidChangeNotification API_AVAILABLE(ios(9.3), tvos(9.3), watchos(7.0), macos(11.0), macCatalyst(13.0)) API_UNAVAILABLE(visionos);
+SK_EXTERN NSNotificationName const SKCloudServiceCapabilitiesDidChangeNotification API_DEPRECATED("Use MusicSubscription.subscriptionUpdates from MusicKit", ios(9.3, 18.0), tvos(9.3, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0)) API_UNAVAILABLE(visionos);
+SK_EXTERN NSNotificationName const SKStorefrontCountryCodeDidChangeNotification API_DEPRECATED("Use Storefront.updates", ios(11.0, 18.0), tvos(11.0, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0)) API_UNAVAILABLE(visionos);
+SK_EXTERN NSNotificationName const SKStorefrontIdentifierDidChangeNotification API_DEPRECATED("Use Storefront.updates", ios(9.3, 18.0), tvos(9.3, 18.0), watchos(7.0, 11.0), macos(11.0, 15.0), macCatalyst(13.0, 18.0)) API_UNAVAILABLE(visionos);
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKCloudServiceSetupViewController.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKCloudServiceSetupViewController.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKCloudServiceSetupViewController.h	2024-04-19 06:29:14
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKCloudServiceSetupViewController.h	2024-05-30 09:20:09
@@ -22,57 +22,102 @@
 @protocol SKCloudServiceSetupViewControllerDelegate;
 
 /// View controller to allow user to setup iTunes Store account for cloud service, such as Apple Music subscription.
+SK_EXTERN_CLASS
+API_DEPRECATED("Use the musicSubscriptionOffer(isPresented:options:onLoadCompletion:) SwiftUI View Modifier from MusicKit", ios(10.1, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos)
+__TVOS_PROHIBITED
 #if TARGET_OS_OSX
-SK_EXTERN_CLASS API_AVAILABLE(ios(10.1)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos) __TVOS_PROHIBITED @interface SKCloudServiceSetupViewController : NSViewController
+@interface SKCloudServiceSetupViewController : NSViewController
 #else
-SK_EXTERN_CLASS API_AVAILABLE(ios(10.1)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos) __TVOS_PROHIBITED @interface SKCloudServiceSetupViewController : UIViewController
+@interface SKCloudServiceSetupViewController : UIViewController
 #endif
 
 /// Optional delegate.
-@property (nonatomic, nullable, weak) id <SKCloudServiceSetupViewControllerDelegate> delegate API_AVAILABLE(ios(10.1)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos) __TVOS_PROHIBITED;
+@property (nonatomic, nullable, weak) id <SKCloudServiceSetupViewControllerDelegate> delegate;
 
 /// Load cloud service setup view with the given options.
 /// Block is invoked on the main thread when the load finishes.
-- (void)loadWithOptions:(NSDictionary<SKCloudServiceSetupOptionsKey, id> *)options completionHandler:(nullable void (^)(BOOL result, NSError * _Nullable error))completionHandler API_AVAILABLE(ios(10.1)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos) __TVOS_PROHIBITED;
+- (void)loadWithOptions:(NSDictionary<SKCloudServiceSetupOptionsKey, id> *)options completionHandler:(nullable void (^)(BOOL result, NSError * _Nullable error))completionHandler;
 
 @end
 
 
+API_DEPRECATED("Use the musicSubscriptionOffer(isPresented:options:onLoadCompletion:) SwiftUI View Modifier from MusicKit", ios(10.1, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos)
+__TVOS_PROHIBITED
 @protocol SKCloudServiceSetupViewControllerDelegate <NSObject>
 
 @optional
 
 /// Sent when the view controller was dismissed.
-- (void)cloudServiceSetupViewControllerDidDismiss:(SKCloudServiceSetupViewController *)cloudServiceSetupViewController API_AVAILABLE(ios(10.1)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos) __TVOS_PROHIBITED;
+- (void)cloudServiceSetupViewControllerDidDismiss:(SKCloudServiceSetupViewController *)cloudServiceSetupViewController;
 
 @end
 
 
 /// Action for setup entry point (of type SKCloudServiceSetupAction).
-SK_EXTERN SKCloudServiceSetupOptionsKey const SKCloudServiceSetupOptionsActionKey NS_SWIFT_NAME(action) API_AVAILABLE(ios(10.1)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos);
+SK_EXTERN SKCloudServiceSetupOptionsKey const SKCloudServiceSetupOptionsActionKey
+NS_SWIFT_NAME(action)
+API_DEPRECATED("Use the action property of MusicSubscriptionOffer.Options from MusicKit", ios(10.1, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos);
 
 /// Identifier of the iTunes Store item the user is trying to access which requires cloud service setup (NSNumber).
-SK_EXTERN SKCloudServiceSetupOptionsKey const SKCloudServiceSetupOptionsITunesItemIdentifierKey NS_SWIFT_NAME(iTunesItemIdentifier) API_AVAILABLE(ios(10.1)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos);
+SK_EXTERN SKCloudServiceSetupOptionsKey const SKCloudServiceSetupOptionsITunesItemIdentifierKey
+NS_SWIFT_NAME(iTunesItemIdentifier)
+API_DEPRECATED("Use the itemID property of MusicSubscriptionOffer.Options from MusicKit", ios(10.1, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos);
 
 /// iTunes Store affiliate token (NSString).
-SK_EXTERN SKCloudServiceSetupOptionsKey const SKCloudServiceSetupOptionsAffiliateTokenKey NS_SWIFT_NAME(affiliateToken) API_AVAILABLE(ios(10.3)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos);
+SK_EXTERN SKCloudServiceSetupOptionsKey const SKCloudServiceSetupOptionsAffiliateTokenKey
+NS_SWIFT_NAME(affiliateToken)
+API_DEPRECATED("Use the affiliateToken property of MusicSubscriptionOffer.Options from MusicKit", ios(10.3, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos);
 
 /// iTunes Store affiliate campaign token (NSString).
-SK_EXTERN SKCloudServiceSetupOptionsKey const SKCloudServiceSetupOptionsCampaignTokenKey NS_SWIFT_NAME(campaignToken) API_AVAILABLE(ios(10.3)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos);
+SK_EXTERN SKCloudServiceSetupOptionsKey const SKCloudServiceSetupOptionsCampaignTokenKey
+NS_SWIFT_NAME(campaignToken)
+API_DEPRECATED("Use the campaignToken property of MusicSubscriptionOffer.Options from MusicKit", ios(10.3, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos);
 
 /// Identifier used to select the main message presented to the user for this setup view (SKCloudServiceSetupMessageIdentifier).
 /// When missing, the setup view will be configured in a way that is equivalent to using SKCloudServiceSetupMessageIdentifierJoin.
-SK_EXTERN SKCloudServiceSetupOptionsKey const SKCloudServiceSetupOptionsMessageIdentifierKey NS_SWIFT_NAME(messageIdentifier) API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos);
+SK_EXTERN SKCloudServiceSetupOptionsKey const SKCloudServiceSetupOptionsMessageIdentifierKey
+NS_SWIFT_NAME(messageIdentifier)
+API_DEPRECATED("Use the messageIdentifier property of MusicSubscriptionOffer.Options from MusicKit", ios(11.0, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos);
 
 // Supported actions for setup entry point.
+SK_EXTERN SKCloudServiceSetupAction const SKCloudServiceSetupActionSubscribe
+API_DEPRECATED("Use MusicSubscriptionOffer.Action.subscribe from MusicKit", ios(10.1, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos);
 
-SK_EXTERN SKCloudServiceSetupAction const SKCloudServiceSetupActionSubscribe API_AVAILABLE(ios(10.1)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos);
-
 // Supported message identifiers.
+SK_EXTERN SKCloudServiceSetupMessageIdentifier const SKCloudServiceSetupMessageIdentifierJoin
+API_DEPRECATED("Use MusicSubscriptionOffer.MessageIdentifier.join from MusicKit", ios(11.0, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos);
 
-SK_EXTERN SKCloudServiceSetupMessageIdentifier const SKCloudServiceSetupMessageIdentifierJoin API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos);
-SK_EXTERN SKCloudServiceSetupMessageIdentifier const SKCloudServiceSetupMessageIdentifierConnect API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos);
-SK_EXTERN SKCloudServiceSetupMessageIdentifier const SKCloudServiceSetupMessageIdentifierAddMusic API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos);
-SK_EXTERN SKCloudServiceSetupMessageIdentifier const SKCloudServiceSetupMessageIdentifierPlayMusic API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos);
+SK_EXTERN SKCloudServiceSetupMessageIdentifier const SKCloudServiceSetupMessageIdentifierConnect
+API_DEPRECATED("No longer supported", ios(11.0, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos);
+
+SK_EXTERN SKCloudServiceSetupMessageIdentifier const SKCloudServiceSetupMessageIdentifierAddMusic
+API_DEPRECATED("Use MusicSubscriptionOffer.MessageIdentifier.addMusic from MusicKit", ios(11.0, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos);
+
+SK_EXTERN SKCloudServiceSetupMessageIdentifier const SKCloudServiceSetupMessageIdentifierPlayMusic
+API_DEPRECATED("Use MusicSubscriptionOffer.MessageIdentifier.playMusic from MusicKit", ios(11.0, 18.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(macos);
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPayment.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPayment.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPayment.h	2024-04-19 07:38:57
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPayment.h	2024-05-30 04:39:27
@@ -13,44 +13,50 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0)) NS_SWIFT_NONSENDABLE @interface SKPayment : NSObject <NSCopying, NSMutableCopying> {
+SK_EXTERN_CLASS
+API_DEPRECATED("Use Product.purchase(confirmIn:options:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_NONSENDABLE
+@interface SKPayment : NSObject <NSCopying, NSMutableCopying> {
 @private
     id _internal;
 }
 
-+ (instancetype)paymentWithProduct:(SKProduct *)product API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
++ (instancetype)paymentWithProduct:(SKProduct *)product;
 
 + (id)paymentWithProductIdentifier:(NSString *)identifier API_DEPRECATED_WITH_REPLACEMENT("+[SKPayment paymentWithProduct:]", ios(3.0, 5.0), macCatalyst(13.0, 13.0)) API_UNAVAILABLE(tvos, macos, watchos) API_UNAVAILABLE(visionos);
 
 // Identifier agreed upon with the store.  Required.
-@property(nonatomic, copy, readonly) NSString *productIdentifier API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, copy, readonly) NSString *productIdentifier;
 
 // Payment request data agreed upon with the store.  Optional.
-@property(nonatomic, copy, readonly, nullable) NSData *requestData API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, copy, readonly, nullable) NSData *requestData API_DEPRECATED("Create Product.PurchaseOption.custom values to use in Product.purchase(confirmIn:options:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // default: 1.  Must be at least 1.
-@property(nonatomic, readonly) NSInteger quantity API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSInteger quantity API_DEPRECATED("Create a Product.PurchaseOption.quantity to use in Product.purchase(confirmIn:options:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // Application-specific user identifier.  Optional.
-@property(nonatomic, copy, readonly, nullable) NSString *applicationUsername API_AVAILABLE(ios(7.0), macos(10.9), watchos(6.2), visionos(1.0));
+@property(nonatomic, copy, readonly, nullable) NSString *applicationUsername API_DEPRECATED("Create a Product.PurchaseOption.appAccountToken to use in Product.purchase(confirmIn:options:)", ios(7.0, 18.0), macos(10.9, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // Force an "ask to buy" flow for this payment, in the sandbox
-@property(nonatomic, readonly) BOOL simulatesAskToBuyInSandbox API_AVAILABLE(ios(8.3), macos(10.14), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) BOOL simulatesAskToBuyInSandbox API_DEPRECATED("Create a Product.PurchaseOption.simulatesAskToBuyInSandbox to use in Product.purchase(confirmIn:options:)", ios(8.3, 18.0), macos(10.14, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // The relevant data for specifying a discount to be applied to this payment. Optional.
-@property(nonatomic, copy, readonly, nullable) SKPaymentDiscount *paymentDiscount API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+@property(nonatomic, copy, readonly, nullable) SKPaymentDiscount *paymentDiscount API_DEPRECATED("Create a Product.PurchaseOption.promotionalOffer to use in Product.purchase(confirmIn:options:)", ios(12.2, 18.0), macos(10.14.4, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 @end
 
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0)) NS_SWIFT_NONSENDABLE @interface SKMutablePayment : SKPayment
+SK_EXTERN_CLASS
+API_DEPRECATED("Use Product.purchase(confirmIn:options:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_NONSENDABLE
+@interface SKMutablePayment : SKPayment
 
-@property(nonatomic, copy, readwrite, nullable) NSString *applicationUsername API_AVAILABLE(ios(7.0), macos(10.9), watchos(6.2), visionos(1.0));
-@property(nonatomic, copy, readwrite, nullable) SKPaymentDiscount *paymentDiscount API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
-@property(nonatomic, copy, readwrite) NSString *productIdentifier API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
-@property(nonatomic, readwrite) NSInteger quantity API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
-@property(nonatomic, copy, readwrite, nullable) NSData *requestData API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
-@property(nonatomic, readwrite) BOOL simulatesAskToBuyInSandbox API_AVAILABLE(ios(8.3), macos(10.14), watchos(6.2), visionos(1.0));
+@property(nonatomic, copy, readwrite, nullable) NSString *applicationUsername API_DEPRECATED("Create a Product.PurchaseOption.appAccountToken to use in Product.purchase(confirmIn:options:)", ios(7.0, 18.0), macos(10.9, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
+@property(nonatomic, copy, readwrite, nullable) SKPaymentDiscount *paymentDiscount API_DEPRECATED("Create a Product.PurchaseOption.promotionalOffer to use in Product.purchase(confirmIn:options:)", ios(12.2, 18.0), macos(10.14.4, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
+@property(nonatomic, copy, readwrite) NSString *productIdentifier;
+@property(nonatomic, readwrite) NSInteger quantity API_DEPRECATED("Create a Product.PurchaseOption.quantity to use in Product.purchase(confirmIn:options:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
+@property(nonatomic, copy, readwrite, nullable) NSData *requestData API_DEPRECATED("Create Product.PurchaseOption.custom values to use in Product.purchase(confirmIn:options:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
+@property(nonatomic, readwrite) BOOL simulatesAskToBuyInSandbox API_DEPRECATED("Create a Product.PurchaseOption.simulatesAskToBuyInSandbox to use in Product.purchase(confirmIn:options:)", ios(8.3, 18.0), macos(10.14, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentDiscount.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentDiscount.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentDiscount.h	2024-04-19 07:38:58
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentDiscount.h	2024-05-30 04:59:45
@@ -10,7 +10,10 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0)) NS_SWIFT_SENDABLE @interface SKPaymentDiscount : NSObject {
+SK_EXTERN_CLASS
+API_DEPRECATED("Create a Product.PurchaseOption.promotionalOffer to use in Product.purchase(confirmIn:options:)", ios(12.2, 18.0), tvos(12.2, 18.0), macos(10.14.4, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_SENDABLE
+@interface SKPaymentDiscount : NSObject {
 @private
     id _internal;
 }
@@ -19,22 +22,22 @@
                      keyIdentifier:(NSString *)keyIdentifier
                              nonce:(NSUUID *)nonce
                          signature:(NSString *)signature
-                         timestamp:(NSNumber *)timestamp API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+                         timestamp:(NSNumber *)timestamp;
 
 // Identifier agreed upon with the App Store for a discount of your choosing.
-@property(nonatomic, copy, readonly) NSString *identifier API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+@property(nonatomic, copy, readonly) NSString *identifier;
 
 // The identifier of the public/private key pair agreed upon with the App Store when the keys were generated.
-@property(nonatomic, copy, readonly) NSString *keyIdentifier API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+@property(nonatomic, copy, readonly) NSString *keyIdentifier;
 
 // One-time use random entropy-adding value for security.
-@property(nonatomic, copy, readonly) NSUUID *nonce API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+@property(nonatomic, copy, readonly) NSUUID *nonce;
 
 // The cryptographic signature generated by your private key.
-@property(nonatomic, copy, readonly) NSString *signature API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+@property(nonatomic, copy, readonly) NSString *signature;
 
 // Timestamp of when the signature is created.
-@property(nonatomic, copy, readonly) NSNumber *timestamp API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+@property(nonatomic, copy, readonly) NSNumber *timestamp;
 
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentQueue.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentQueue.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentQueue.h	2024-04-19 07:52:05
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentQueue.h	2024-05-30 09:20:09
@@ -19,29 +19,32 @@
 NS_ASSUME_NONNULL_BEGIN
 
 // SKPaymentQueue interacts with the server-side payment queue
-SK_EXTERN_CLASS API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0)) NS_SWIFT_SENDABLE @interface SKPaymentQueue : NSObject {
+SK_EXTERN_CLASS
+API_DEPRECATED("No longer supported", ios(3.0, 18.0), tvos(9.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_SENDABLE
+@interface SKPaymentQueue : NSObject {
 @private
     id _internal;
 }
 
-@property (NS_NONATOMIC_IOSONLY, weak, nullable) id<SKPaymentQueueDelegate> delegate API_AVAILABLE(ios(13.0), macos(10.15), watchos(6.2), visionos(1.0));
+@property (NS_NONATOMIC_IOSONLY, weak, nullable) id<SKPaymentQueueDelegate> delegate API_DEPRECATED("No longer supported", ios(13.0, 18.0), tvos(13.0, 18.0), macos(10.15, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property (NS_NONATOMIC_IOSONLY, readonly, nullable) SKStorefront *storefront API_AVAILABLE(ios(13.0), macos(10.15), watchos(6.2), visionos(1.0));
+@property (NS_NONATOMIC_IOSONLY, readonly, nullable) SKStorefront *storefront API_DEPRECATED("Use Storefront.current", ios(13.0, 18.0), tvos(13.0, 18.0), macos(10.15, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-+ (instancetype)defaultQueue API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
++ (instancetype)defaultQueue;
 
 // NO if this device is not able or allowed to make payments
-+ (BOOL)canMakePayments API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
++ (BOOL)canMakePayments API_DEPRECATED("Use AppStore.canMakePayments", ios(3.0, 18.0), tvos(9.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // Asynchronous.  Add a payment to the server queue.  The payment is copied to add an SKPaymentTransaction to the transactions array.  The same payment can be added multiple times to create multiple transactions.
-- (void)addPayment:(SKPayment *)payment API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (void)addPayment:(SKPayment *)payment API_DEPRECATED("Use Product.purchase(confirmIn:options:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // Asynchronous.  Will add completed transactions for the current user back to the queue to be re-completed.  User will be asked to authenticate.  Observers will receive 0 or more -paymentQueue:updatedTransactions:, followed by either -paymentQueueRestoreCompletedTransactionsFinished: on success or -paymentQueue:restoreCompletedTransactionsFailedWithError: on failure.  In the case of partial success, some transactions may still be delivered.
-- (void)restoreCompletedTransactions API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
-- (void)restoreCompletedTransactionsWithApplicationUsername:(nullable NSString *)username API_AVAILABLE(ios(7.0), macos(10.9), watchos(6.2), visionos(1.0));
+- (void)restoreCompletedTransactions API_DEPRECATED("Use AppStore.sync()", ios(3.0, 18.0), tvos(9.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
+- (void)restoreCompletedTransactionsWithApplicationUsername:(nullable NSString *)username API_DEPRECATED("Use AppStore.sync()", ios(7.0, 18.0), tvos(7.0, 18.0), macos(10.9, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // Asynchronous.  Remove a finished (i.e. failed or completed) transaction from the queue.  Attempting to finish a purchasing transaction will throw an exception.
-- (void)finishTransaction:(SKPaymentTransaction *)transaction API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (void)finishTransaction:(SKPaymentTransaction *)transaction API_DEPRECATED("Use Transaction.finish()", ios(3.0, 18.0), tvos(9.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // Asynchronous.  Start the given downloads (SKDownload).
 - (void)startDownloads:(NSArray<SKDownload *> *)downloads API_DEPRECATED("Hosted content is no longer supported", ios(6.0, 16.0), macos(10.8, 13.0), tvos(9.0, 16.0), watchos(6.2, 9.0)) API_UNAVAILABLE(visionos);
@@ -54,60 +57,62 @@
 - (void)cancelDownloads:(NSArray<SKDownload *> *)downloads API_DEPRECATED("Hosted content is no longer supported", ios(6.0, 16.0), macos(10.8, 13.0), tvos(9.0, 16.0), watchos(6.2, 9.0)) API_UNAVAILABLE(visionos);
 
 // Observers are not retained.  The transactions array will only be synchronized with the server while the queue has observers.  This may require that the user authenticate.
-- (void)addTransactionObserver:(id <SKPaymentTransactionObserver>)observer API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0)) NS_SWIFT_NAME(add(_:));
-- (void)removeTransactionObserver:(id <SKPaymentTransactionObserver>)observer API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0)) NS_SWIFT_NAME(remove(_:));
+- (void)addTransactionObserver:(id<SKPaymentTransactionObserver>)observer API_DEPRECATED("Use Transaction.updates or PurchaseResult from Product.purchase(confirmIn:options:)", ios(3.0, 18.0), tvos(9.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0)) NS_SWIFT_NAME(add(_:));
+- (void)removeTransactionObserver:(id<SKPaymentTransactionObserver>)observer API_DEPRECATED("No longer supported", ios(3.0, 18.0), tvos(9.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0)) NS_SWIFT_NAME(remove(_:));
 
 // Array of transactionObservers that are available. Transaction observers are not retained.
-@property(nonatomic, readonly) NSArray <id <SKPaymentTransactionObserver>> *transactionObservers API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), watchos(7.0), visionos(1.0));
+@property(nonatomic, readonly) NSArray <id<SKPaymentTransactionObserver>> *transactionObservers API_DEPRECATED("Use Transaction.updates or PurchaseResult from Product.purchase(confirmIn:options:)", ios(14.0, 18.0), tvos(14.0, 18.0), macos(11.0, 15.0), watchos(7.0, 11.0), visionos(1.0, 2.0));
 
 // Array of unfinished SKPaymentTransactions.  Only valid while the queue has observers.  Updated asynchronously.
-@property(nonatomic, readonly) NSArray<SKPaymentTransaction *> *transactions API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSArray<SKPaymentTransaction *> *transactions API_DEPRECATED("Use Transaction.unfinished", ios(3.0, 18.0), tvos(9.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // If StoreKit has called your SKPaymentQueueDelegate's "paymentQueueShouldShowPriceConsent:" method and you returned NO, you can use this method to show the price consent UI at a later time that is more appropriate for your app. If there is no pending price consent, this method will do nothing.
-- (void)showPriceConsentIfNeeded API_AVAILABLE(ios(13.4), visionos(1.0)) API_UNAVAILABLE(tvos, macos, watchos);
+- (void)showPriceConsentIfNeeded API_DEPRECATED("Use Message.messages and Message.display(in:)", ios(13.4, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(tvos, macos, watchos);
 
 // Call this method to have StoreKit present a sheet enabling the user to redeem codes provided by your app.
-- (void)presentCodeRedemptionSheet API_AVAILABLE(ios(14.0), visionos(1.0)) API_UNAVAILABLE(tvos, macos, watchos);
+- (void)presentCodeRedemptionSheet API_DEPRECATED("Use AppStore.presentOfferCodeRedeemSheet(in:)", ios(14.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(tvos, macos, watchos);
 
 @end
 
+API_DEPRECATED("No longer supported", ios(13.0, 18.0), tvos(13.0, 18.0), macos(10.15, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
 @protocol SKPaymentQueueDelegate <NSObject>
 @optional
 // Sent when the storefront changes while a payment is processing.
-- (BOOL)paymentQueue:(SKPaymentQueue *)paymentQueue shouldContinueTransaction:(SKPaymentTransaction *)transaction inStorefront:(SKStorefront *)newStorefront API_AVAILABLE(ios(13.0), macos(10.15), watchos(6.2), visionos(1.0));
+- (BOOL)paymentQueue:(SKPaymentQueue *)paymentQueue shouldContinueTransaction:(SKPaymentTransaction *)transaction inStorefront:(SKStorefront *)newStorefront API_DEPRECATED("Pass Product.PurchaseOption.onStorefrontChange(shouldContinuePurchase:) to product.purchase(options:)", ios(13.0, 18.0), tvos(13.0, 18.0), macos(10.15, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // Sent if there is a pending price consent confirmation from the App Store for the current user. Return YES to immediately show the price consent UI. Return NO if you intend to show it at a later time. Defaults to YES.
 // This may be called at any time that you have transaction observers on the payment queue, so make sure to set the delegate before adding any transaction observers if you intend to implement this method.
-- (BOOL)paymentQueueShouldShowPriceConsent:(SKPaymentQueue *)paymentQueue API_AVAILABLE(ios(13.4), visionos(1.0)) API_UNAVAILABLE(tvos, macos, watchos);
+- (BOOL)paymentQueueShouldShowPriceConsent:(SKPaymentQueue *)paymentQueue API_DEPRECATED("Use Message.messages and Message.display(in:)", ios(13.4, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(tvos, macos, watchos);
 
 @end
 
 
+API_DEPRECATED("Use StoreKit 2 Transaction APIs", ios(3.0, 18.0), tvos(9.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
 @protocol SKPaymentTransactionObserver <NSObject>
 @required
 // Sent when the transaction array has changed (additions or state changes).  Client should check state of transactions and finish as appropriate.
-- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions;
 
 @optional
 // Sent when transactions are removed from the queue (via finishTransaction:).
-- (void)paymentQueue:(SKPaymentQueue *)queue removedTransactions:(NSArray<SKPaymentTransaction *> *)transactions API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (void)paymentQueue:(SKPaymentQueue *)queue removedTransactions:(NSArray<SKPaymentTransaction *> *)transactions;
 
 // Sent when an error is encountered while adding transactions from the user's purchase history back to the queue.
-- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error API_DEPRECATED("Use AppStore.sync()", ios(3.0, 18.0), tvos(9.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // Sent when all transactions from the user's purchase history have successfully been added back to the queue.
-- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue API_DEPRECATED("Use AppStore.sync()", ios(3.0, 18.0), tvos(9.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // Sent when the download state has changed.
 - (void)paymentQueue:(SKPaymentQueue *)queue updatedDownloads:(NSArray<SKDownload *> *)downloads API_DEPRECATED("Hosted content is no longer supported", ios(6.0, 16.0), macos(10.8, 13.0), tvos(9.0, 16.0), watchos(6.2, 9.0)) API_UNAVAILABLE(visionos);
 
 // Sent when a user initiates an IAP buy from the App Store
-- (BOOL)paymentQueue:(SKPaymentQueue *)queue shouldAddStorePayment:(SKPayment *)payment forProduct:(SKProduct *)product NS_SWIFT_NAME(paymentQueue(_:shouldAddStorePayment:for:)) API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+- (BOOL)paymentQueue:(SKPaymentQueue *)queue shouldAddStorePayment:(SKPayment *)payment forProduct:(SKProduct *)product NS_SWIFT_NAME(paymentQueue(_:shouldAddStorePayment:for:)) API_DEPRECATED("Use PurchaseIntent.intents", ios(11.0, 18.0), tvos(11.0, 18.0), macos(11.0, 15.0), macCatalyst(14.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
 
-- (void)paymentQueueDidChangeStorefront:(SKPaymentQueue *)queue API_AVAILABLE(ios(13.0), macos(10.15), watchos(6.2), visionos(1.0));
+- (void)paymentQueueDidChangeStorefront:(SKPaymentQueue *)queue API_DEPRECATED("Use Storefront.updates", ios(13.0, 18.0), tvos(13.0, 18.0), macos(10.15, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // Sent when entitlements for a user have changed and access to the specified IAPs has been revoked.
-- (void)paymentQueue:(SKPaymentQueue *)queue didRevokeEntitlementsForProductIdentifiers:(NSArray<NSString *> *)productIdentifiers NS_SWIFT_NAME(paymentQueue(_:didRevokeEntitlementsForProductIdentifiers:)) API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0), watchos(7.0), visionos(1.0));
+- (void)paymentQueue:(SKPaymentQueue *)queue didRevokeEntitlementsForProductIdentifiers:(NSArray<NSString *> *)productIdentifiers NS_SWIFT_NAME(paymentQueue(_:didRevokeEntitlementsForProductIdentifiers:)) API_DEPRECATED("Use Transaction.updates", ios(14.0, 18.0), macos(11.0, 15.0), tvos(14.0, 18.0), watchos(7.0, 11.0), visionos(1.0, 2.0));
 
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentTransaction.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentTransaction.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentTransaction.h	2024-04-19 07:38:58
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentTransaction.h	2024-05-30 04:59:44
@@ -16,37 +16,40 @@
     SKPaymentTransactionStatePurchased,     // Transaction is in queue, user has been charged.  Client should complete the transaction.
     SKPaymentTransactionStateFailed,        // Transaction was cancelled or failed before being added to the server queue.
     SKPaymentTransactionStateRestored,      // Transaction was restored from user's purchase history.  Client should complete the transaction.
-    SKPaymentTransactionStateDeferred API_AVAILABLE(ios(8.0), macos(10.10), watchos(6.2)),   // The transaction is in the queue, but its final status is pending external action.
-} API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+    SKPaymentTransactionStateDeferred API_DEPRECATED("Use PurchaseResult.pending from Product.purchase(confirmIn:options:)", ios(8.0, 18.0), macos(10.10, 15.0), watchos(6.2, 11.0)),   // The transaction is in the queue, but its final status is pending external action.
+} API_DEPRECATED("Use PurchaseResult from Product.purchase(confirmIn:options:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 NS_ASSUME_NONNULL_BEGIN
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0)) NS_SWIFT_SENDABLE @interface SKPaymentTransaction : NSObject {
+SK_EXTERN_CLASS
+API_DEPRECATED("Use PurchaseResult from Product.purchase(confirmIn:options:)",ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_SENDABLE
+@interface SKPaymentTransaction : NSObject {
 @private
     id _internal;
 }
 
 // Only set if state is SKPaymentTransactionFailed
-@property(nonatomic, readonly, nullable) NSError *error API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly, nullable) NSError *error;
 
 // Only valid if state is SKPaymentTransactionStateRestored.
-@property(nonatomic, readonly, nullable) SKPaymentTransaction *originalTransaction API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly, nullable) SKPaymentTransaction *originalTransaction;
 
-@property(nonatomic, readonly) SKPayment *payment API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) SKPayment *payment;
 
 // Available downloads (SKDownload) for this transaction
 @property(nonatomic, readonly) NSArray<SKDownload *> *downloads API_DEPRECATED("Hosted content is no longer supported", ios(6.0, 16.0), macos(10.8, 13.0), tvos(9.0, 16.0), watchos(6.2, 9.0)) API_UNAVAILABLE(visionos);
 
 // The date when the transaction was added to the server queue.  Only valid if state is SKPaymentTransactionStatePurchased or SKPaymentTransactionStateRestored.
-@property(nonatomic, readonly, nullable) NSDate *transactionDate API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly, nullable) NSDate *transactionDate;
 
 // The unique server-provided identifier.  Only valid if state is SKPaymentTransactionStatePurchased or SKPaymentTransactionStateRestored.
-@property(nonatomic, readonly, nullable) NSString *transactionIdentifier API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly, nullable) NSString *transactionIdentifier;
 
 // Only valid if state is SKPaymentTransactionStatePurchased.
 @property(nonatomic, readonly, nullable) NSData *transactionReceipt API_DEPRECATED_WITH_REPLACEMENT("-[NSBundle appStoreReceiptURL]", ios(3.0, 7.0), macCatalyst(13.0, 13.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(macos, watchos);
 
-@property(nonatomic, readonly) SKPaymentTransactionState transactionState API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) SKPaymentTransactionState transactionState;
 
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProduct.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProduct.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProduct.h	2024-04-19 07:38:57
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProduct.h	2024-05-30 10:37:46
@@ -15,58 +15,66 @@
     SKProductPeriodUnitWeek,
     SKProductPeriodUnitMonth,
     SKProductPeriodUnitYear
-} NS_SWIFT_NAME(SKProduct.PeriodUnit) API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+}
+NS_SWIFT_NAME(SKProduct.PeriodUnit)
+API_DEPRECATED("Use Product.SubscriptionPeriod.Unit", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 NS_ASSUME_NONNULL_BEGIN
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0)) NS_SWIFT_SENDABLE @interface SKProductSubscriptionPeriod : NSObject {
+SK_EXTERN_CLASS
+API_DEPRECATED("Use Product.SubscriptionPeriod", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_SENDABLE
+@interface SKProductSubscriptionPeriod : NSObject {
 @private
     id _internal;
 }
 
-@property(nonatomic, readonly) NSUInteger numberOfUnits API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSUInteger numberOfUnits;
 
-@property(nonatomic, readonly) SKProductPeriodUnit unit API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) SKProductPeriodUnit unit;
 
 @end
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0)) NS_SWIFT_SENDABLE @interface SKProduct : NSObject {
+SK_EXTERN_CLASS
+API_DEPRECATED("Use Product", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_SENDABLE
+@interface SKProduct : NSObject {
 @private
     id _internal;
 }
 
-@property(nonatomic, readonly) NSString *localizedDescription API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSString *localizedDescription API_DEPRECATED("Use Product.description", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly) NSString *localizedTitle API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSString *localizedTitle API_DEPRECATED("Use Product.displayName", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly) NSDecimalNumber *price API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSDecimalNumber *price API_DEPRECATED("Use Product.displayPrice", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly) NSLocale *priceLocale API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSLocale *priceLocale API_DEPRECATED("Use Product.displayPrice", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly) NSString *productIdentifier API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSString *productIdentifier API_DEPRECATED("Use Product.id", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 // YES if this product has content downloadable using SKDownload
-@property(nonatomic, readonly) BOOL isDownloadable API_AVAILABLE(ios(6.0), macos(10.15), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) BOOL isDownloadable API_DEPRECATED("Hosted content is no longer supported", ios(6.0, 16.0), macos(10.15, 13.0), watchos(6.2, 9.0), visionos(1.0, 2.0));
 @property(nonatomic, readonly) BOOL downloadable API_DEPRECATED_WITH_REPLACEMENT("-[SKProduct isDownloadable]", macos(10.8, 10.15)) API_UNAVAILABLE(ios, watchos, visionos);
 
 // YES if this product allows for sharing among family members
-@property(nonatomic, readonly) BOOL isFamilyShareable API_AVAILABLE(ios(14.0), macos(11.0), watchos(7.0), visionos(1.0));
+@property(nonatomic, readonly) BOOL isFamilyShareable API_DEPRECATED("Use Product.isFamilyShareable", ios(14.0, 18.0), macos(11.0, 15.0), watchos(7.0, 11.0), visionos(1.0, 2.0));
 
 // Sizes in bytes (NSNumber [long long]) of the downloads available for this product
 @property(nonatomic, readonly) NSArray<NSNumber *> *contentLengths API_DEPRECATED_WITH_REPLACEMENT("-[SKProduct downloadContentLengths]", macos(10.8, 10.14)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
-@property(nonatomic, readonly) NSArray<NSNumber *> *downloadContentLengths API_AVAILABLE(ios(6.0), macos(10.14), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSArray<NSNumber *> *downloadContentLengths API_DEPRECATED("Hosted content is no longer supported", ios(6.0, 16.0), macos(10.14, 13.0), watchos(6.2, 9.0), visionos(1.0, 2.0));
 
 // Version of the downloadable content
 @property(nonatomic, readonly) NSString *contentVersion API_DEPRECATED_WITH_REPLACEMENT("-[SKProduct downloadContentVersion]", macos(10.8, 10.14)) API_UNAVAILABLE(visionos);
-@property(nonatomic, readonly) NSString *downloadContentVersion API_AVAILABLE(ios(6.0), macos(10.14), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSString *downloadContentVersion API_DEPRECATED("Hosted content is no longer supported", ios(6.0, 16.0), macos(10.14, 13.0), watchos(6.2, 9.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly, nullable) SKProductSubscriptionPeriod *subscriptionPeriod API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly, nullable) SKProductSubscriptionPeriod *subscriptionPeriod API_DEPRECATED("Use Product.subscription.subscriptionPeriod", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly, nullable) SKProductDiscount *introductoryPrice API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly, nullable) SKProductDiscount *introductoryPrice API_DEPRECATED("Use Product.subscription.introductionaryOffer", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly, nullable) NSString *subscriptionGroupIdentifier API_AVAILABLE(ios(12.0), macos(10.14), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly, nullable) NSString *subscriptionGroupIdentifier API_DEPRECATED("Use Product.subscription.subscriptionGroupID", ios(12.0, 18.0), macos(10.14, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly) NSArray<SKProductDiscount *> *discounts API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSArray<SKProductDiscount *> *discounts API_DEPRECATED("Use Product.subscription.promotionalOffers", ios(12.2, 18.0), macos(10.14.4, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductDiscount.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductDiscount.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductDiscount.h	2024-04-19 07:38:58
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductDiscount.h	2024-05-30 04:59:45
@@ -14,33 +14,40 @@
     SKProductDiscountPaymentModePayAsYouGo,
     SKProductDiscountPaymentModePayUpFront,
     SKProductDiscountPaymentModeFreeTrial
-} NS_SWIFT_NAME(SKProductDiscount.PaymentMode) API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+}
+NS_SWIFT_NAME(SKProductDiscount.PaymentMode)
+API_DEPRECATED("Use Product.SubscriptionOffer.PaymentMode", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 typedef NS_ENUM(NSUInteger, SKProductDiscountType) {
     SKProductDiscountTypeIntroductory,
     SKProductDiscountTypeSubscription,
-} NS_SWIFT_NAME(SKProductDiscount.Type) API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+}
+NS_SWIFT_NAME(SKProductDiscount.Type)
+API_DEPRECATED("Use Product.SubscriptionOffer.OfferType", ios(12.2, 18.0), macos(10.14.4, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 NS_ASSUME_NONNULL_BEGIN
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(11.2), macos(10.13.2), visionos(1.0)) NS_SWIFT_SENDABLE @interface SKProductDiscount : NSObject {
+SK_EXTERN_CLASS
+API_DEPRECATED("Use Product.SubscriptionOffer", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_SENDABLE
+@interface SKProductDiscount : NSObject {
 @private
     id _internal;
 }
 
-@property(nonatomic, readonly) NSDecimalNumber *price API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSDecimalNumber *price API_DEPRECATED("Use Product.SubscriptionOffer.displayPrice", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly) NSLocale *priceLocale API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSLocale *priceLocale API_DEPRECATED("Use Product.SubscriptionOffer.displayPrice", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly, nullable) NSString *identifier API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly, nullable) NSString *identifier API_DEPRECATED("Use Product.SubscriptionOffer.id", ios(12.2, 18.0), macos(10.14.4, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly) SKProductSubscriptionPeriod *subscriptionPeriod API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) SKProductSubscriptionPeriod *subscriptionPeriod API_DEPRECATED("Use Product.SubscriptionOffer.period", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly) NSUInteger numberOfPeriods API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSUInteger numberOfPeriods API_DEPRECATED("Use Product.SubscriptionOffer.periodCount", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly) SKProductDiscountPaymentMode paymentMode API_AVAILABLE(ios(11.2), macos(10.13.2), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) SKProductDiscountPaymentMode paymentMode API_DEPRECATED("Use Product.SubscriptionOffer.paymentMode", ios(11.2, 18.0), macos(10.13.2, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
-@property(nonatomic, readonly) SKProductDiscountType type API_AVAILABLE(ios(12.2), macos(10.14.4), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) SKProductDiscountType type API_DEPRECATED("Use Product.SubscriptionOffer.type", ios(12.2, 18.0), macos(10.14.4, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductStorePromotionController.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductStorePromotionController.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductStorePromotionController.h	2024-04-19 07:38:58
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductStorePromotionController.h	2024-05-30 04:59:45
@@ -16,17 +16,36 @@
     SKProductStorePromotionVisibilityDefault,
     SKProductStorePromotionVisibilityShow,
     SKProductStorePromotionVisibilityHide,
-} API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0)) API_UNAVAILABLE(watchos, visionos);
+} API_DEPRECATED("Use Product.PromotionInfo.Visibility", ios(11.0, 18.0), macos(11.0, 15.0), macCatalyst(14.0, 18.0)) API_UNAVAILABLE(watchos, visionos);
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0)) API_UNAVAILABLE(watchos, visionos) @interface SKProductStorePromotionController : NSObject
+SK_EXTERN_CLASS
+API_DEPRECATED("Use Product.PromotionInfo", ios(11.0, 18.0), macos(11.0, 15.0), macCatalyst(14.0, 18.0))
+API_UNAVAILABLE(watchos, visionos)
+@interface SKProductStorePromotionController : NSObject
 
-+ (instancetype)defaultController API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0)) API_UNAVAILABLE(watchos, visionos);
++ (instancetype)defaultController;
 
-- (void)fetchStorePromotionVisibilityForProduct:(SKProduct *)product completionHandler:(nullable void (^)(SKProductStorePromotionVisibility storePromotionVisibility, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(promotionVisibility(for:)) API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0)) API_UNAVAILABLE(watchos, visionos);
-- (void)updateStorePromotionVisibility:(SKProductStorePromotionVisibility)promotionVisibility forProduct:(SKProduct *)product completionHandler:(nullable void (^)(NSError * _Nullable error))completionHandler NS_SWIFT_NAME(update(storePromotionVisibility:for:completionHandler:)) NS_SWIFT_ASYNC_NAME(update(promotionVisibility:for:)) API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0)) API_UNAVAILABLE(watchos, visionos);
+- (void)fetchStorePromotionVisibilityForProduct:(SKProduct *)product completionHandler:(nullable void (^)(SKProductStorePromotionVisibility storePromotionVisibility, NSError * _Nullable error))completionHandler
+NS_SWIFT_ASYNC_NAME(promotionVisibility(for:))
+API_DEPRECATED("Get visibility from Product.PromotionInfo.currentOrder", ios(11.0, 18.0), macos(11.0, 15.0), macCatalyst(14.0, 18.0))
+API_UNAVAILABLE(watchos, visionos);
 
-- (void)fetchStorePromotionOrderWithCompletionHandler:(nullable void (^)(NSArray<SKProduct *> *promotionOrder, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(promotionOrder()) API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0)) API_UNAVAILABLE(watchos, visionos);
-- (void)updateStorePromotionOrder:(NSArray<SKProduct *> *)promotionOrder completionHandler:(nullable void (^)(NSError * _Nullable error))completionHandler NS_SWIFT_NAME(update(storePromotionOrder:completionHandler:)) NS_SWIFT_ASYNC_NAME(update(promotionOrder:)) API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0)) API_UNAVAILABLE(watchos, visionos);
+- (void)updateStorePromotionVisibility:(SKProductStorePromotionVisibility)promotionVisibility forProduct:(SKProduct *)product completionHandler:(nullable void (^)(NSError * _Nullable error))completionHandler
+NS_SWIFT_NAME(update(storePromotionVisibility:for:completionHandler:))
+NS_SWIFT_ASYNC_NAME(update(promotionVisibility:for:))
+API_DEPRECATED("Use Product.PromotionInfo.updateProductVisibility(_:for:)", ios(11.0, 18.0), macos(11.0, 15.0), macCatalyst(14.0, 18.0))
+API_UNAVAILABLE(watchos, visionos);
+
+- (void)fetchStorePromotionOrderWithCompletionHandler:(nullable void (^)(NSArray<SKProduct *> *promotionOrder, NSError * _Nullable error))completionHandler
+NS_SWIFT_ASYNC_NAME(promotionOrder())
+API_DEPRECATED("Use Product.PromotionInfo.currentOrder", ios(11.0, 18.0), macos(11.0, 15.0), macCatalyst(14.0, 18.0))
+API_UNAVAILABLE(watchos, visionos);
+
+- (void)updateStorePromotionOrder:(NSArray<SKProduct *> *)promotionOrder completionHandler:(nullable void (^)(NSError * _Nullable error))completionHandler
+NS_SWIFT_NAME(update(storePromotionOrder:completionHandler:))
+NS_SWIFT_ASYNC_NAME(update(promotionOrder:))
+API_DEPRECATED("Use Product.PromotionInfo.updateProductOrder(byID:)", ios(11.0, 18.0), macos(11.0, 15.0), macCatalyst(14.0, 18.0))
+API_UNAVAILABLE(watchos, visionos);
 
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductsRequest.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductsRequest.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductsRequest.h	2024-04-19 07:38:57
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductsRequest.h	2024-05-30 04:59:44
@@ -11,39 +11,46 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+API_DEPRECATED("Get products using Product.products(for:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
 @protocol SKProductsRequestDelegate <SKRequestDelegate>
 
 @required
 // Sent immediately before -requestDidFinish:
-- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response;
 
 @end
 
 
 // request information about products for your application
-SK_EXTERN_CLASS API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0)) NS_SWIFT_NONSENDABLE @interface SKProductsRequest : SKRequest {
+SK_EXTERN_CLASS
+API_DEPRECATED("Use Product.products(for:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_NONSENDABLE
+@interface SKProductsRequest : SKRequest {
 @private
     id _productsRequestInternal;
 }
 
 // Set of string product identifiers
-- (instancetype)initWithProductIdentifiers:(NSSet<NSString *> *)productIdentifiers API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (instancetype)initWithProductIdentifiers:(NSSet<NSString *> *)productIdentifiers;
 
-@property(nonatomic, weak, nullable) id <SKProductsRequestDelegate> delegate API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, weak, nullable) id <SKProductsRequestDelegate> delegate;
 
 @end
 
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0)) NS_SWIFT_SENDABLE @interface SKProductsResponse : NSObject {
+SK_EXTERN_CLASS
+API_DEPRECATED("Get products using Product.products(for:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_SENDABLE
+@interface SKProductsResponse : NSObject {
 @private
     id _internal;
 }
 
 // Array of SKProduct instances.
-@property(nonatomic, readonly) NSArray<SKProduct *> *products API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSArray<SKProduct *> *products;
 
 // Array of invalid product identifiers.
-@property(nonatomic, readonly) NSArray<NSString *> *invalidProductIdentifiers API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, readonly) NSArray<NSString *> *invalidProductIdentifiers;
 
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKReceiptRefreshRequest.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKReceiptRefreshRequest.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKReceiptRefreshRequest.h	2024-04-19 07:38:57
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKReceiptRefreshRequest.h	2024-05-30 04:59:44
@@ -11,21 +11,24 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(7.0), macos(10.9), watchos(6.2), visionos(1.0)) NS_SWIFT_NONSENDABLE @interface SKReceiptRefreshRequest : SKRequest {
+SK_EXTERN_CLASS
+API_DEPRECATED("Use Transaction.all and AppTransaction.shared", ios(7.0, 18.0), macos(10.9, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_NONSENDABLE
+@interface SKReceiptRefreshRequest : SKRequest {
 @private
     NSDictionary *_properties;
 }
 
-- (instancetype)initWithReceiptProperties:(nullable NSDictionary<NSString *, id> *)properties API_AVAILABLE(ios(7.0), macos(10.9), watchos(6.2), visionos(1.0));
-@property (nonatomic, readonly, nullable) NSDictionary<NSString *, id> *receiptProperties API_AVAILABLE(ios(7.0), macos(10.9), watchos(6.2), visionos(1.0));
+- (instancetype)initWithReceiptProperties:(nullable NSDictionary<NSString *, id> *)properties;
+@property (nonatomic, readonly, nullable) NSDictionary<NSString *, id> *receiptProperties;
 
 @end
 
 SK_EXTERN void SKTerminateForInvalidReceipt(void) API_AVAILABLE(ios(7.1), macos(10.14), watchos(6.2), visionos(1.0));
 
 // Receipt properties for sandbox testing:
-SK_EXTERN NSString * const SKReceiptPropertyIsExpired API_AVAILABLE(ios(7.0), macos(10.9), watchos(6.2), visionos(1.0));  // NSNumber BOOL, defaults to NO
-SK_EXTERN NSString * const SKReceiptPropertyIsRevoked API_AVAILABLE(ios(7.0), macos(10.9), watchos(6.2), visionos(1.0));  // NSNumber BOOL, defaults to NO
-SK_EXTERN NSString * const SKReceiptPropertyIsVolumePurchase API_AVAILABLE(ios(7.0), macos(10.9), watchos(6.2), visionos(1.0));  // NSNumber BOOL, defaults to NO
+SK_EXTERN NSString * const SKReceiptPropertyIsExpired API_DEPRECATED("No longer supported", ios(7.0, 18.0), macos(10.9, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));  // NSNumber BOOL, defaults to NO
+SK_EXTERN NSString * const SKReceiptPropertyIsRevoked API_DEPRECATED("No longer supported", ios(7.0, 18.0), macos(10.9, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));  // NSNumber BOOL, defaults to NO
+SK_EXTERN NSString * const SKReceiptPropertyIsVolumePurchase API_DEPRECATED("No longer supported", ios(7.0, 18.0), macos(10.9, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));  // NSNumber BOOL, defaults to NO
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKRequest.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKRequest.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKRequest.h	2024-04-19 07:38:58
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKRequest.h	2024-05-30 04:59:45
@@ -13,27 +13,31 @@
 @protocol SKRequestDelegate;
 
 // Base class used to fetch data from the store.  Should not be used directly.
-SK_EXTERN_CLASS API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0)) NS_SWIFT_NONSENDABLE @interface SKRequest : NSObject {
+SK_EXTERN_CLASS
+API_DEPRECATED("No longer supported", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_NONSENDABLE
+@interface SKRequest : NSObject {
 @private
     id _requestInternal;
 }
 
-@property(nonatomic, weak, nullable) id <SKRequestDelegate> delegate API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+@property(nonatomic, weak, nullable) id <SKRequestDelegate> delegate;
 
 // Cancel the request if it has started.
-- (void)cancel API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (void)cancel;
 
 // Start the request if it has not already been started.
-- (void)start API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (void)start;
 
 @end
 
 
+API_DEPRECATED("No longer supported", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
 @protocol SKRequestDelegate <NSObject>
 
 @optional
-- (void)requestDidFinish:(SKRequest *)request API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
-- (void)request:(SKRequest *)request didFailWithError:(NSError *)error API_AVAILABLE(ios(3.0), macos(10.7), watchos(6.2), visionos(1.0));
+- (void)requestDidFinish:(SKRequest *)request;
+- (void)request:(SKRequest *)request didFailWithError:(NSError *)error;
 
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKStoreReviewController.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKStoreReviewController.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKStoreReviewController.h	2024-04-19 07:38:57
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKStoreReviewController.h	2024-05-30 04:59:44
@@ -14,7 +14,12 @@
 NS_ASSUME_NONNULL_BEGIN
 
 /** Controller class to request a review from the current user */
-SK_EXTERN_CLASS API_AVAILABLE(ios(10.3), macos(10.14), visionos(1.0)) API_UNAVAILABLE(watchos) __TVOS_PROHIBITED NS_SWIFT_SENDABLE @interface SKStoreReviewController : NSObject
+SK_EXTERN_CLASS
+API_DEPRECATED("Use AppStore.requestReview(in:)", ios(10.3, 18.0), macos(10.14, 15.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos)
+__TVOS_PROHIBITED
+NS_SWIFT_SENDABLE
+@interface SKStoreReviewController : NSObject
 
 /** Request StoreKit to ask the user for an app review. Uses the keyWindow's UIWindowScene which may or may not be the scene a user is interacting with.
  *
@@ -24,7 +29,12 @@
  *  from a button or any other user action. For presenting a write review form, a deep link is 
  *  available to the App Store by appending the query params "action=write-review" to a product URL.
  */
-+ (void)requestReview API_AVAILABLE(macos(10.14)) API_DEPRECATED_WITH_REPLACEMENT("-[SKStoreReviewController requestReviewInScene:]", ios(10.3, 14.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos) __TVOS_PROHIBITED;
++ (void)requestReview
+API_DEPRECATED("Use -[SKStoreReviewController requestReviewInScene:]", ios(10.3, 14.0))
+API_DEPRECATED("Use AppStore.requestReview(in:)", macos(10.14, 15.0))
+API_UNAVAILABLE(visionos)
+API_UNAVAILABLE(watchos)
+__TVOS_PROHIBITED;
 
 #if TARGET_OS_IOS
 /** Request StoreKit to ask the user for an app review in a given UIWindowScene.
@@ -35,7 +45,11 @@
  *  from a button or any other user action. For presenting a write review form, a deep link is
  *  available to the App Store by appending the query params "action=write-review" to a product URL.
  */
-+ (void)requestReviewInScene:(UIWindowScene *)windowScene API_AVAILABLE(ios(14.0), visionos(1.0)) API_UNAVAILABLE(watchos) __TVOS_PROHIBITED NS_SWIFT_UI_ACTOR;
++ (void)requestReviewInScene:(UIWindowScene *)windowScene
+API_DEPRECATED("Use AppStore.requestReview(in:)", ios(14.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos)
+__TVOS_PROHIBITED
+NS_SWIFT_UI_ACTOR;
 #endif
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKStorefront.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKStorefront.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKStorefront.h	2024-04-19 07:38:57
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKStorefront.h	2024-05-30 04:59:44
@@ -10,13 +10,16 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-SK_EXTERN_CLASS API_AVAILABLE(ios(13.0), macos(10.15), watchos(6.2), visionos(1.0)) NS_SWIFT_SENDABLE @interface SKStorefront : NSObject
+SK_EXTERN_CLASS
+API_DEPRECATED("Use Storefront", ios(13.0, 18.0), macos(10.15, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
+NS_SWIFT_SENDABLE
+@interface SKStorefront : NSObject
 
 /* The three letter country code for the current storefront */
-@property(NS_NONATOMIC_IOSONLY, copy, readonly) NSString *countryCode API_AVAILABLE(ios(13.0), macos(10.15), watchos(6.2), visionos(1.0));
+@property(NS_NONATOMIC_IOSONLY, copy, readonly) NSString *countryCode API_DEPRECATED("Use 'Storefront.countryCode'", ios(13.0, 18.0), macos(10.15, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 /* The App Store storefront identifier */
-@property(NS_NONATOMIC_IOSONLY, copy, readonly) NSString *identifier API_AVAILABLE(ios(13.0), macos(10.15), watchos(6.2), visionos(1.0));
+@property(NS_NONATOMIC_IOSONLY, copy, readonly) NSString *identifier API_DEPRECATED("Use 'Storefront.id'", ios(13.0, 18.0), macos(10.15, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0));
 
 @end
 
Clone this wiki locally