Skip to content

VideoSubscriberAccount macOS xcode14.0 beta5

Manuel de la Pena edited this page Aug 18, 2022 · 3 revisions

#VideoSubscriberAccount.framework https://github.com/xamarin/xamarin-macios/pull/15699

diff -ruN /Applications/Xcode_14.0.0-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccount.h /Applications/Xcode_14.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccount.h
--- /Applications/Xcode_14.0.0-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccount.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccount.h	2022-08-05 16:54:17.000000000 -0400
@@ -0,0 +1,88 @@
+//
+//  VSUserAccount.h
+//  VideoSubscriberAccountFramework
+//
+//  Created by Nik Harris on 1/30/22.
+//  Copyright © 2022 Apple Inc. All rights reserved.
+//
+
+#import <VideoSubscriberAccount/VideoSubscriberAccountDefines.h>
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, VSUserAccountType) {
+    VSUserAccountTypeFree,    // Default. The user has access to free content only.
+    VSUserAccountTypePaid     // The user has access to content offered to paid subscriptions.
+} NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(16.0), tvos(16.0)) API_UNAVAILABLE(macCatalyst);
+
+typedef NS_ENUM(NSInteger, VSOriginatingDeviceCategory) {
+    VSOriginatingDeviceCategoryMobile,
+    VSOriginatingDeviceCategoryOther
+} NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(16.0), tvos(16.0)) API_UNAVAILABLE(macCatalyst);
+
+VS_EXPORT API_AVAILABLE(ios(16.0), tvos(16.0)) API_UNAVAILABLE(macCatalyst)
+NS_REFINED_FOR_SWIFT
+@interface VSUserAccount : NSObject
+
+// The URL pointing to the application JS that can respond to account update requests, or nil if JS updates are not supported.
+@property (nonatomic, copy, nullable) NSURL *updateURL;
+
+// Indicates whether or not the update URL must have a certificate trusted by the system,
+// and not a certificate trusted by the user of the device.
+@property (nonatomic, assign) BOOL requiresSystemTrust;
+
+// The identifier of the provider known to Apple that provides the account. For use only with TV Provider Authentication integrated apps.
+@property (nonatomic, strong, nullable) NSString *accountProviderIdentifier;
+
+// A value opaque to Apple that can be used to uniquely identify the account.
+// When an account update request is made to the application JS, this identifier will be provided in order to help identify the account to be refreshed.
+@property (nonatomic, copy, nullable) NSString *identifier;
+
+@property (nonatomic, assign) VSUserAccountType accountType;
+
+// Indicates that the user has deleted their account.
+@property (nonatomic, assign, getter=isDeleted) BOOL deleted;
+
+// The date in which the billing cycle ends for paid accounts.
+// used as a heuristic to determine when a refresh should occur.
+// If there is no existing billing cycle, this value should be nil.
+@property (nonatomic, copy, nullable) NSDate *subscriptionBillingCycleEndDate;
+
+
+// Identifies a subset of content from your catalog that subscriber can play.
+// Matches tier identifiers that are present in the availability feed.
+@property (nonatomic, copy, nullable) NSArray<NSString *> *tierIdentifiers;
+
+// Identifies the billing group associated with the subscription.
+@property (nonatomic, copy, nullable) NSString *billingIdentifier;
+
+// The authentication token or data used to maintain the authentication state for the account
+// in your application. This will be provided to the application JS during account refresh requests
+// so that billing cycle dates, account validity, or any other data can be fetched for the account.
+// Additionally, when fetching accounts using VSUserAccountManager, if an account is pulled from a
+// different device, and the user is not signed in to the current device, it can be used to
+// authenticate the user seamlessly without requiring username/password.
+// This data is not accessible by Apple.
+@property (nonatomic, copy, nullable) NSString *authenticationData;
+
+// Indicates whether or not the account was registered on the current device.
+// Accounts pulled using VSUserAccountManager may be from other devices signed
+// in to the same iCloud account.
+@property (nonatomic, readonly, getter=isFromCurrentDevice) BOOL fromCurrentDevice;
+
+// The type of device the VSUserAccount was registered on.
+@property (nonatomic, readonly) VSOriginatingDeviceCategory deviceCategory;
+
+// Use -initWithAccountType:updateURL: or -initWithAccountProviderIdentifier: instead.
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+// Initializes a new VSUserAccount with a URL that points to an application JS
+// that can respond to account update requests.
+- (instancetype)initWithAccountType:(VSUserAccountType)accountType updateURL:(nullable NSURL *)url;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.0.0-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccountManager.h /Applications/Xcode_14.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccountManager.h
--- /Applications/Xcode_14.0.0-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccountManager.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccountManager.h	2022-08-05 13:41:38.000000000 -0400
@@ -0,0 +1,39 @@
+//
+//  VSUserAccountManager.h
+//  VideoSubscriberAccountFramework
+//
+//  Created by Nik Harris on 1/30/22.
+//  Copyright © 2022 Apple Inc. All rights reserved.
+//
+
+#import <VideoSubscriberAccount/VideoSubscriberAccountDefines.h>
+
+#import <Foundation/Foundation.h>
+
+
+@class VSUserAccount;
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_OPTIONS(NSInteger, VSUserAccountQueryOptions) {
+    VSUserAccountQueryNone = 0,  // default
+    VSUserAccountQueryAllDevices // return VSUserAccounts also registered on other devices in the users iCloud account
+} NS_SWIFT_NAME(VSUserAccountManager.QueryOptions) API_AVAILABLE(ios(16.0), tvos(16.0)) API_UNAVAILABLE(macCatalyst);
+
+VS_EXPORT API_AVAILABLE(ios(16.0), tvos(16.0)) API_UNAVAILABLE(macCatalyst)
+@interface VSUserAccountManager : NSObject
+
+@property (nonatomic, readonly, class) VSUserAccountManager *sharedUserAccountManager;
+
+// Register a new VSUserAccount.
+- (void)updateUserAccount:(VSUserAccount *)account completion:(void (^ _Nullable)(NSError * _Nullable error))completion NS_REFINED_FOR_SWIFT;
+
+// Query the registered VSUserAccounts for your application.
+// By default, this will return VSUserAccounts registered by your application on the current
+// device only. To query the VSUserAccounts registered on all of the devices signed into the
+// users iCloud account, use the query flag VSUserAccountQueryAllDevices.
+- (void)queryUserAccountsWithOptions:(VSUserAccountQueryOptions)options completion:(void (^)(NSArray<VSUserAccount *> * _Nullable accounts, NSError * _Nullable error))completion NS_REFINED_FOR_SWIFT;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.0.0-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccountQueryOptions.h /Applications/Xcode_14.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccountQueryOptions.h
--- /Applications/Xcode_14.0.0-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccountQueryOptions.h	2022-07-18 04:47:39.000000000 -0400
+++ /Applications/Xcode_14.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VSUserAccountQueryOptions.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,13 +0,0 @@
-//
-//  VSUserAccountQueryOptions.h
-//  VideoSubscriberAccountFramework
-//
-//  Created by Nik Harris on 2/28/22.
-//  Copyright © 2022 Apple Inc. All rights reserved.
-//
-
-typedef NS_OPTIONS(NSInteger, VSUserAccountQueryOptions) {
-    VSUserAccountQueryOptionNone = 0,  // default
-    VSUserAccountQueryOptionAllDevices // return VSUserAccounts also registered on other devices in the users iCloud account
-};
-
diff -ruN /Applications/Xcode_14.0.0-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VideoSubscriberAccount.h /Applications/Xcode_14.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VideoSubscriberAccount.h
--- /Applications/Xcode_14.0.0-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VideoSubscriberAccount.h	2022-07-18 04:47:39.000000000 -0400
+++ /Applications/Xcode_14.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VideoSubscriberAccount.h	2022-08-01 10:04:37.000000000 -0400
@@ -15,3 +15,5 @@
 #import <VideoSubscriberAccount/VSAccountProviderResponse.h>
 #import <VideoSubscriberAccount/VSSubscription.h>
 #import <VideoSubscriberAccount/VSSubscriptionRegistrationCenter.h>
+#import <VideoSubscriberAccount/VSUserAccountManager.h>
+#import <VideoSubscriberAccount/VSUserAccount.h>
diff -ruN /Applications/Xcode_14.0.0-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VideoSubscriberAccountErrors.h /Applications/Xcode_14.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VideoSubscriberAccountErrors.h
--- /Applications/Xcode_14.0.0-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VideoSubscriberAccountErrors.h	2022-07-22 10:06:32.000000000 -0400
+++ /Applications/Xcode_14.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/VideoSubscriberAccount.framework/Headers/VideoSubscriberAccountErrors.h	2022-08-05 13:41:38.000000000 -0400
@@ -32,7 +32,7 @@
 
 /// A key that can be used to obtain the identifier string of the user's unsupported subscription provider from an error user info dictionary.
 VS_EXTERN NSErrorUserInfoKey const VSErrorInfoKeyUnsupportedProviderIdentifier
-API_AVAILABLE(ios(10.3), tvos(10.3)) API_UNAVAILABLE(macCatalyst);
+API_AVAILABLE(ios(10.2), tvos(10.2)) API_UNAVAILABLE(macCatalyst);
 
 typedef NS_ENUM(NSInteger, VSErrorCode)
 {
Clone this wiki locally