diff --git a/Xamarin.RevenueCat.iOS.Extensions/Xamarin.RevenueCat.iOS.Extensions.csproj b/Xamarin.RevenueCat.iOS.Extensions/Xamarin.RevenueCat.iOS.Extensions.csproj index 9aa2f62..0aa235e 100644 --- a/Xamarin.RevenueCat.iOS.Extensions/Xamarin.RevenueCat.iOS.Extensions.csproj +++ b/Xamarin.RevenueCat.iOS.Extensions/Xamarin.RevenueCat.iOS.Extensions.csproj @@ -4,7 +4,7 @@ true Xamarin.RevenueCat.iOS.Extensions Contains convenience methods and async extensions for Xamarin.RevenueCat.iOS - 4.1.0.7 + 4.9.0.2 Christian Kapplmüller fun.music IT GmbH nugetoutput @@ -41,20 +41,20 @@ 4 - - - - + + + + - - - - - + + + + + - + runtime; build; native; contentfiles; analyzers; buildtransitive all @@ -65,5 +65,5 @@ Xamarin.RevenueCat.iOS - + diff --git a/Xamarin.RevenueCat.iOS.UsageChecker/AppDelegate.cs b/Xamarin.RevenueCat.iOS.UsageChecker/AppDelegate.cs index 491b982..1e251c3 100644 --- a/Xamarin.RevenueCat.iOS.UsageChecker/AppDelegate.cs +++ b/Xamarin.RevenueCat.iOS.UsageChecker/AppDelegate.cs @@ -1,3 +1,4 @@ +using System; using Foundation; using RevenueCat; using UIKit; @@ -18,6 +19,7 @@ public bool FinishedLaunching(UIApplication application, NSDictionary launchOpti { RCPurchases.DebugLogsEnabled = true; RCPurchases.ConfigureWithAPIKey("theapikey"); + Console.WriteLine($"Bound RevenueCat iOS SDK Version: {RCPurchases.FrameworkVersion}"); return true; } diff --git a/Xamarin.RevenueCat.iOS/ApiDefinitions.cs b/Xamarin.RevenueCat.iOS/ApiDefinitions.cs index 1269065..6859653 100644 --- a/Xamarin.RevenueCat.iOS/ApiDefinitions.cs +++ b/Xamarin.RevenueCat.iOS/ApiDefinitions.cs @@ -5,902 +5,1044 @@ namespace RevenueCat { - // @interface RCCustomerInfo : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCCustomerInfo - { - // @property (readonly, nonatomic, strong) RCEntitlementInfos * _Nonnull entitlements; - [Export("entitlements", ArgumentSemantic.Strong)] - RCEntitlementInfos Entitlements { get; } - - // @property (readonly, copy, nonatomic) NSSet * _Nonnull activeSubscriptions; - [Export("activeSubscriptions", ArgumentSemantic.Copy)] - NSSet ActiveSubscriptions { get; } - - // @property (readonly, copy, nonatomic) NSSet * _Nonnull allPurchasedProductIdentifiers; - [Export("allPurchasedProductIdentifiers", ArgumentSemantic.Copy)] - NSSet AllPurchasedProductIdentifiers { get; } - - // @property (readonly, copy, nonatomic) NSDate * _Nullable latestExpirationDate; - [NullAllowed, Export("latestExpirationDate", ArgumentSemantic.Copy)] - NSDate LatestExpirationDate { get; } - - // @property (readonly, copy, nonatomic) SWIFT_DEPRECATED_MSG("use nonSubscriptionTransactions") NSSet * nonConsumablePurchases __attribute__((deprecated("use nonSubscriptionTransactions"))); - [Export("nonConsumablePurchases", ArgumentSemantic.Copy)] - NSSet NonConsumablePurchases { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nonnull nonSubscriptionTransactions; - [Export("nonSubscriptionTransactions", ArgumentSemantic.Copy)] - RCStoreTransaction[] NonSubscriptionTransactions { get; } - - // @property (readonly, copy, nonatomic) NSDate * _Nonnull requestDate; - [Export("requestDate", ArgumentSemantic.Copy)] - NSDate RequestDate { get; } - - // @property (readonly, copy, nonatomic) NSDate * _Nonnull firstSeen; - [Export("firstSeen", ArgumentSemantic.Copy)] - NSDate FirstSeen { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull originalAppUserId; - [Export("originalAppUserId")] - string OriginalAppUserId { get; } - - // @property (readonly, copy, nonatomic) NSURL * _Nullable managementURL; - [NullAllowed, Export("managementURL", ArgumentSemantic.Copy)] - NSUrl ManagementURL { get; } - - // @property (readonly, copy, nonatomic) NSDate * _Nullable originalPurchaseDate; - [NullAllowed, Export("originalPurchaseDate", ArgumentSemantic.Copy)] - NSDate OriginalPurchaseDate { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable originalApplicationVersion; - [NullAllowed, Export("originalApplicationVersion")] - string OriginalApplicationVersion { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull rawData; - [Export("rawData", ArgumentSemantic.Copy)] - NSDictionary RawData { get; } - - // -(NSDate * _Nullable)expirationDateForProductIdentifier:(NSString * _Nonnull)productIdentifier __attribute__((warn_unused_result(""))); - [Export("expirationDateForProductIdentifier:")] - [return: NullAllowed] - NSDate ExpirationDateForProductIdentifier(string productIdentifier); - - // -(NSDate * _Nullable)purchaseDateForProductIdentifier:(NSString * _Nonnull)productIdentifier __attribute__((warn_unused_result(""))); - [Export("purchaseDateForProductIdentifier:")] - [return: NullAllowed] - NSDate PurchaseDateForProductIdentifier(string productIdentifier); - - // -(NSDate * _Nullable)expirationDateForEntitlement:(NSString * _Nonnull)entitlementIdentifier __attribute__((warn_unused_result(""))); - [Export("expirationDateForEntitlement:")] - [return: NullAllowed] - NSDate ExpirationDateForEntitlement(string entitlementIdentifier); - - // -(NSDate * _Nullable)purchaseDateForEntitlement:(NSString * _Nonnull)entitlementIdentifier __attribute__((warn_unused_result(""))); - [Export("purchaseDateForEntitlement:")] - [return: NullAllowed] - NSDate PurchaseDateForEntitlement(string entitlementIdentifier); - - // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); - [Export("isEqual:")] - bool IsEqual([NullAllowed] NSObject @object); - - // @property (readonly, nonatomic) NSUInteger hash; - [Export("hash")] - nuint Hash { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull description; - [Export("description")] - string Description { get; } - } - - // @interface RCDangerousSettings : NSObject - [BaseType(typeof(NSObject))] - interface RCDangerousSettings - { - // @property (readonly, nonatomic) BOOL autoSyncPurchases; - [Export("autoSyncPurchases")] - bool AutoSyncPurchases { get; } - - // -(instancetype _Nonnull)initWithAutoSyncPurchases:(BOOL)autoSyncPurchases __attribute__((objc_designated_initializer)); - [Export("initWithAutoSyncPurchases:")] - [DesignatedInitializer] - IntPtr Constructor(bool autoSyncPurchases); - } - - // @interface RCEntitlementInfo : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCEntitlementInfo : INativeObject - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull identifier; - [Export("identifier")] - string Identifier { get; } - - // @property (readonly, nonatomic) BOOL isActive; - [Export("isActive")] - bool IsActive { get; } - - // @property (readonly, nonatomic) BOOL willRenew; - [Export("willRenew")] - bool WillRenew { get; } - - // @property (readonly, nonatomic) enum RCPeriodType periodType; - [Export("periodType")] - RCPeriodType PeriodType { get; } - - // @property (readonly, copy, nonatomic) NSDate * _Nullable latestPurchaseDate; - [NullAllowed, Export("latestPurchaseDate", ArgumentSemantic.Copy)] - NSDate LatestPurchaseDate { get; } - - // @property (readonly, copy, nonatomic) NSDate * _Nullable originalPurchaseDate; - [NullAllowed, Export("originalPurchaseDate", ArgumentSemantic.Copy)] - NSDate OriginalPurchaseDate { get; } - - // @property (readonly, copy, nonatomic) NSDate * _Nullable expirationDate; - [NullAllowed, Export("expirationDate", ArgumentSemantic.Copy)] - NSDate ExpirationDate { get; } - - // @property (readonly, nonatomic) enum RCStore store; - [Export("store")] - RCStore Store { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull productIdentifier; - [Export("productIdentifier")] - string ProductIdentifier { get; } - - // @property (readonly, nonatomic) BOOL isSandbox; - [Export("isSandbox")] - bool IsSandbox { get; } - - // @property (readonly, copy, nonatomic) NSDate * _Nullable unsubscribeDetectedAt; - [NullAllowed, Export("unsubscribeDetectedAt", ArgumentSemantic.Copy)] - NSDate UnsubscribeDetectedAt { get; } - - // @property (readonly, copy, nonatomic) NSDate * _Nullable billingIssueDetectedAt; - [NullAllowed, Export("billingIssueDetectedAt", ArgumentSemantic.Copy)] - NSDate BillingIssueDetectedAt { get; } - - // @property (readonly, nonatomic) enum RCPurchaseOwnershipType ownershipType; - [Export("ownershipType")] - RCPurchaseOwnershipType OwnershipType { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull rawData; - [Export("rawData", ArgumentSemantic.Copy)] - NSDictionary RawData { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull description; - [Export("description")] - string Description { get; } - - // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); - [Export("isEqual:")] - bool IsEqual([NullAllowed] NSObject @object); - - // @property (readonly, nonatomic) NSUInteger hash; - [Export("hash")] - nuint Hash { get; } - } - - // @interface RCEntitlementInfos : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCEntitlementInfos - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull all; - [Export("all", ArgumentSemantic.Copy)] - NSDictionary All { get; } - - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull active; - [Export("active", ArgumentSemantic.Copy)] - NSDictionary Active { get; } - - // -(RCEntitlementInfo * _Nullable)objectForKeyedSubscript:(NSString * _Nonnull)key __attribute__((warn_unused_result(""))); - [Export("objectForKeyedSubscript:")] - [return: NullAllowed] - RCEntitlementInfo ObjectForKeyedSubscript(string key); - - // @property (readonly, copy, nonatomic) NSString * _Nonnull description; - [Export("description")] - string Description { get; } - - // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); - [Export("isEqual:")] - bool IsEqual([NullAllowed] NSObject @object); - } - - // @interface RCIntroEligibility : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCIntroEligibility : INativeObject - { - // @property (readonly, nonatomic) enum RCIntroEligibilityStatus status; - [Export("status")] - RCIntroEligibilityStatus Status { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull description; - [Export("description")] - string Description { get; } - } - - // @interface RCOffering : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCOffering : INativeObject - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull identifier; - [Export("identifier")] - string Identifier { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull serverDescription; - [Export("serverDescription")] - string ServerDescription { get; } - - // @property (readonly, copy, nonatomic) NSArray * _Nonnull availablePackages; - [Export("availablePackages", ArgumentSemantic.Copy)] - RCPackage[] AvailablePackages { get; } - - // @property (readonly, nonatomic, strong) RCPackage * _Nullable lifetime; - [NullAllowed, Export("lifetime", ArgumentSemantic.Strong)] - RCPackage Lifetime { get; } - - // @property (readonly, nonatomic, strong) RCPackage * _Nullable annual; - [NullAllowed, Export("annual", ArgumentSemantic.Strong)] - RCPackage Annual { get; } - - // @property (readonly, nonatomic, strong) RCPackage * _Nullable sixMonth; - [NullAllowed, Export("sixMonth", ArgumentSemantic.Strong)] - RCPackage SixMonth { get; } - - // @property (readonly, nonatomic, strong) RCPackage * _Nullable threeMonth; - [NullAllowed, Export("threeMonth", ArgumentSemantic.Strong)] - RCPackage ThreeMonth { get; } - - // @property (readonly, nonatomic, strong) RCPackage * _Nullable twoMonth; - [NullAllowed, Export("twoMonth", ArgumentSemantic.Strong)] - RCPackage TwoMonth { get; } - - // @property (readonly, nonatomic, strong) RCPackage * _Nullable monthly; - [NullAllowed, Export("monthly", ArgumentSemantic.Strong)] - RCPackage Monthly { get; } - - // @property (readonly, nonatomic, strong) RCPackage * _Nullable weekly; - [NullAllowed, Export("weekly", ArgumentSemantic.Strong)] - RCPackage Weekly { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull description; - [Export("description")] - string Description { get; } - - // -(RCPackage * _Nullable)packageWithIdentifier:(NSString * _Nullable)identifier __attribute__((warn_unused_result(""))); - [Export("packageWithIdentifier:")] - [return: NullAllowed] - RCPackage PackageWithIdentifier([NullAllowed] string identifier); - - // -(RCPackage * _Nullable)objectForKeyedSubscript:(NSString * _Nonnull)key __attribute__((warn_unused_result(""))); - [Export("objectForKeyedSubscript:")] - [return: NullAllowed] - RCPackage ObjectForKeyedSubscript(string key); - } - - // @interface RCOfferings : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCOfferings - { - // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull all; - [Export("all", ArgumentSemantic.Copy)] - NSDictionary All { get; } - - // @property (readonly, nonatomic, strong) RCOffering * _Nullable current; - [NullAllowed, Export("current", ArgumentSemantic.Strong)] - RCOffering Current { get; } - - // -(RCOffering * _Nullable)offeringWithIdentifier:(NSString * _Nullable)identifier __attribute__((warn_unused_result(""))); - [Export("offeringWithIdentifier:")] - [return: NullAllowed] - RCOffering OfferingWithIdentifier([NullAllowed] string identifier); - - // -(RCOffering * _Nullable)objectForKeyedSubscript:(NSString * _Nonnull)key __attribute__((warn_unused_result(""))); - [Export("objectForKeyedSubscript:")] - [return: NullAllowed] - RCOffering ObjectForKeyedSubscript(string key); - - // @property (readonly, copy, nonatomic) NSString * _Nonnull description; - [Export("description")] - string Description { get; } - } - - // @interface RCPackage : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCPackage - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull identifier; - [Export("identifier")] - string Identifier { get; } - - // @property (readonly, nonatomic) enum RCPackageType packageType; - [Export("packageType")] - RCPackageType PackageType { get; } - - // @property (readonly, nonatomic, strong) RCStoreProduct * _Nonnull storeProduct; - [Export("storeProduct", ArgumentSemantic.Strong)] - RCStoreProduct StoreProduct { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull offeringIdentifier; - [Export("offeringIdentifier")] - string OfferingIdentifier { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull localizedPriceString; - [Export("localizedPriceString")] - string LocalizedPriceString { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable localizedIntroductoryPriceString; - [NullAllowed, Export("localizedIntroductoryPriceString")] - string LocalizedIntroductoryPriceString { get; } - - // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); - [Export("isEqual:")] - bool IsEqual([NullAllowed] NSObject @object); - - // @property (readonly, nonatomic) NSUInteger hash; - [Export("hash")] - nuint Hash { get; } - - // +(NSString * _Nullable)stringFrom:(enum RCPackageType)packageType __attribute__((warn_unused_result(""))); - [Static] - [Export("stringFrom:")] - [return: NullAllowed] - string StringFrom(RCPackageType packageType); - - // +(enum RCPackageType)packageTypeFrom:(NSString * _Nonnull)string __attribute__((warn_unused_result(""))); - [Static] - [Export("packageTypeFrom:")] - RCPackageType PackageTypeFrom(string @string); - } - - // @interface RCPromotionalOffer : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCPromotionalOffer - { - } - - delegate void DefermentBlockHandler([BlockCallback] DefermentBlockHandler defermentBlock); - delegate void ShouldPurchasePromoProductCallbackHandler(RCStoreTransaction transaction, RCCustomerInfo customerInfo, NSError error, bool userCancelled); - - // @interface RCPurchases : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCPurchases - { - // @property (readonly, nonatomic, strong, class) RCPurchases * _Nonnull sharedPurchases; - [Static] - [Export("sharedPurchases", ArgumentSemantic.Strong)] - RCPurchases SharedPurchases { get; } - - // @property (readonly, nonatomic, class) BOOL isConfigured; - [Static] - [Export("isConfigured")] - bool IsConfigured { get; } - - [Wrap("WeakDelegate")] - [NullAllowed] - RCPurchasesDelegate Delegate { get; set; } - - // @property (nonatomic, strong) id _Nullable delegate; - [NullAllowed, Export("delegate", ArgumentSemantic.Strong)] - NSObject WeakDelegate { get; set; } - - // @property (nonatomic, class) BOOL automaticAppleSearchAdsAttributionCollection; - [Static] - [Export("automaticAppleSearchAdsAttributionCollection")] - bool AutomaticAppleSearchAdsAttributionCollection { get; set; } - - // @property (nonatomic, class) enum RCLogLevel logLevel; - [Static] - [Export("logLevel", ArgumentSemantic.Assign)] - RCLogLevel LogLevel { get; set; } - - // @property (copy, nonatomic, class) NSURL * _Nullable proxyURL; - [Static] - [NullAllowed, Export("proxyURL", ArgumentSemantic.Copy)] - NSUrl ProxyURL { get; set; } - - // @property (nonatomic, class) BOOL forceUniversalAppStore; - [Static] - [Export("forceUniversalAppStore")] - bool ForceUniversalAppStore { get; set; } - - // @property (nonatomic, class) BOOL simulatesAskToBuyInSandbox __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(macos, introduced=10.14))) __attribute__((availability(ios, introduced=8.0))); - [Watch(6, 2), Mac(10, 14), iOS(8, 0)] - [Static] - [Export("simulatesAskToBuyInSandbox")] - bool SimulatesAskToBuyInSandbox { get; set; } - - // +(BOOL)canMakePayments __attribute__((warn_unused_result(""))); - [Static] - [Export("canMakePayments")] - bool CanMakePayments { get; } - - // @property (copy, nonatomic, class) void (^ _Nonnull)(enum RCLogLevel, NSString * _Nonnull) logHandler; - [Static] - [Export("logHandler", ArgumentSemantic.Copy)] - Action LogHandler { get; set; } - - // @property (copy, nonatomic, class) void (^ _Nonnull)(enum RCLogLevel, NSString * _Nonnull, NSString * _Nullable, NSString * _Nullable, NSUInteger) verboseLogHandler; - [Static] - [Export("verboseLogHandler", ArgumentSemantic.Copy)] - Action VerboseLogHandler { get; set; } - - // @property (nonatomic, class) BOOL verboseLogs; - [Static] - [Export("verboseLogs")] - bool VerboseLogs { get; set; } - - // @property (readonly, copy, nonatomic, class) NSString * _Nonnull frameworkVersion; - [Static] - [Export("frameworkVersion")] - string FrameworkVersion { get; } - - // @property (nonatomic) BOOL finishTransactions; - [Export("finishTransactions")] - bool FinishTransactions { get; set; } - - // -(void)collectDeviceIdentifiers; - [Export("collectDeviceIdentifiers")] - void CollectDeviceIdentifiers(); - - // -(void)shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))defermentBlock; - [Export("shouldPurchasePromoProduct:defermentBlock:")] - void ShouldPurchasePromoProduct(RCStoreProduct product, DefermentBlockHandler defermentBlock); - - // @property (nonatomic, strong, class) RCPlatformInfo * _Nullable platformInfo; - [Static] - [NullAllowed, Export("platformInfo", ArgumentSemantic.Strong)] - RCPlatformInfo PlatformInfo { get; set; } - - // @property (nonatomic, class) BOOL debugLogsEnabled __attribute__((deprecated("use Purchases.logLevel instead"))); - [Static] - [Export("debugLogsEnabled")] - bool DebugLogsEnabled { get; set; } - - // @property (nonatomic) BOOL allowSharingAppStoreAccount __attribute__((deprecated("Configure behavior through the RevenueCat dashboard instead"))); - [Export("allowSharingAppStoreAccount")] - bool AllowSharingAppStoreAccount { get; set; } - - // +(void)addAttributionData:(NSDictionary * _Nonnull)data fromNetwork:(enum RCAttributionNetwork)network __attribute__((deprecated("Use the set functions instead"))); - [Static] - [Export("addAttributionData:fromNetwork:")] - void AddAttributionData(NSDictionary data, RCAttributionNetwork network); - - // +(void)addAttributionData:(NSDictionary * _Nonnull)data fromNetwork:(enum RCAttributionNetwork)network forNetworkUserId:(NSString * _Nullable)networkUserId __attribute__((deprecated("Use the set functions instead"))); - [Static] - [Export("addAttributionData:fromNetwork:forNetworkUserId:")] - void AddAttributionData(NSDictionary data, RCAttributionNetwork network, [NullAllowed] string networkUserId); - - // +(RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey; - [Static] - [Export("configureWithAPIKey:")] - RCPurchases ConfigureWithAPIKey(string apiKey); - - // +(RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID; - [Static] - [Export("configureWithAPIKey:appUserID:")] - RCPurchases ConfigureWithAPIKey(string apiKey, [NullAllowed] string appUserID); - - // +(RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode; - [Static] - [Export("configureWithAPIKey:appUserID:observerMode:")] - RCPurchases ConfigureWithAPIKey(string apiKey, [NullAllowed] string appUserID, bool observerMode); - - // +(RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults; - [Static] - [Export("configureWithAPIKey:appUserID:observerMode:userDefaults:")] - RCPurchases ConfigureWithAPIKey(string apiKey, [NullAllowed] string appUserID, bool observerMode, [NullAllowed] NSUserDefaults userDefaults); - - // +(RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults useStoreKit2IfAvailable:(BOOL)useStoreKit2IfAvailable; - [Static] - [Export("configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:")] - RCPurchases ConfigureWithAPIKey(string apiKey, [NullAllowed] string appUserID, bool observerMode, [NullAllowed] NSUserDefaults userDefaults, bool useStoreKit2IfAvailable); - - // +(RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults useStoreKit2IfAvailable:(BOOL)useStoreKit2IfAvailable dangerousSettings:(RCDangerousSettings * _Nullable)dangerousSettings; - [Static] - [Export("configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:dangerousSettings:")] - RCPurchases ConfigureWithAPIKey(string apiKey, [NullAllowed] string appUserID, bool observerMode, [NullAllowed] NSUserDefaults userDefaults, bool useStoreKit2IfAvailable, [NullAllowed] RCDangerousSettings dangerousSettings); - - // @property (readonly, copy, nonatomic) NSString * _Nonnull appUserID; - [Export("appUserID")] - string AppUserID { get; } - - // @property (readonly, nonatomic) BOOL isAnonymous; - [Export("isAnonymous")] - bool IsAnonymous { get; } - - // -(void)logIn:(NSString * _Nonnull)appUserID completion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, BOOL, NSError * _Nullable))completion; - [Export("logIn:completion:")] - void LogIn(string appUserID, Action completion); - - // -(void)logOutWithCompletion:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; - [Export("logOutWithCompletion:")] - void LogOutWithCompletion([NullAllowed] Action completion); - - // -(void)getOfferingsWithCompletion:(void (^ _Nonnull)(RCOfferings * _Nullable, NSError * _Nullable))completion; - [Export("getOfferingsWithCompletion:")] - void GetOfferingsWithCompletion(Action completion); - - // -(void)setAttributes:(NSDictionary * _Nonnull)attributes; - [Export("setAttributes:")] - void SetAttributes(NSDictionary attributes); - - // -(void)setEmail:(NSString * _Nullable)email; - [Export("setEmail:")] - void SetEmail([NullAllowed] string email); - - // -(void)setPhoneNumber:(NSString * _Nullable)phoneNumber; - [Export("setPhoneNumber:")] - void SetPhoneNumber([NullAllowed] string phoneNumber); - - // -(void)setDisplayName:(NSString * _Nullable)displayName; - [Export("setDisplayName:")] - void SetDisplayName([NullAllowed] string displayName); - - // -(void)setPushToken:(NSData * _Nullable)pushToken; - [Export("setPushToken:")] - void SetPushToken([NullAllowed] NSData pushToken); - - // -(void)setAdjustID:(NSString * _Nullable)adjustID; - [Export("setAdjustID:")] - void SetAdjustID([NullAllowed] string adjustID); - - // -(void)setAppsflyerID:(NSString * _Nullable)appsflyerID; - [Export("setAppsflyerID:")] - void SetAppsflyerID([NullAllowed] string appsflyerID); - - // -(void)setFBAnonymousID:(NSString * _Nullable)fbAnonymousID; - [Export("setFBAnonymousID:")] - void SetFBAnonymousID([NullAllowed] string fbAnonymousID); - - // -(void)setMparticleID:(NSString * _Nullable)mparticleID; - [Export("setMparticleID:")] - void SetMparticleID([NullAllowed] string mparticleID); - - // -(void)setOnesignalID:(NSString * _Nullable)onesignalID; - [Export("setOnesignalID:")] - void SetOnesignalID([NullAllowed] string onesignalID); - - // -(void)setAirshipChannelID:(NSString * _Nullable)airshipChannelID; - [Export("setAirshipChannelID:")] - void SetAirshipChannelID([NullAllowed] string airshipChannelID); - - // -(void)setCleverTapID:(NSString * _Nullable)cleverTapID; - [Export("setCleverTapID:")] - void SetCleverTapID([NullAllowed] string cleverTapID); - - // -(void)setMediaSource:(NSString * _Nullable)mediaSource; - [Export("setMediaSource:")] - void SetMediaSource([NullAllowed] string mediaSource); - - // -(void)setCampaign:(NSString * _Nullable)campaign; - [Export("setCampaign:")] - void SetCampaign([NullAllowed] string campaign); - - // -(void)setAdGroup:(NSString * _Nullable)adGroup; - [Export("setAdGroup:")] - void SetAdGroup([NullAllowed] string adGroup); - - // -(void)setAd:(NSString * _Nullable)installAd; - [Export("setAd:")] - void SetAd([NullAllowed] string installAd); - - // -(void)setKeyword:(NSString * _Nullable)keyword; - [Export("setKeyword:")] - void SetKeyword([NullAllowed] string keyword); - - // -(void)setCreative:(NSString * _Nullable)creative; - [Export("setCreative:")] - void SetCreative([NullAllowed] string creative); - - // -(void)getCustomerInfoWithCompletion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; - [Export("getCustomerInfoWithCompletion:")] - void GetCustomerInfoWithCompletion(Action completion); - - // -(void)getProductsWithIdentifiers:(NSArray * _Nonnull)productIdentifiers completion:(void (^ _Nonnull)(NSArray * _Nonnull))completion; - [Export("getProductsWithIdentifiers:completion:")] - void GetProductsWithIdentifiers(string[] productIdentifiers, Action> completion); - - // -(void)purchaseProduct:(RCStoreProduct * _Nonnull)product withCompletion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion; - [Export("purchaseProduct:withCompletion:")] - void PurchaseProduct(RCStoreProduct product, Action completion); - - // -(void)purchasePackage:(RCPackage * _Nonnull)package withCompletion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion; - [Export("purchasePackage:withCompletion:")] - void PurchasePackage(RCPackage package, Action completion); - - // -(void)purchaseProduct:(RCStoreProduct * _Nonnull)product withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion __attribute__((availability(tvos, introduced=12.2))) __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(macos, introduced=10.14.4))) __attribute__((availability(ios, introduced=12.2))); - [Watch(6, 2), TV(12, 2), Mac(10, 14, 4), iOS(12, 2)] - [Export("purchaseProduct:withPromotionalOffer:completion:")] - void PurchaseProduct(RCStoreProduct product, RCPromotionalOffer promotionalOffer, Action completion); - - // -(void)purchasePackage:(RCPackage * _Nonnull)package withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion __attribute__((availability(tvos, introduced=12.2))) __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(macos, introduced=10.14.4))) __attribute__((availability(ios, introduced=12.2))); - [Watch(6, 2), TV(12, 2), Mac(10, 14, 4), iOS(12, 2)] - [Export("purchasePackage:withPromotionalOffer:completion:")] - void PurchasePackage(RCPackage package, RCPromotionalOffer promotionalOffer, Action completion); - - // -(void)syncPurchasesWithCompletion:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; - [Export("syncPurchasesWithCompletion:")] - void SyncPurchasesWithCompletion([NullAllowed] Action completion); - - // -(void)restorePurchasesWithCompletion:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; - [Export("restorePurchasesWithCompletion:")] - void RestorePurchasesWithCompletion([NullAllowed] Action completion); - - // -(void)checkTrialOrIntroDiscountEligibility:(NSArray * _Nonnull)productIdentifiers completion:(void (^ _Nonnull)(NSDictionary * _Nonnull))completion; - [Export("checkTrialOrIntroDiscountEligibility:completion:")] - void CheckTrialOrIntroDiscountEligibility(string[] productIdentifiers, Action> completion); - - // -(void)checkTrialOrIntroDiscountEligibilityForProduct:(RCStoreProduct * _Nonnull)product completion:(void (^ _Nonnull)(enum RCIntroEligibilityStatus))completion; - [Export("checkTrialOrIntroDiscountEligibilityForProduct:completion:")] - void CheckTrialOrIntroDiscountEligibilityForProduct(RCStoreProduct product, Action completion); - - // -(void)invalidateCustomerInfoCache; - [Export("invalidateCustomerInfoCache")] - void InvalidateCustomerInfoCache(); - - // -(void)presentCodeRedemptionSheet __attribute__((availability(macos, unavailable))) __attribute__((availability(tvos, unavailable))) __attribute__((availability(watchos, unavailable))) __attribute__((availability(ios, introduced=14.0))); - [NoWatch, NoTV, NoMac, iOS(14, 0)] - [Export("presentCodeRedemptionSheet")] - void PresentCodeRedemptionSheet(); - - // -(void)getPromotionalOfferForProductDiscount:(RCStoreProductDiscount * _Nonnull)discount withProduct:(RCStoreProduct * _Nonnull)product withCompletion:(void (^ _Nonnull)(RCPromotionalOffer * _Nullable, NSError * _Nullable))completion __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=12.2))) __attribute__((availability(macos, introduced=10.14.4))) __attribute__((availability(ios, introduced=12.2))); - [Watch(6, 2), TV(12, 2), Mac(10, 14, 4), iOS(12, 2)] - [Export("getPromotionalOfferForProductDiscount:withProduct:withCompletion:")] - void GetPromotionalOfferForProductDiscount(RCStoreProductDiscount discount, RCStoreProduct product, Action completion); - - // -(void)showManageSubscriptionsWithCompletion:(void (^ _Nonnull)(NSError * _Nullable))completion __attribute__((availability(macos, introduced=10.15))) __attribute__((availability(ios, introduced=13.0))) __attribute__((availability(tvos, unavailable))) __attribute__((availability(watchos, unavailable))); - [NoWatch, NoTV, Mac(10, 15), iOS(13, 0)] - [Export("showManageSubscriptionsWithCompletion:")] - void ShowManageSubscriptionsWithCompletion(Action completion); - - // -(void)beginRefundRequestForProduct:(NSString * _Nonnull)productID completion:(void (^ _Nonnull)(enum RCRefundRequestStatus, NSError * _Nullable))completionHandler __attribute__((availability(tvos, unavailable))) __attribute__((availability(watchos, unavailable))) __attribute__((availability(macos, unavailable))) __attribute__((availability(ios, introduced=15.0))); - [NoWatch, NoTV, NoMac, iOS(15, 0)] - [Export("beginRefundRequestForProduct:completion:")] - void BeginRefundRequestForProduct(string productID, Action completionHandler); - - // -(void)beginRefundRequestForEntitlement:(NSString * _Nonnull)entitlementID completion:(void (^ _Nonnull)(enum RCRefundRequestStatus, NSError * _Nullable))completionHandler __attribute__((availability(tvos, unavailable))) __attribute__((availability(watchos, unavailable))) __attribute__((availability(macos, unavailable))) __attribute__((availability(ios, introduced=15.0))); - [NoWatch, NoTV, NoMac, iOS(15, 0)] - [Export("beginRefundRequestForEntitlement:completion:")] - void BeginRefundRequestForEntitlement(string entitlementID, Action completionHandler); - - // -(void)beginRefundRequestForActiveEntitlementWithCompletion:(void (^ _Nonnull)(enum RCRefundRequestStatus, NSError * _Nullable))completionHandler __attribute__((availability(tvos, unavailable))) __attribute__((availability(watchos, unavailable))) __attribute__((availability(macos, unavailable))) __attribute__((availability(ios, introduced=15.0))); - [NoWatch, NoTV, NoMac, iOS(15, 0)] - [Export("beginRefundRequestForActiveEntitlementWithCompletion:")] - void BeginRefundRequestForActiveEntitlementWithCompletion(Action completionHandler); - } - - // @interface RCPlatformInfo : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCPlatformInfo - { - // -(instancetype _Nonnull)initWithFlavor:(NSString * _Nonnull)flavor version:(NSString * _Nonnull)version __attribute__((objc_designated_initializer)); - [Export("initWithFlavor:version:")] - [DesignatedInitializer] - IntPtr Constructor(string flavor, string version); - } - - // @protocol RCPurchasesDelegate - [Protocol, Model(AutoGeneratedName = true)] - [BaseType(typeof(NSObject))] - interface RCPurchasesDelegate - { - // @optional -(void)purchases:(RCPurchases * _Nonnull)purchases receivedUpdatedCustomerInfo:(RCCustomerInfo * _Nonnull)customerInfo; - [Export("purchases:receivedUpdatedCustomerInfo:")] - void ReceivedUpdatedCustomerInfo(RCPurchases purchases, RCCustomerInfo customerInfo); - - // @optional -(void)purchases:(RCPurchases * _Nonnull)purchases shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))makeDeferredPurchase; - [Export("purchases:shouldPurchasePromoProduct:defermentBlock:")] - void ShouldPurchasePromoProduct(RCPurchases purchases, RCStoreProduct product, DefermentBlockHandler makeDeferredPurchase); - } - - // @interface RCStoreProduct : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCStoreProduct : INativeObject - { - // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); - [Export("isEqual:")] - bool IsEqual([NullAllowed] NSObject @object); - - // @property (readonly, nonatomic) NSUInteger hash; - [Export("hash")] - nuint Hash { get; } - - // @property (readonly, nonatomic) enum RCStoreProductType productType; - [Export("productType")] - RCStoreProductType ProductType { get; } - - // @property (readonly, nonatomic) enum RCStoreProductCategory productCategory; - [Export("productCategory")] - RCStoreProductCategory ProductCategory { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull localizedDescription; - [Export("localizedDescription")] - string LocalizedDescription { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull localizedTitle; - [Export("localizedTitle")] - string LocalizedTitle { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable currencyCode; - [NullAllowed, Export("currencyCode")] - string CurrencyCode { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull localizedPriceString; - [Export("localizedPriceString")] - string LocalizedPriceString { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull productIdentifier; - [Export("productIdentifier")] - string ProductIdentifier { get; } - - // @property (readonly, nonatomic) BOOL isFamilyShareable __attribute__((availability(watchos, introduced=8.0))) __attribute__((availability(tvos, introduced=14.0))) __attribute__((availability(macos, introduced=11.0))) __attribute__((availability(ios, introduced=14.0))); - [Watch(8, 0), TV(14, 0), Mac(11, 0), iOS(14, 0)] - [Export("isFamilyShareable")] - bool IsFamilyShareable { get; } - - // @property (readonly, copy, nonatomic) SWIFT_AVAILABILITY(watchos,introduced=6.2) NSString * subscriptionGroupIdentifier __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(macos, introduced=10.14))) __attribute__((availability(tvos, introduced=12.0))) __attribute__((availability(ios, introduced=12.0))); - [Watch(6, 2), TV(12, 0), Mac(10, 14), iOS(12, 0)] - [Export("subscriptionGroupIdentifier")] - string SubscriptionGroupIdentifier { get; } - - // @property (readonly, nonatomic, strong) NSNumberFormatter * _Nullable priceFormatter; - [NullAllowed, Export("priceFormatter", ArgumentSemantic.Strong)] - NSNumberFormatter PriceFormatter { get; } - - // @property (readonly, nonatomic, strong) SWIFT_AVAILABILITY(watchos,introduced=6.2) RCSubscriptionPeriod * subscriptionPeriod __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=11.2))) __attribute__((availability(macos, introduced=10.13.2))) __attribute__((availability(ios, introduced=11.2))); - [Watch(6, 2), TV(11, 2), Mac(10, 13, 2), iOS(11, 2)] - [Export("subscriptionPeriod", ArgumentSemantic.Strong)] - RCSubscriptionPeriod SubscriptionPeriod { get; } - - // @property (readonly, nonatomic, strong) SWIFT_AVAILABILITY(watchos,introduced=6.2) RCStoreProductDiscount * introductoryDiscount __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=11.2))) __attribute__((availability(macos, introduced=10.13.2))) __attribute__((availability(ios, introduced=11.2))); - [Watch(6, 2), TV(11, 2), Mac(10, 13, 2), iOS(11, 2)] - [Export("introductoryDiscount", ArgumentSemantic.Strong)] - RCStoreProductDiscount IntroductoryDiscount { get; } - - // @property (readonly, copy, nonatomic) SWIFT_AVAILABILITY(watchos,introduced=6.2) NSArray * discounts __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=12.2))) __attribute__((availability(macos, introduced=10.14.4))) __attribute__((availability(ios, introduced=12.2))); - [Watch(6, 2), TV(12, 2), Mac(10, 14, 4), iOS(12, 2)] - [Export("discounts", ArgumentSemantic.Copy)] - RCStoreProductDiscount[] Discounts { get; } - - // -(instancetype _Nonnull)initWithSk1Product:(SKProduct * _Nonnull)sk1Product; - [Export("initWithSk1Product:")] - IntPtr Constructor(SKProduct sk1Product); - - // @property (readonly, nonatomic, strong) SKProduct * _Nullable sk1Product; - [NullAllowed, Export("sk1Product", ArgumentSemantic.Strong)] - SKProduct Sk1Product { get; } - - // @property (readonly, nonatomic, strong) NSDecimalNumber * _Nonnull price; - [Export("price", ArgumentSemantic.Strong)] - NSDecimalNumber Price { get; } - - // @property (readonly, nonatomic, strong) SWIFT_AVAILABILITY(watchos,introduced=6.2) NSDecimalNumber * pricePerMonth __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=11.2))) __attribute__((availability(macos, introduced=10.13.2))) __attribute__((availability(ios, introduced=11.2))); - [Watch(6, 2), TV(11, 2), Mac(10, 13, 2), iOS(11, 2)] - [Export("pricePerMonth", ArgumentSemantic.Strong)] - NSDecimalNumber PricePerMonth { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable localizedIntroductoryPriceString; - [NullAllowed, Export("localizedIntroductoryPriceString")] - string LocalizedIntroductoryPriceString { get; } - } - - // @interface RCStoreProductDiscount : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCStoreProductDiscount - { - // @property (readonly, copy, nonatomic) NSString * _Nullable offerIdentifier; - [NullAllowed, Export("offerIdentifier")] - string OfferIdentifier { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nullable currencyCode; - [NullAllowed, Export("currencyCode")] - string CurrencyCode { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull localizedPriceString; - [Export("localizedPriceString")] - string LocalizedPriceString { get; } - - // @property (readonly, nonatomic) enum RCPaymentMode paymentMode; - [Export("paymentMode")] - RCPaymentMode PaymentMode { get; } - - // @property (readonly, nonatomic, strong) RCSubscriptionPeriod * _Nonnull subscriptionPeriod; - [Export("subscriptionPeriod", ArgumentSemantic.Strong)] - RCSubscriptionPeriod SubscriptionPeriod { get; } - - // @property (readonly, nonatomic) enum RCDiscountType type; - [Export("type")] - RCDiscountType Type { get; } - - // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); - [Export("isEqual:")] - bool IsEqual([NullAllowed] NSObject @object); - - // @property (readonly, nonatomic) NSUInteger hash; - [Export("hash")] - nuint Hash { get; } - - // @property (readonly, nonatomic, strong) NSDecimalNumber * _Nonnull price; - [Export("price", ArgumentSemantic.Strong)] - NSDecimalNumber Price { get; } - - // @property (readonly, nonatomic, strong) SWIFT_AVAILABILITY(watchos,introduced=6.2) SKProductDiscount * sk1Discount __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=12.2))) __attribute__((availability(macos, introduced=10.14.4))) __attribute__((availability(ios, introduced=12.2))); - [Watch(6, 2), TV(12, 2), Mac(10, 14, 4), iOS(12, 2)] - [Export("sk1Discount", ArgumentSemantic.Strong)] - SKProductDiscount Sk1Discount { get; } - } - - // @interface RCStoreTransaction : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCStoreTransaction - { - // @property (readonly, copy, nonatomic) NSString * _Nonnull productIdentifier; - [Export("productIdentifier")] - string ProductIdentifier { get; } - - // @property (readonly, copy, nonatomic) NSDate * _Nonnull purchaseDate; - [Export("purchaseDate", ArgumentSemantic.Copy)] - NSDate PurchaseDate { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull transactionIdentifier; - [Export("transactionIdentifier")] - string TransactionIdentifier { get; } - - // @property (readonly, nonatomic) NSInteger quantity; - [Export("quantity")] - nint Quantity { get; } - - // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); - [Export("isEqual:")] - bool IsEqual([NullAllowed] NSObject @object); - - // @property (readonly, nonatomic) NSUInteger hash; - [Export("hash")] - nuint Hash { get; } - - // @property (readonly, nonatomic, strong) SKPaymentTransaction * _Nullable sk1Transaction; - [NullAllowed, Export("sk1Transaction", ArgumentSemantic.Strong)] - SKPaymentTransaction Sk1Transaction { get; } - } - - // @interface RCSubscriptionPeriod : NSObject - [BaseType(typeof(NSObject))] - [DisableDefaultCtor] - interface RCSubscriptionPeriod - { - // @property (readonly, nonatomic) NSInteger value; - [Export("value")] - nint Value { get; } - - // @property (readonly, nonatomic) enum RCSubscriptionPeriodUnit unit; - [Export("unit")] - RCSubscriptionPeriodUnit Unit { get; } - - // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); - [Export("isEqual:")] - bool IsEqual([NullAllowed] NSObject @object); - - // @property (readonly, nonatomic) NSUInteger hash; - [Export("hash")] - nuint Hash { get; } - - // @property (readonly, copy, nonatomic) NSString * _Nonnull debugDescription; - [Export("debugDescription")] - string DebugDescription { get; } - } -} + delegate void ReadyForPromotedProductCallbackHandler(RCStoreTransaction transaction, RCCustomerInfo customerInfo, NSError error, bool userCancelled); + delegate void StartPurchaseHandler([BlockCallback] ReadyForPromotedProductCallbackHandler defermentBlock); + + // @interface RCAttribution : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCAttribution + { + // -(void)collectDeviceIdentifiers; + [Export("collectDeviceIdentifiers")] + void CollectDeviceIdentifiers(); + + // -(void)setAttributes:(NSDictionary * _Nonnull)attributes; + [Export("setAttributes:")] + void SetAttributes(NSDictionary attributes); + + // -(void)setEmail:(NSString * _Nullable)email; + [Export("setEmail:")] + void SetEmail([NullAllowed] string email); + + // -(void)setPhoneNumber:(NSString * _Nullable)phoneNumber; + [Export("setPhoneNumber:")] + void SetPhoneNumber([NullAllowed] string phoneNumber); + + // -(void)setDisplayName:(NSString * _Nullable)displayName; + [Export("setDisplayName:")] + void SetDisplayName([NullAllowed] string displayName); + + // -(void)setPushToken:(NSData * _Nullable)pushToken; + [Export("setPushToken:")] + void SetPushToken([NullAllowed] NSData pushToken); + + // -(void)setPushTokenString:(NSString * _Nullable)pushToken; + [Export("setPushTokenString:")] + void SetPushTokenString([NullAllowed] string pushToken); + + // -(void)setAdjustID:(NSString * _Nullable)adjustID; + [Export("setAdjustID:")] + void SetAdjustID([NullAllowed] string adjustID); + + // -(void)setAppsflyerID:(NSString * _Nullable)appsflyerID; + [Export("setAppsflyerID:")] + void SetAppsflyerID([NullAllowed] string appsflyerID); + + // -(void)setFBAnonymousID:(NSString * _Nullable)fbAnonymousID; + [Export("setFBAnonymousID:")] + void SetFBAnonymousID([NullAllowed] string fbAnonymousID); + + // -(void)setMparticleID:(NSString * _Nullable)mparticleID; + [Export("setMparticleID:")] + void SetMparticleID([NullAllowed] string mparticleID); + + // -(void)setOnesignalID:(NSString * _Nullable)onesignalID; + [Export("setOnesignalID:")] + void SetOnesignalID([NullAllowed] string onesignalID); + + // -(void)setAirshipChannelID:(NSString * _Nullable)airshipChannelID; + [Export("setAirshipChannelID:")] + void SetAirshipChannelID([NullAllowed] string airshipChannelID); + + // -(void)setCleverTapID:(NSString * _Nullable)cleverTapID; + [Export("setCleverTapID:")] + void SetCleverTapID([NullAllowed] string cleverTapID); + + // -(void)setMixpanelDistinctID:(NSString * _Nullable)mixpanelDistinctID; + [Export("setMixpanelDistinctID:")] + void SetMixpanelDistinctID([NullAllowed] string mixpanelDistinctID); + + // -(void)setFirebaseAppInstanceID:(NSString * _Nullable)firebaseAppInstanceID; + [Export("setFirebaseAppInstanceID:")] + void SetFirebaseAppInstanceID([NullAllowed] string firebaseAppInstanceID); + + // -(void)setMediaSource:(NSString * _Nullable)mediaSource; + [Export("setMediaSource:")] + void SetMediaSource([NullAllowed] string mediaSource); + + // -(void)setCampaign:(NSString * _Nullable)campaign; + [Export("setCampaign:")] + void SetCampaign([NullAllowed] string campaign); + + // -(void)setAdGroup:(NSString * _Nullable)adGroup; + [Export("setAdGroup:")] + void SetAdGroup([NullAllowed] string adGroup); + + // -(void)setAd:(NSString * _Nullable)installAd; + [Export("setAd:")] + void SetAd([NullAllowed] string installAd); + + // -(void)setKeyword:(NSString * _Nullable)keyword; + [Export("setKeyword:")] + void SetKeyword([NullAllowed] string keyword); + + // -(void)setCreative:(NSString * _Nullable)creative; + [Export("setCreative:")] + void SetCreative([NullAllowed] string creative); + } + + // @interface RCConfiguration : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCConfiguration + { + // +(RCConfigurationBuilder * _Nonnull)builderWithAPIKey:(NSString * _Nonnull)apiKey __attribute__((warn_unused_result(""))); + [Static] + [Export("builderWithAPIKey:")] + RCConfigurationBuilder BuilderWithAPIKey(string apiKey); + } + + // @interface RCConfigurationBuilder : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCConfigurationBuilder + { + // -(instancetype _Nonnull)initWithAPIKey:(NSString * _Nonnull)apiKey __attribute__((objc_designated_initializer)); + [Export("initWithAPIKey:")] + [DesignatedInitializer] + IntPtr Constructor(string apiKey); + + // -(RCConfigurationBuilder * _Nonnull)withApiKey:(NSString * _Nonnull)apiKey __attribute__((warn_unused_result(""))); + [Export("withApiKey:")] + RCConfigurationBuilder WithApiKey(string apiKey); + + // -(RCConfigurationBuilder * _Nonnull)withAppUserID:(NSString * _Nonnull)appUserID __attribute__((warn_unused_result(""))); + [Export("withAppUserID:")] + RCConfigurationBuilder WithAppUserID(string appUserID); + + // -(RCConfigurationBuilder * _Nonnull)withObserverMode:(BOOL)observerMode __attribute__((warn_unused_result(""))); + [Export("withObserverMode:")] + RCConfigurationBuilder WithObserverMode(bool observerMode); + + // -(RCConfigurationBuilder * _Nonnull)withUserDefaults:(NSUserDefaults * _Nonnull)userDefaults __attribute__((warn_unused_result(""))); + [Export("withUserDefaults:")] + RCConfigurationBuilder WithUserDefaults(NSUserDefaults userDefaults); + + // -(RCConfigurationBuilder * _Nonnull)withUsesStoreKit2IfAvailable:(BOOL)usesStoreKit2IfAvailable __attribute__((warn_unused_result(""))); + [Export("withUsesStoreKit2IfAvailable:")] + RCConfigurationBuilder WithUsesStoreKit2IfAvailable(bool usesStoreKit2IfAvailable); + + // -(RCConfigurationBuilder * _Nonnull)withDangerousSettings:(RCDangerousSettings * _Nonnull)dangerousSettings __attribute__((warn_unused_result(""))); + [Export("withDangerousSettings:")] + RCConfigurationBuilder WithDangerousSettings(RCDangerousSettings dangerousSettings); + + // -(RCConfigurationBuilder * _Nonnull)withNetworkTimeout:(NSTimeInterval)networkTimeout __attribute__((warn_unused_result(""))); + [Export("withNetworkTimeout:")] + RCConfigurationBuilder WithNetworkTimeout(double networkTimeout); + + // -(RCConfigurationBuilder * _Nonnull)withStoreKit1Timeout:(NSTimeInterval)storeKit1Timeout __attribute__((warn_unused_result(""))); + [Export("withStoreKit1Timeout:")] + RCConfigurationBuilder WithStoreKit1Timeout(double storeKit1Timeout); + + // -(RCConfigurationBuilder * _Nonnull)withPlatformInfo:(RCPlatformInfo * _Nonnull)platformInfo __attribute__((warn_unused_result(""))); + [Export("withPlatformInfo:")] + RCConfigurationBuilder WithPlatformInfo(RCPlatformInfo platformInfo); + + // -(RCConfiguration * _Nonnull)build __attribute__((warn_unused_result(""))); + [Export("build")] + RCConfiguration Build(); + } + + // @interface RCCustomerInfo : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCCustomerInfo + { + // @property (readonly, nonatomic, strong) RCEntitlementInfos * _Nonnull entitlements; + [Export("entitlements", ArgumentSemantic.Strong)] + RCEntitlementInfos Entitlements { get; } + + // @property (readonly, copy, nonatomic) NSSet * _Nonnull activeSubscriptions; + [Export("activeSubscriptions", ArgumentSemantic.Copy)] + NSSet ActiveSubscriptions { get; } + + // @property (readonly, copy, nonatomic) NSSet * _Nonnull allPurchasedProductIdentifiers; + [Export("allPurchasedProductIdentifiers", ArgumentSemantic.Copy)] + NSSet AllPurchasedProductIdentifiers { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nullable latestExpirationDate; + [NullAllowed, Export("latestExpirationDate", ArgumentSemantic.Copy)] + NSDate LatestExpirationDate { get; } + + // @property (readonly, copy, nonatomic) NSArray * _Nonnull nonSubscriptions; + [Export("nonSubscriptions", ArgumentSemantic.Copy)] + RCNonSubscriptionTransaction[] NonSubscriptions { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nonnull requestDate; + [Export("requestDate", ArgumentSemantic.Copy)] + NSDate RequestDate { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nonnull firstSeen; + [Export("firstSeen", ArgumentSemantic.Copy)] + NSDate FirstSeen { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull originalAppUserId; + [Export("originalAppUserId")] string OriginalAppUserId { get; } + + // @property (readonly, copy, nonatomic) NSURL * _Nullable managementURL; + [NullAllowed, Export("managementURL", ArgumentSemantic.Copy)] + NSUrl ManagementURL { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nullable originalPurchaseDate; + [NullAllowed, Export("originalPurchaseDate", ArgumentSemantic.Copy)] + NSDate OriginalPurchaseDate { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nullable originalApplicationVersion; + [NullAllowed, Export("originalApplicationVersion")] + string OriginalApplicationVersion { get; } + + // -(NSDate * _Nullable)expirationDateForProductIdentifier:(NSString * _Nonnull)productIdentifier __attribute__((warn_unused_result(""))); + [Export("expirationDateForProductIdentifier:")] + [return: NullAllowed] + NSDate ExpirationDateForProductIdentifier(string productIdentifier); + + // -(NSDate * _Nullable)purchaseDateForProductIdentifier:(NSString * _Nonnull)productIdentifier __attribute__((warn_unused_result(""))); + [Export("purchaseDateForProductIdentifier:")] + [return: NullAllowed] + NSDate PurchaseDateForProductIdentifier(string productIdentifier); + + // -(NSDate * _Nullable)expirationDateForEntitlement:(NSString * _Nonnull)entitlementIdentifier __attribute__((warn_unused_result(""))); + [Export("expirationDateForEntitlement:")] + [return: NullAllowed] + NSDate ExpirationDateForEntitlement(string entitlementIdentifier); + + // -(NSDate * _Nullable)purchaseDateForEntitlement:(NSString * _Nonnull)entitlementIdentifier __attribute__((warn_unused_result(""))); + [Export("purchaseDateForEntitlement:")] + [return: NullAllowed] + NSDate PurchaseDateForEntitlement(string entitlementIdentifier); + + // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); + [Export("isEqual:")] + [Override] + bool IsEqual([NullAllowed] NSObject @object); + + // @property (readonly, nonatomic) NSUInteger hash; + [Export("hash")] nuint Hash { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull description; + [Export("description")] [Override] string Description { get; } + + // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull rawData; + [Export("rawData", ArgumentSemantic.Copy)] + NSDictionary RawData { get; } + + // @property (readonly, copy, nonatomic) SWIFT_DEPRECATED_MSG("use nonSubscriptionTransactions") NSSet * nonConsumablePurchases __attribute__((deprecated("use nonSubscriptionTransactions"))); + [Export("nonConsumablePurchases", ArgumentSemantic.Copy)] + NSSet NonConsumablePurchases { get; } + + // @property (readonly, copy, nonatomic) SWIFT_DEPRECATED_MSG("", "nonSubscriptions") NSArray * nonSubscriptionTransactions __attribute__((deprecated("", "nonSubscriptions"))); + [Export("nonSubscriptionTransactions", ArgumentSemantic.Copy)] + RCStoreTransaction[] NonSubscriptionTransactions { get; } + } + + // @interface RCDangerousSettings : NSObject + [BaseType(typeof(NSObject))] + interface RCDangerousSettings + { + // @property (readonly, nonatomic) BOOL autoSyncPurchases; + [Export("autoSyncPurchases")] bool AutoSyncPurchases { get; } + + // -(instancetype _Nonnull)initWithAutoSyncPurchases:(BOOL)autoSyncPurchases __attribute__((objc_designated_initializer)); + [Export("initWithAutoSyncPurchases:")] + [DesignatedInitializer] + IntPtr Constructor(bool autoSyncPurchases); + } + + // @interface RCEntitlementInfo : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCEntitlementInfo : INativeObject + { + // @property (readonly, copy, nonatomic) NSString * _Nonnull identifier; + [Export("identifier")] string Identifier { get; } + + // @property (readonly, nonatomic) BOOL isActive; + [Export("isActive")] bool IsActive { get; } + + // @property (readonly, nonatomic) BOOL willRenew; + [Export("willRenew")] bool WillRenew { get; } + + // @property (readonly, nonatomic) enum RCPeriodType periodType; + [Export("periodType")] RCPeriodType PeriodType { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nullable latestPurchaseDate; + [NullAllowed, Export("latestPurchaseDate", ArgumentSemantic.Copy)] + NSDate LatestPurchaseDate { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nullable originalPurchaseDate; + [NullAllowed, Export("originalPurchaseDate", ArgumentSemantic.Copy)] + NSDate OriginalPurchaseDate { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nullable expirationDate; + [NullAllowed, Export("expirationDate", ArgumentSemantic.Copy)] + NSDate ExpirationDate { get; } + + // @property (readonly, nonatomic) enum RCStore store; + [Export("store")] RCStore Store { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull productIdentifier; + [Export("productIdentifier")] string ProductIdentifier { get; } + + // @property (readonly, nonatomic) BOOL isSandbox; + [Export("isSandbox")] bool IsSandbox { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nullable unsubscribeDetectedAt; + [NullAllowed, Export("unsubscribeDetectedAt", ArgumentSemantic.Copy)] + NSDate UnsubscribeDetectedAt { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nullable billingIssueDetectedAt; + [NullAllowed, Export("billingIssueDetectedAt", ArgumentSemantic.Copy)] + NSDate BillingIssueDetectedAt { get; } + + // @property (readonly, nonatomic) enum RCPurchaseOwnershipType ownershipType; + [Export("ownershipType")] RCPurchaseOwnershipType OwnershipType { get; } + + // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull rawData; + [Export("rawData", ArgumentSemantic.Copy)] + NSDictionary RawData { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull description; + [Export("description")] [Override] string Description { get; } + + // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); + [Export("isEqual:")] + [Override] + bool IsEqual([NullAllowed] NSObject @object); + + // @property (readonly, nonatomic) NSUInteger hash; + [Export("hash")] nuint Hash { get; } + + // @property (readonly, nonatomic) BOOL isActiveInCurrentEnvironment; + [Export("isActiveInCurrentEnvironment")] + bool IsActiveInCurrentEnvironment { get; } + + // @property (readonly, nonatomic) BOOL isActiveInAnyEnvironment; + [Export("isActiveInAnyEnvironment")] bool IsActiveInAnyEnvironment { get; } + } + + // @interface RCEntitlementInfos : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCEntitlementInfos + { + // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull all; + [Export("all", ArgumentSemantic.Copy)] NSDictionary All { get; } + + // -(RCEntitlementInfo * _Nullable)objectForKeyedSubscript:(NSString * _Nonnull)key __attribute__((warn_unused_result(""))); + [Export("objectForKeyedSubscript:")] + [return: NullAllowed] + RCEntitlementInfo ObjectForKeyedSubscript(string key); + + // @property (readonly, copy, nonatomic) NSString * _Nonnull description; + [Export("description")] [Override] string Description { get; } + + // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); + [Export("isEqual:")] + [Override] + bool IsEqual([NullAllowed] NSObject @object); + + // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull active; + [Export("active", ArgumentSemantic.Copy)] + NSDictionary Active { get; } + + // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull activeInCurrentEnvironment; + [Export("activeInCurrentEnvironment", ArgumentSemantic.Copy)] + NSDictionary ActiveInCurrentEnvironment { get; } + + // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull activeInAnyEnvironment; + [Export("activeInAnyEnvironment", ArgumentSemantic.Copy)] + NSDictionary ActiveInAnyEnvironment { get; } + } + + // @interface RCIntroEligibility : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCIntroEligibility : INativeObject + { + // @property (readonly, nonatomic) enum RCIntroEligibilityStatus status; + [Export("status")] RCIntroEligibilityStatus Status { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull description; + [Export("description")] [Override] string Description { get; } + } + + // @interface RCNonSubscriptionTransaction : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCNonSubscriptionTransaction + { + // @property (readonly, copy, nonatomic) NSString * _Nonnull productIdentifier; + [Export("productIdentifier")] string ProductIdentifier { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nonnull purchaseDate; + [Export("purchaseDate", ArgumentSemantic.Copy)] + NSDate PurchaseDate { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull transactionIdentifier; + [Export("transactionIdentifier")] string TransactionIdentifier { get; } + } + + // @interface RCOffering : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCOffering : INativeObject + { + // @property (readonly, copy, nonatomic) NSString * _Nonnull identifier; + [Export("identifier")] string Identifier { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull serverDescription; + [Export("serverDescription")] string ServerDescription { get; } + + // @property (readonly, copy, nonatomic) NSArray * _Nonnull availablePackages; + [Export("availablePackages", ArgumentSemantic.Copy)] + RCPackage[] AvailablePackages { get; } + + // @property (readonly, nonatomic, strong) RCPackage * _Nullable lifetime; + [NullAllowed, Export("lifetime", ArgumentSemantic.Strong)] + RCPackage Lifetime { get; } + + // @property (readonly, nonatomic, strong) RCPackage * _Nullable annual; + [NullAllowed, Export("annual", ArgumentSemantic.Strong)] + RCPackage Annual { get; } + + // @property (readonly, nonatomic, strong) RCPackage * _Nullable sixMonth; + [NullAllowed, Export("sixMonth", ArgumentSemantic.Strong)] + RCPackage SixMonth { get; } + + // @property (readonly, nonatomic, strong) RCPackage * _Nullable threeMonth; + [NullAllowed, Export("threeMonth", ArgumentSemantic.Strong)] + RCPackage ThreeMonth { get; } + + // @property (readonly, nonatomic, strong) RCPackage * _Nullable twoMonth; + [NullAllowed, Export("twoMonth", ArgumentSemantic.Strong)] + RCPackage TwoMonth { get; } + + // @property (readonly, nonatomic, strong) RCPackage * _Nullable monthly; + [NullAllowed, Export("monthly", ArgumentSemantic.Strong)] + RCPackage Monthly { get; } + + // @property (readonly, nonatomic, strong) RCPackage * _Nullable weekly; + [NullAllowed, Export("weekly", ArgumentSemantic.Strong)] + RCPackage Weekly { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull description; + [Export("description")] [Override] string Description { get; } + + // -(RCPackage * _Nullable)packageWithIdentifier:(NSString * _Nullable)identifier __attribute__((warn_unused_result(""))); + [Export("packageWithIdentifier:")] + [return: NullAllowed] + RCPackage PackageWithIdentifier([NullAllowed] string identifier); + + // -(RCPackage * _Nullable)objectForKeyedSubscript:(NSString * _Nonnull)key __attribute__((warn_unused_result(""))); + [Export("objectForKeyedSubscript:")] + [return: NullAllowed] + RCPackage ObjectForKeyedSubscript(string key); + } + + // @interface RCOfferings : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCOfferings + { + // @property (readonly, copy, nonatomic) NSDictionary * _Nonnull all; + [Export("all", ArgumentSemantic.Copy)] NSDictionary All { get; } + + // @property (readonly, nonatomic, strong) RCOffering * _Nullable current; + [NullAllowed, Export("current", ArgumentSemantic.Strong)] + RCOffering Current { get; } + + // -(RCOffering * _Nullable)offeringWithIdentifier:(NSString * _Nullable)identifier __attribute__((warn_unused_result(""))); + [Export("offeringWithIdentifier:")] + [return: NullAllowed] + RCOffering OfferingWithIdentifier([NullAllowed] string identifier); + + // -(RCOffering * _Nullable)objectForKeyedSubscript:(NSString * _Nonnull)key __attribute__((warn_unused_result(""))); + [Export("objectForKeyedSubscript:")] + [return: NullAllowed] + RCOffering ObjectForKeyedSubscript(string key); + + // @property (readonly, copy, nonatomic) NSString * _Nonnull description; + [Export("description")] [Override] string Description { get; } + } + + // @interface RCPackage : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCPackage + { + // @property (readonly, copy, nonatomic) NSString * _Nonnull identifier; + [Export("identifier")] string Identifier { get; } + + // @property (readonly, nonatomic) enum RCPackageType packageType; + [Export("packageType")] RCPackageType PackageType { get; } + + // @property (readonly, nonatomic, strong) RCStoreProduct * _Nonnull storeProduct; + [Export("storeProduct", ArgumentSemantic.Strong)] + RCStoreProduct StoreProduct { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull offeringIdentifier; + [Export("offeringIdentifier")] string OfferingIdentifier { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull localizedPriceString; + [Export("localizedPriceString")] string LocalizedPriceString { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nullable localizedIntroductoryPriceString; + [NullAllowed, Export("localizedIntroductoryPriceString")] + string LocalizedIntroductoryPriceString { get; } + + // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); + [Export("isEqual:")] + [Override] + bool IsEqual([NullAllowed] NSObject @object); + + // @property (readonly, nonatomic) NSUInteger hash; + [Export("hash")] nuint Hash { get; } + + // +(NSString * _Nullable)stringFrom:(enum RCPackageType)packageType __attribute__((warn_unused_result(""))); + [Static] + [Export("stringFrom:")] + [return: NullAllowed] + string StringFrom(RCPackageType packageType); + + // +(enum RCPackageType)packageTypeFrom:(NSString * _Nonnull)string __attribute__((warn_unused_result(""))); + [Static] + [Export("packageTypeFrom:")] + RCPackageType PackageTypeFrom(string @string); + } + + // @interface RCPromotionalOffer : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCPromotionalOffer + { + // @property (readonly, nonatomic, strong) RCStoreProductDiscount * _Nonnull discount; + [Export("discount", ArgumentSemantic.Strong)] + RCStoreProductDiscount Discount { get; } + + // @property (readonly, nonatomic, strong) RCPromotionalOfferSignedData * _Nonnull signedData; + [Export("signedData", ArgumentSemantic.Strong)] + RCPromotionalOfferSignedData SignedData { get; } + } + + // @interface RCPromotionalOfferSignedData : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCPromotionalOfferSignedData + { + // @property (readonly, copy, nonatomic) NSString * _Nonnull identifier; + [Export("identifier")] string Identifier { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull keyIdentifier; + [Export("keyIdentifier")] string KeyIdentifier { get; } + + // @property (readonly, copy, nonatomic) NSUUID * _Nonnull nonce; + [Export("nonce", ArgumentSemantic.Copy)] + NSUuid Nonce { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull signature; + [Export("signature")] string Signature { get; } + + // @property (readonly, nonatomic) NSInteger timestamp; + [Export("timestamp")] nint Timestamp { get; } + } + + // @interface RCPurchases : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCPurchases + { + // @property (readonly, nonatomic, strong, class) RCPurchases * _Nonnull sharedPurchases; + [Static] + [Export("sharedPurchases", ArgumentSemantic.Strong)] + RCPurchases SharedPurchases { get; } + + // @property (readonly, nonatomic, class) BOOL isConfigured; + [Static] [Export("isConfigured")] bool IsConfigured { get; } + + [Wrap("WeakDelegate")] [NullAllowed] RCPurchasesDelegate Delegate { get; set; } + + // @property (nonatomic, strong) id _Nullable delegate; + [NullAllowed, Export("delegate", ArgumentSemantic.Strong)] + NSObject WeakDelegate { get; set; } + + // @property (nonatomic, class) BOOL automaticAppleSearchAdsAttributionCollection; + [Static] + [Export("automaticAppleSearchAdsAttributionCollection")] + bool AutomaticAppleSearchAdsAttributionCollection { get; set; } + + // @property (nonatomic, class) enum RCLogLevel logLevel; + [Static] + [Export("logLevel", ArgumentSemantic.Assign)] + RCLogLevel LogLevel { get; set; } + + // @property (copy, nonatomic, class) NSURL * _Nullable proxyURL; + [Static] + [NullAllowed, Export("proxyURL", ArgumentSemantic.Copy)] + NSUrl ProxyURL { get; set; } + + // @property (nonatomic, class) BOOL forceUniversalAppStore; + [Static] + [Export("forceUniversalAppStore")] + bool ForceUniversalAppStore { get; set; } + + // @property (nonatomic, class) BOOL simulatesAskToBuyInSandbox __attribute__((availability(maccatalyst, introduced=13.0))) __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(macos, introduced=10.14))) __attribute__((availability(ios, introduced=8.0))); + [Watch(6, 2), MacCatalyst(13, 0), Mac(10, 14), iOS(8, 0)] + [Static] + [Export("simulatesAskToBuyInSandbox")] + bool SimulatesAskToBuyInSandbox { get; set; } + + // +(BOOL)canMakePayments __attribute__((warn_unused_result(""))); + [Static] [Export("canMakePayments")] bool CanMakePayments { get; } + + // @property (copy, nonatomic, class) void (^ _Nonnull)(enum RCLogLevel, NSString * _Nonnull) logHandler; + [Static] + [Export("logHandler", ArgumentSemantic.Copy)] + Action LogHandler { get; set; } + + // @property (copy, nonatomic, class) void (^ _Nonnull)(enum RCLogLevel, NSString * _Nonnull, NSString * _Nullable, NSString * _Nullable, NSUInteger) verboseLogHandler; + [Static] + [Export("verboseLogHandler", ArgumentSemantic.Copy)] + Action VerboseLogHandler { get; set; } + + // @property (nonatomic, class) BOOL verboseLogs; + [Static] [Export("verboseLogs")] bool VerboseLogs { get; set; } + + // @property (readonly, copy, nonatomic, class) NSString * _Nonnull frameworkVersion; + [Static] [Export("frameworkVersion")] string FrameworkVersion { get; } + + // @property (readonly, nonatomic, strong) RCAttribution * _Nonnull attribution; + [Export("attribution", ArgumentSemantic.Strong)] + RCAttribution Attribution { get; } + + // @property (nonatomic) BOOL finishTransactions; + [Export("finishTransactions")] bool FinishTransactions { get; set; } + + // @property (nonatomic, strong, class) RCPlatformInfo * _Nullable platformInfo; + [Static] + [NullAllowed, Export("platformInfo", ArgumentSemantic.Strong)] + RCPlatformInfo PlatformInfo { get; set; } + + // +(RCPurchases * _Nonnull)configureWithConfiguration:(RCConfiguration * _Nonnull)configuration; + [Static] + [Export("configureWithConfiguration:")] + RCPurchases ConfigureWithConfiguration(RCConfiguration configuration); + + // +(RCPurchases * _Nonnull)configureWithConfigurationBuilder:(RCConfigurationBuilder * _Nonnull)builder; + [Static] + [Export("configureWithConfigurationBuilder:")] + RCPurchases ConfigureWithConfigurationBuilder(RCConfigurationBuilder builder); + + // +(RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey; + [Static] + [Export("configureWithAPIKey:")] + RCPurchases ConfigureWithAPIKey(string apiKey); + + // -(void)readyForPromotedProduct:(RCStoreProduct * _Nonnull)product purchase:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))startPurchase; + [Export("readyForPromotedProduct:purchase:")] + void ReadyForPromotedProduct(RCStoreProduct product, StartPurchaseHandler startPurchaseHandler); + + // @property (readonly, nonatomic) BOOL shouldShowPriceConsent __attribute__((availability(maccatalyst, introduced=13.4))) __attribute__((availability(ios, introduced=13.4))); + [MacCatalyst(13, 4), iOS(13, 4)] + [Export("shouldShowPriceConsent")] + bool ShouldShowPriceConsent { get; } + + // @property (nonatomic, class) BOOL debugLogsEnabled __attribute__((deprecated("use Purchases.logLevel instead"))); + [Static] [Export("debugLogsEnabled")] bool DebugLogsEnabled { get; set; } + + // @property (nonatomic) BOOL allowSharingAppStoreAccount __attribute__((deprecated("Configure behavior through the RevenueCat dashboard instead"))); + [Export("allowSharingAppStoreAccount")] + bool AllowSharingAppStoreAccount { get; set; } + + // +(void)addAttributionData:(NSDictionary * _Nonnull)data fromNetwork:(enum RCAttributionNetwork)network __attribute__((deprecated("Use the set functions instead"))); + [Static] + [Export("addAttributionData:fromNetwork:")] + void AddAttributionData(NSDictionary data, RCAttributionNetwork network); + + // +(void)addAttributionData:(NSDictionary * _Nonnull)data fromNetwork:(enum RCAttributionNetwork)network forNetworkUserId:(NSString * _Nullable)networkUserId __attribute__((deprecated("Use the set functions instead"))); + [Static] + [Export("addAttributionData:fromNetwork:forNetworkUserId:")] + void AddAttributionData(NSDictionary data, RCAttributionNetwork network, + [NullAllowed] string networkUserId); + + // @property (readonly, copy, nonatomic) NSString * _Nonnull appUserID; + [Export("appUserID")] string AppUserID { get; } + + // @property (readonly, nonatomic) BOOL isAnonymous; + [Export("isAnonymous")] bool IsAnonymous { get; } + + // -(void)logIn:(NSString * _Nonnull)appUserID completion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, BOOL, NSError * _Nullable))completion; + [Export("logIn:completion:")] + void LogIn(string appUserID, Action completion); + + // -(void)logOutWithCompletion:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; + [Export("logOutWithCompletion:")] + void LogOutWithCompletion([NullAllowed] Action completion); + + // -(void)getOfferingsWithCompletion:(void (^ _Nonnull)(RCOfferings * _Nullable, NSError * _Nullable))completion; + [Export("getOfferingsWithCompletion:")] + void GetOfferingsWithCompletion(Action completion); + + // -(void)getCustomerInfoWithCompletion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; + [Export("getCustomerInfoWithCompletion:")] + void GetCustomerInfoWithCompletion(Action completion); + + // -(void)getCustomerInfoWithFetchPolicy:(enum RCCacheFetchPolicy)fetchPolicy completion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; + [Export("getCustomerInfoWithFetchPolicy:completion:")] + void GetCustomerInfoWithFetchPolicy(RCCacheFetchPolicy fetchPolicy, Action completion); + + // -(void)getProductsWithIdentifiers:(NSArray * _Nonnull)productIdentifiers completion:(void (^ _Nonnull)(NSArray * _Nonnull))completion; + [Export("getProductsWithIdentifiers:completion:")] + void GetProductsWithIdentifiers(string[] productIdentifiers, Action> completion); + + // -(void)purchaseProduct:(RCStoreProduct * _Nonnull)product withCompletion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion; + [Export("purchaseProduct:withCompletion:")] + void PurchaseProduct(RCStoreProduct product, + Action completion); + + // -(void)purchasePackage:(RCPackage * _Nonnull)package withCompletion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion; + [Export("purchasePackage:withCompletion:")] + void PurchasePackage(RCPackage package, Action completion); + + // -(void)purchaseProduct:(RCStoreProduct * _Nonnull)product withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion __attribute__((availability(tvos, introduced=12.2))) __attribute__((availability(maccatalyst, introduced=13.0))) __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(macos, introduced=10.14.4))) __attribute__((availability(ios, introduced=12.2))); + [Watch(6, 2), TV(12, 2), MacCatalyst(13, 0), Mac(10, 14, 4), iOS(12, 2)] + [Export("purchaseProduct:withPromotionalOffer:completion:")] + void PurchaseProduct(RCStoreProduct product, RCPromotionalOffer promotionalOffer, + Action completion); + + // -(void)purchasePackage:(RCPackage * _Nonnull)package withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion __attribute__((availability(tvos, introduced=12.2))) __attribute__((availability(maccatalyst, introduced=13.0))) __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(macos, introduced=10.14.4))) __attribute__((availability(ios, introduced=12.2))); + [Watch(6, 2), TV(12, 2), MacCatalyst(13, 0), Mac(10, 14, 4), iOS(12, 2)] + [Export("purchasePackage:withPromotionalOffer:completion:")] + void PurchasePackage(RCPackage package, RCPromotionalOffer promotionalOffer, + Action completion); + + // -(void)syncPurchasesWithCompletion:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; + [Export("syncPurchasesWithCompletion:")] + void SyncPurchasesWithCompletion([NullAllowed] Action completion); + + // -(void)restorePurchasesWithCompletion:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; + [Export("restorePurchasesWithCompletion:")] + void RestorePurchasesWithCompletion([NullAllowed] Action completion); + + // -(void)checkTrialOrIntroDiscountEligibility:(NSArray * _Nonnull)productIdentifiers completion:(void (^ _Nonnull)(NSDictionary * _Nonnull))completion; + [Export("checkTrialOrIntroDiscountEligibility:completion:")] + void CheckTrialOrIntroDiscountEligibility(string[] productIdentifiers, + Action> completion); + + // -(void)checkTrialOrIntroDiscountEligibilityForProduct:(RCStoreProduct * _Nonnull)product completion:(void (^ _Nonnull)(enum RCIntroEligibilityStatus))completion; + [Export("checkTrialOrIntroDiscountEligibilityForProduct:completion:")] + void CheckTrialOrIntroDiscountEligibilityForProduct(RCStoreProduct product, + Action completion); + + // -(void)showPriceConsentIfNeeded __attribute__((availability(maccatalyst, introduced=13.4))) __attribute__((availability(ios, introduced=13.4))); + [MacCatalyst(13, 4), iOS(13, 4)] + [Export("showPriceConsentIfNeeded")] + void ShowPriceConsentIfNeeded(); + + // -(void)invalidateCustomerInfoCache; + [Export("invalidateCustomerInfoCache")] + void InvalidateCustomerInfoCache(); + + // -(void)presentCodeRedemptionSheet __attribute__((availability(maccatalyst, unavailable))) __attribute__((availability(macos, unavailable))) __attribute__((availability(tvos, unavailable))) __attribute__((availability(watchos, unavailable))) __attribute__((availability(ios, introduced=14.0))); + [NoWatch, NoTV, NoMacCatalyst, NoMac, iOS(14, 0)] + [Export("presentCodeRedemptionSheet")] + void PresentCodeRedemptionSheet(); + + // -(void)getPromotionalOfferForProductDiscount:(RCStoreProductDiscount * _Nonnull)discount withProduct:(RCStoreProduct * _Nonnull)product withCompletion:(void (^ _Nonnull)(RCPromotionalOffer * _Nullable, NSError * _Nullable))completion __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=12.2))) __attribute__((availability(maccatalyst, introduced=13.0))) __attribute__((availability(macos, introduced=10.14.4))) __attribute__((availability(ios, introduced=12.2))); + [Watch(6, 2), TV(12, 2), MacCatalyst(13, 0), Mac(10, 14, 4), iOS(12, 2)] + [Export("getPromotionalOfferForProductDiscount:withProduct:withCompletion:")] + void GetPromotionalOfferForProductDiscount(RCStoreProductDiscount discount, RCStoreProduct product, + Action completion); + + // -(void)showManageSubscriptionsWithCompletion:(void (^ _Nonnull)(NSError * _Nullable))completion __attribute__((availability(macos, introduced=10.15))) __attribute__((availability(ios, introduced=13.0))) __attribute__((availability(tvos, unavailable))) __attribute__((availability(watchos, unavailable))); + [NoWatch, NoTV, Mac(10, 15), iOS(13, 0)] + [Export("showManageSubscriptionsWithCompletion:")] + void ShowManageSubscriptionsWithCompletion(Action completion); + + // -(void)beginRefundRequestForProduct:(NSString * _Nonnull)productID completion:(void (^ _Nonnull)(enum RCRefundRequestStatus, NSError * _Nullable))completionHandler __attribute__((availability(tvos, unavailable))) __attribute__((availability(watchos, unavailable))) __attribute__((availability(macos, unavailable))) __attribute__((availability(ios, introduced=15.0))); + [NoWatch, NoTV, NoMac, iOS(15, 0)] + [Export("beginRefundRequestForProduct:completion:")] + void BeginRefundRequestForProduct(string productID, Action completionHandler); + + // -(void)beginRefundRequestForEntitlement:(NSString * _Nonnull)entitlementID completion:(void (^ _Nonnull)(enum RCRefundRequestStatus, NSError * _Nullable))completionHandler __attribute__((availability(tvos, unavailable))) __attribute__((availability(watchos, unavailable))) __attribute__((availability(macos, unavailable))) __attribute__((availability(ios, introduced=15.0))); + [NoWatch, NoTV, NoMac, iOS(15, 0)] + [Export("beginRefundRequestForEntitlement:completion:")] + void BeginRefundRequestForEntitlement(string entitlementID, + Action completionHandler); + + // -(void)beginRefundRequestForActiveEntitlementWithCompletion:(void (^ _Nonnull)(enum RCRefundRequestStatus, NSError * _Nullable))completionHandler __attribute__((availability(tvos, unavailable))) __attribute__((availability(watchos, unavailable))) __attribute__((availability(macos, unavailable))) __attribute__((availability(ios, introduced=15.0))); + [NoWatch, NoTV, NoMac, iOS(15, 0)] + [Export("beginRefundRequestForActiveEntitlementWithCompletion:")] + void BeginRefundRequestForActiveEntitlementWithCompletion( + Action completionHandler); + } + + // @interface RCPlatformInfo : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCPlatformInfo + { + // -(instancetype _Nonnull)initWithFlavor:(NSString * _Nonnull)flavor version:(NSString * _Nonnull)version __attribute__((objc_designated_initializer)); + [Export("initWithFlavor:version:")] + [DesignatedInitializer] + IntPtr Constructor(string flavor, string version); + } + + // @protocol RCPurchasesDelegate + [Protocol, Model(AutoGeneratedName = true)] + [BaseType(typeof(NSObject))] + interface RCPurchasesDelegate + { + // @optional -(void)purchases:(RCPurchases * _Nonnull)purchases receivedUpdatedCustomerInfo:(RCCustomerInfo * _Nonnull)customerInfo; + [Export("purchases:receivedUpdatedCustomerInfo:")] + void ReceivedUpdatedCustomerInfo(RCPurchases purchases, RCCustomerInfo customerInfo); + + // @optional -(void)purchases:(RCPurchases * _Nonnull)purchases readyForPromotedProduct:(RCStoreProduct * _Nonnull)product purchase:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))startPurchase; + [Export("purchases:readyForPromotedProduct:purchase:")] + void ReadyForPromotedProduct(RCPurchases purchases, RCStoreProduct product, StartPurchaseHandler startPurchase); + + // @optional @property (readonly, nonatomic) BOOL shouldShowPriceConsent __attribute__((availability(watchos, unavailable))) __attribute__((availability(tvos, unavailable))) __attribute__((availability(macos, unavailable))) __attribute__((availability(maccatalyst, introduced=13.4))) __attribute__((availability(ios, introduced=13.4))); + [NoWatch, NoTV, NoMac, MacCatalyst(13, 4), iOS(13, 4)] + [Export("shouldShowPriceConsent")] + bool ShouldShowPriceConsent { get; } + } + + // @interface RCStoreProduct : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCStoreProduct : INativeObject + { + // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); + [Export("isEqual:")] + [Override] + bool IsEqual([NullAllowed] NSObject @object); + + // @property (readonly, nonatomic) NSUInteger hash; + [Export("hash")] nuint Hash { get; } + + // @property (readonly, nonatomic) enum RCStoreProductType productType; + [Export("productType")] RCStoreProductType ProductType { get; } + + // @property (readonly, nonatomic) enum RCStoreProductCategory productCategory; + [Export("productCategory")] RCStoreProductCategory ProductCategory { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull localizedDescription; + [Export("localizedDescription")] string LocalizedDescription { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull localizedTitle; + [Export("localizedTitle")] string LocalizedTitle { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nullable currencyCode; + [NullAllowed, Export("currencyCode")] string CurrencyCode { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull localizedPriceString; + [Export("localizedPriceString")] string LocalizedPriceString { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull productIdentifier; + [Export("productIdentifier")] string ProductIdentifier { get; } + + // @property (readonly, nonatomic) BOOL isFamilyShareable __attribute__((availability(watchos, introduced=8.0))) __attribute__((availability(tvos, introduced=14.0))) __attribute__((availability(macos, introduced=11.0))) __attribute__((availability(ios, introduced=14.0))); + [Watch(8, 0), TV(14, 0), Mac(11, 0), iOS(14, 0)] + [Export("isFamilyShareable")] + bool IsFamilyShareable { get; } + + // @property (readonly, copy, nonatomic) SWIFT_AVAILABILITY(watchos,introduced=6.2) NSString * subscriptionGroupIdentifier __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(macos, introduced=10.14))) __attribute__((availability(tvos, introduced=12.0))) __attribute__((availability(maccatalyst, introduced=13.0))) __attribute__((availability(ios, introduced=12.0))); + [Watch(6, 2), TV(12, 0), MacCatalyst(13, 0), Mac(10, 14), iOS(12, 0)] + [Export("subscriptionGroupIdentifier")] + string SubscriptionGroupIdentifier { get; } + + // @property (readonly, nonatomic, strong) NSNumberFormatter * _Nullable priceFormatter; + [NullAllowed, Export("priceFormatter", ArgumentSemantic.Strong)] + NSNumberFormatter PriceFormatter { get; } + + // @property (readonly, nonatomic, strong) SWIFT_AVAILABILITY(watchos,introduced=6.2) RCSubscriptionPeriod * subscriptionPeriod __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=11.2))) __attribute__((availability(macos, introduced=10.13.2))) __attribute__((availability(ios, introduced=11.2))); + [Watch(6, 2), TV(11, 2), Mac(10, 13, 2), iOS(11, 2)] + [Export("subscriptionPeriod", ArgumentSemantic.Strong)] + RCSubscriptionPeriod SubscriptionPeriod { get; } + + // @property (readonly, nonatomic, strong) SWIFT_AVAILABILITY(watchos,introduced=6.2) RCStoreProductDiscount * introductoryDiscount __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=11.2))) __attribute__((availability(macos, introduced=10.13.2))) __attribute__((availability(ios, introduced=11.2))); + [Watch(6, 2), TV(11, 2), Mac(10, 13, 2), iOS(11, 2)] + [Export("introductoryDiscount", ArgumentSemantic.Strong)] + RCStoreProductDiscount IntroductoryDiscount { get; } + + // @property (readonly, copy, nonatomic) SWIFT_AVAILABILITY(watchos,introduced=6.2) NSArray * discounts __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=12.2))) __attribute__((availability(macos, introduced=10.14.4))) __attribute__((availability(ios, introduced=12.2))); + [Watch(6, 2), TV(12, 2), Mac(10, 14, 4), iOS(12, 2)] + [Export("discounts", ArgumentSemantic.Copy)] + RCStoreProductDiscount[] Discounts { get; } + + // @property (readonly, nonatomic, strong) NSDecimalNumber * _Nonnull price; + [Export("price", ArgumentSemantic.Strong)] + NSDecimalNumber Price { get; } + + // @property (readonly, nonatomic, strong) SWIFT_AVAILABILITY(watchos,introduced=6.2) NSDecimalNumber * pricePerMonth __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=11.2))) __attribute__((availability(macos, introduced=10.13.2))) __attribute__((availability(ios, introduced=11.2))); + [Watch(6, 2), TV(11, 2), Mac(10, 13, 2), iOS(11, 2)] + [Export("pricePerMonth", ArgumentSemantic.Strong)] + NSDecimalNumber PricePerMonth { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nullable localizedIntroductoryPriceString; + [NullAllowed, Export("localizedIntroductoryPriceString")] + string LocalizedIntroductoryPriceString { get; } + + // -(instancetype _Nonnull)initWithSk1Product:(SKProduct * _Nonnull)sk1Product; + [Export("initWithSk1Product:")] + IntPtr Constructor(SKProduct sk1Product); + + // @property (readonly, nonatomic, strong) SKProduct * _Nullable sk1Product; + [NullAllowed, Export("sk1Product", ArgumentSemantic.Strong)] + SKProduct Sk1Product { get; } + } + + // @interface RCStoreProductDiscount : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCStoreProductDiscount + { + // @property (readonly, copy, nonatomic) NSString * _Nullable offerIdentifier; + [NullAllowed, Export("offerIdentifier")] + string OfferIdentifier { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nullable currencyCode; + [NullAllowed, Export("currencyCode")] string CurrencyCode { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull localizedPriceString; + [Export("localizedPriceString")] string LocalizedPriceString { get; } + + // @property (readonly, nonatomic) enum RCPaymentMode paymentMode; + [Export("paymentMode")] RCPaymentMode PaymentMode { get; } + + // @property (readonly, nonatomic, strong) RCSubscriptionPeriod * _Nonnull subscriptionPeriod; + [Export("subscriptionPeriod", ArgumentSemantic.Strong)] + RCSubscriptionPeriod SubscriptionPeriod { get; } + + // @property (readonly, nonatomic) NSInteger numberOfPeriods; + [Export("numberOfPeriods")] nint NumberOfPeriods { get; } + + // @property (readonly, nonatomic) enum RCDiscountType type; + [Export("type")] RCDiscountType Type { get; } + + // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); + [Export("isEqual:")] + [Override] + bool IsEqual([NullAllowed] NSObject @object); + + // @property (readonly, nonatomic) NSUInteger hash; + [Export("hash")] nuint Hash { get; } + + // @property (readonly, nonatomic, strong) NSDecimalNumber * _Nonnull price; + [Export("price", ArgumentSemantic.Strong)] + NSDecimalNumber Price { get; } + + // @property (readonly, nonatomic, strong) SWIFT_AVAILABILITY(watchos,introduced=6.2) SKProductDiscount * sk1Discount __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=12.2))) __attribute__((availability(macos, introduced=10.14.4))) __attribute__((availability(ios, introduced=12.2))); + [Watch(6, 2), TV(12, 2), Mac(10, 14, 4), iOS(12, 2)] + [Export("sk1Discount", ArgumentSemantic.Strong)] + SKProductDiscount Sk1Discount { get; } + } + + // @interface RCStoreTransaction : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCStoreTransaction + { + // @property (readonly, copy, nonatomic) NSString * _Nonnull productIdentifier; + [Export("productIdentifier")] string ProductIdentifier { get; } + + // @property (readonly, copy, nonatomic) NSDate * _Nonnull purchaseDate; + [Export("purchaseDate", ArgumentSemantic.Copy)] + NSDate PurchaseDate { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull transactionIdentifier; + [Export("transactionIdentifier")] string TransactionIdentifier { get; } + + // @property (readonly, nonatomic) NSInteger quantity; + [Export("quantity")] nint Quantity { get; } + + // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); + [Export("isEqual:")] + [Override] + bool IsEqual([NullAllowed] NSObject @object); + + // @property (readonly, nonatomic) NSUInteger hash; + [Export("hash")] nuint Hash { get; } + + // @property (readonly, nonatomic, strong) SKPaymentTransaction * _Nullable sk1Transaction; + [NullAllowed, Export("sk1Transaction", ArgumentSemantic.Strong)] + SKPaymentTransaction Sk1Transaction { get; } + } + + // @interface RCStorefront : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCStorefront + { + // @property (readonly, copy, nonatomic) NSString * _Nonnull countryCode; + [Export("countryCode")] string CountryCode { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull identifier; + [Export("identifier")] string Identifier { get; } + + // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); + [Export("isEqual:")] + [Override] + bool IsEqual([NullAllowed] NSObject @object); + + // @property (readonly, nonatomic) NSUInteger hash; + [Export("hash")] nuint Hash { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull description; + [Export("description")] [Override] string Description { get; } + + // @property (readonly, nonatomic, strong) SWIFT_AVAILABILITY(maccatalyst,introduced=13.1) SKStorefront * sk1Storefront __attribute__((availability(maccatalyst, introduced=13.1))) __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=13.0))) __attribute__((availability(macos, introduced=10.15))) __attribute__((availability(ios, introduced=13.0))); + [Watch(6, 2), TV(13, 0), MacCatalyst(13, 1), Mac(10, 15), iOS(13, 0)] + [Export("sk1Storefront", ArgumentSemantic.Strong)] + SKStorefront Sk1Storefront { get; } + + // @property (readonly, nonatomic, strong, class) RCStorefront * _Nullable sk1CurrentStorefront __attribute__((availability(maccatalyst, introduced=13.1))) __attribute__((availability(watchos, introduced=6.2))) __attribute__((availability(tvos, introduced=13.0))) __attribute__((availability(macos, introduced=10.15))) __attribute__((availability(ios, introduced=13.0))); + [Watch(6, 2), TV(13, 0), MacCatalyst(13, 1), Mac(10, 15), iOS(13, 0)] + [Static] + [NullAllowed, Export("sk1CurrentStorefront", ArgumentSemantic.Strong)] + RCStorefront Sk1CurrentStorefront { get; } + } + + // @interface RCSubscriptionPeriod : NSObject + [BaseType(typeof(NSObject))] + [DisableDefaultCtor] + interface RCSubscriptionPeriod + { + // @property (readonly, nonatomic) NSInteger value; + [Export("value")] nint Value { get; } + + // @property (readonly, nonatomic) enum RCSubscriptionPeriodUnit unit; + [Export("unit")] RCSubscriptionPeriodUnit Unit { get; } + + // -(BOOL)isEqual:(id _Nullable)object __attribute__((warn_unused_result(""))); + [Export("isEqual:")] + [Override] + bool IsEqual([NullAllowed] NSObject @object); + + // @property (readonly, nonatomic) NSUInteger hash; + [Export("hash")] nuint Hash { get; } + + // @property (readonly, copy, nonatomic) NSString * _Nonnull debugDescription; + [Export("debugDescription")] [Override] string DebugDescription { get; } + } +} \ No newline at end of file diff --git a/Xamarin.RevenueCat.iOS/StructsAndEnums.cs b/Xamarin.RevenueCat.iOS/StructsAndEnums.cs index 2ba3592..f6009dc 100644 --- a/Xamarin.RevenueCat.iOS/StructsAndEnums.cs +++ b/Xamarin.RevenueCat.iOS/StructsAndEnums.cs @@ -15,6 +15,15 @@ public enum RCAttributionNetwork : long MParticle = 6, } + [Native] + public enum RCCacheFetchPolicy : long + { + FromCacheOnly = 0, + FetchCurrent = 1, + NotStaleCachedOrFetched = 2, + CachedOrFetched = 3, + } + [Native] public enum RCPurchasesErrorCode : long { @@ -45,7 +54,6 @@ public enum RCPurchasesErrorCode : long UnsupportedError = 24, EmptySubscriberAttributesError = 25, ProductDiscountMissingIdentifierError = 26, - MissingAppUserIDForAliasCreationError = 27, ProductDiscountMissingSubscriptionGroupIdentifierError = 28, CustomerInfoError = 29, SystemInfoError = 30, @@ -53,6 +61,7 @@ public enum RCPurchasesErrorCode : long ProductRequestTimedOut = 32, APIEndpointBlocked = 33, InvalidPromotionalOfferError = 34, + OfflineConnectionError = 35, } [Native] @@ -129,6 +138,7 @@ public enum RCStore : long Stripe = 3, Promotional = 4, UnknownStore = 5, + Amazon = 6, } [Native] diff --git a/Xamarin.RevenueCat.iOS/Xamarin.RevenueCat.iOS.csproj b/Xamarin.RevenueCat.iOS/Xamarin.RevenueCat.iOS.csproj index e60002f..6a0b746 100644 --- a/Xamarin.RevenueCat.iOS/Xamarin.RevenueCat.iOS.csproj +++ b/Xamarin.RevenueCat.iOS/Xamarin.RevenueCat.iOS.csproj @@ -3,7 +3,7 @@ true Xamarin.RevenueCat.iOS - 4.1.0.5 + 4.9.0.2 Contains bindings for https://docs.revenuecat.com/docs/ios Christian Kapplmüller fun.music IT GmbH @@ -41,24 +41,24 @@ true - - + + - + - - + + - + - + - + runtime; build; native; contentfiles; analyzers; buildtransitive all @@ -70,5 +70,5 @@ True - + diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Headers/RevenueCat-Swift.h b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Headers/RevenueCat-Swift.h index e28ecd5..c591918 100644 --- a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Headers/RevenueCat-Swift.h +++ b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Headers/RevenueCat-Swift.h @@ -2,7 +2,7 @@ #include #endif #if TARGET_OS_SIMULATOR -// Generated by Apple Swift version 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30) +// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8) #ifndef REVENUECAT_SWIFT_H #define REVENUECAT_SWIFT_H #pragma clang diagnostic push @@ -188,6 +188,13 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #if !defined(IBSegueAction) # define IBSegueAction #endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" @@ -212,6 +219,259 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # pragma pop_macro("any") #endif + +/// This class is responsible for all explicit attribution APIs as well as subscriber attributes that RevenueCat offers. +/// The attributes are additional structured information on a user. Since attributes are writable using a public key +/// they should not be used for managing secure or sensitive information such as subscription status, coins, etc. +/// Key names starting with “$” are reserved names used by RevenueCat. For a full list of key restrictions refer +/// to our guide +SWIFT_CLASS_NAMED("Attribution") +@interface RCAttribution : NSObject +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + + +@class NSString; +@class NSData; + +@interface RCAttribution (SWIFT_EXTENSION(RevenueCat)) +/// Automatically collect subscriber attributes associated with the device identifiers +///
    +///
  • +/// $idfa +///
  • +///
  • +/// $idfv +///
  • +///
  • +/// $ip +///
  • +///
+- (void)collectDeviceIdentifiers; +/// Subscriber attributes are useful for storing additional, structured information on a user. +/// Since attributes are writable using a public key they should not be used for +/// managing secure or sensitive information such as subscription status, coins, etc. +/// Key names starting with “$” are reserved names used by RevenueCat. For a full list of key +/// restrictions refer to our guide +/// \param attributes Map of attributes by key. Set the value as an empty string to delete an attribute. +/// +- (void)setAttributes:(NSDictionary * _Nonnull)attributes; +/// Subscriber attribute associated with the email address for the user. +///

Related Articles

+/// +/// \param email Empty String or nil will delete the subscriber attribute. +/// +- (void)setEmail:(NSString * _Nullable)email; +/// Subscriber attribute associated with the phone number for the user. +///

Related Articles

+/// +/// \param phoneNumber Empty String or nil will delete the subscriber attribute. +/// +- (void)setPhoneNumber:(NSString * _Nullable)phoneNumber; +/// Subscriber attribute associated with the display name for the user. +///

Related Articles

+/// +/// \param displayName Empty String or nil will delete the subscriber attribute. +/// +- (void)setDisplayName:(NSString * _Nullable)displayName; +/// Subscriber attribute associated with the push token for the user. +///

Related Articles

+/// +///

Related Symbols

+///
    +///
  • +/// Attribution/setPushTokenString(_:) +///
  • +///
+/// \param pushToken nil will delete the subscriber attribute. +/// +- (void)setPushToken:(NSData * _Nullable)pushToken; +/// Subscriber attribute associated with the push token for the user. +///

Related Articles

+/// +///

Related Symbols

+///
    +///
  • +/// Attribution/setPushToken(_:) +///
  • +///
+/// \param pushToken nil will delete the subscriber attribute. +/// +- (void)setPushTokenString:(NSString * _Nullable)pushToken; +/// Subscriber attribute associated with the Adjust Id for the user. +/// Required for the RevenueCat Adjust integration. +///

Related Articles

+/// +- (void)setAdjustID:(NSString * _Nullable)adjustID; +/// Subscriber attribute associated with the Appsflyer Id for the user. +/// Required for the RevenueCat Appsflyer integration. +///

Related Articles

+/// +- (void)setAppsflyerID:(NSString * _Nullable)appsflyerID; +/// Subscriber attribute associated with the Facebook SDK Anonymous Id for the user. +/// Recommended for the RevenueCat Facebook integration. +///

Related Articles

+/// +- (void)setFBAnonymousID:(NSString * _Nullable)fbAnonymousID; +/// Subscriber attribute associated with the mParticle Id for the user. +/// Recommended for the RevenueCat mParticle integration. +///

Related Articles

+/// +- (void)setMparticleID:(NSString * _Nullable)mparticleID; +/// Subscriber attribute associated with the OneSignal Player ID for the user. +/// Required for the RevenueCat OneSignal integration. +///

Related Articles

+/// +- (void)setOnesignalID:(NSString * _Nullable)onesignalID; +/// Subscriber attribute associated with the Airship Channel ID for the user. +/// Required for the RevenueCat Airship integration. +///

Related Articles

+/// +- (void)setAirshipChannelID:(NSString * _Nullable)airshipChannelID; +/// Subscriber attribute associated with the CleverTap ID for the user. +/// Required for the RevenueCat CleverTap integration. +///

Related Articles

+/// +- (void)setCleverTapID:(NSString * _Nullable)cleverTapID; +/// Subscriber attribute associated with the Mixpanel Distinct ID for the user. +/// Optional for the RevenueCat Mixpanel integration. +///

Related Articles

+/// +- (void)setMixpanelDistinctID:(NSString * _Nullable)mixpanelDistinctID; +/// Subscriber attribute associated with the Firebase App Instance ID for the user. +/// Required for the RevenueCat Firebase integration. +///

Related Articles

+/// +- (void)setFirebaseAppInstanceID:(NSString * _Nullable)firebaseAppInstanceID; +/// Subscriber attribute associated with the install media source for the user. +///

Related Articles

+/// +/// \param mediaSource Empty String or nil will delete the subscriber attribute. +/// +- (void)setMediaSource:(NSString * _Nullable)mediaSource; +/// Subscriber attribute associated with the install campaign for the user. +///

Related Articles

+/// +/// \param campaign Empty String or nil will delete the subscriber attribute. +/// +- (void)setCampaign:(NSString * _Nullable)campaign; +/// Subscriber attribute associated with the install ad group for the user +///

Related Articles

+/// +/// \param adGroup Empty String or nil will delete the subscriber attribute. +/// +- (void)setAdGroup:(NSString * _Nullable)adGroup; +/// Subscriber attribute associated with the install ad for the user +///

Related Articles

+/// +/// \param installAd Empty String or nil will delete the subscriber attribute. +/// +- (void)setAd:(NSString * _Nullable)installAd; +/// Subscriber attribute associated with the install keyword for the user +///

Related Articles

+/// +/// \param keyword Empty String or nil will delete the subscriber attribute. +/// +- (void)setKeyword:(NSString * _Nullable)keyword; +/// Subscriber attribute associated with the install ad creative for the user. +///

Related Articles

+/// +/// \param creative Empty String or nil will delete the subscriber attribute. +/// +- (void)setCreative:(NSString * _Nullable)creative; +@end + /// Enum of supported attribution networks typedef SWIFT_ENUM_NAMED(NSInteger, RCAttributionNetwork, "AttributionNetwork", open) { /// Apple’s search ads @@ -230,7 +490,21 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCAttributionNetwork, "AttributionNetwork", RCAttributionNetworkMParticle = 6, }; -@class NSNumber; +/// Specifies the behavior for a caching API. +typedef SWIFT_ENUM_NAMED(NSInteger, RCCacheFetchPolicy, "CacheFetchPolicy", open) { +/// Returns values from the cache, or throws an error if not available. + RCCacheFetchPolicyFromCacheOnly = 0, +/// Always fetch the most up-to-date data. + RCCacheFetchPolicyFetchCurrent = 1, +/// Returns the cached data if available and not stale, or fetches up-to-date data. +/// warning: +/// if the cached data is stale, and fetching up-to-date data fails (if offline, for example) +/// an error will be returned instead of the outdated cached data. + RCCacheFetchPolicyNotStaleCachedOrFetched = 2, +/// Default behavior: returns the cached data if available (even if stale), or fetches up-to-date data. + RCCacheFetchPolicyCachedOrFetched = 3, +}; + SWIFT_CLASS("_TtC10RevenueCat16NetworkOperation") @interface NetworkOperation : NSOperation @@ -249,17 +523,105 @@ SWIFT_CLASS("_TtC10RevenueCat25CacheableNetworkOperation") @interface CacheableNetworkOperation : NetworkOperation @end +@class RCConfigurationBuilder; -SWIFT_CLASS("_TtC10RevenueCat20CreateAliasOperation") -@interface CreateAliasOperation : CacheableNetworkOperation +/// Configuration can be used when configuring the Purchases instance. It is not required to be used, but +/// highly recommended. This class follows a builder pattern. +/// To configure your Purchases instance using this object, follow these steps. +/// Steps: +///
    +///
  1. +/// Call Configuration/builder(withAPIKey:) To obtain a Builder object. +///
  2. +///
  3. +/// Set this builder’s properties using the “with(” functions. +///
  4. +///
  5. +/// Call Builder/build() to obtain the Configuration object. +///
  6. +///
  7. +/// Pass the Configuration object into Purchases/configure(with:)-6oipy. +///
  8. +///
+/// \code +/// let configuration = Configuration.Builder(withAPIKey: "MyKey") +/// .with(appUserID: "SomeAppUserID") +/// .with(userDefaults: myUserDefaults) +/// .with(networkTimeout: 15) +/// .with(storeKit1Timeout: 15) +/// .with(usesStoreKit2IfAvailable: true) +/// .build() +/// Purchases.configure(with: configuration) +/// +/// \endcode +SWIFT_CLASS_NAMED("Configuration") +@interface RCConfiguration : NSObject +/// Factory method for the Configuration/Builder object that is required to create a Configuration ++ (RCConfigurationBuilder * _Nonnull)builderWithAPIKey:(NSString * _Nonnull)apiKey SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end +@class NSUserDefaults; +@class RCDangerousSettings; +@class RCPlatformInfo; - -@class RCEntitlementInfos; -@class NSString; -@class NSDate; -@class RCStoreTransaction; +/// The Builder for Configuration. +SWIFT_CLASS_NAMED("Builder") +@interface RCConfigurationBuilder : NSObject +/// Create a new builder with your API key. +/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ +/// +- (nonnull instancetype)initWithAPIKey:(NSString * _Nonnull)apiKey OBJC_DESIGNATED_INITIALIZER; +/// Update your API key. +- (RCConfigurationBuilder * _Nonnull)withApiKey:(NSString * _Nonnull)apiKey SWIFT_WARN_UNUSED_RESULT; +/// Set an appUserID. +/// note: +/// Best practice is to use a salted hash of your unique app user ids. +/// important: +/// Set this property if you have your own user identifiers that you manage. +/// \param appUserID The unique app user id for this user. This user id will allow users to share their +/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases +/// to generate this for you. +/// +- (RCConfigurationBuilder * _Nonnull)withAppUserID:(NSString * _Nonnull)appUserID SWIFT_WARN_UNUSED_RESULT; +/// Set observerMode. +/// \param observerMode Set this to true if you have your own IAP implementation and want to use only +/// RevenueCat’s backend. Default is false. +/// +- (RCConfigurationBuilder * _Nonnull)withObserverMode:(BOOL)observerMode SWIFT_WARN_UNUSED_RESULT; +/// Set userDefaults. +/// \param userDefaults Custom UserDefaults to use +/// +- (RCConfigurationBuilder * _Nonnull)withUserDefaults:(NSUserDefaults * _Nonnull)userDefaults SWIFT_WARN_UNUSED_RESULT; +/// Set usesStoreKit2IfAvailable. +/// important: +/// Support for purchases using StoreKit 2 is currently in an experimental phase. +/// We recommend setting this value to false (default) for production apps. +/// \param usesStoreKit2IfAvailable EXPERIMENTAL. opt in to using StoreKit 2 on devices that support it. +/// Purchases will be made using StoreKit 2 under the hood automatically. +/// +- (RCConfigurationBuilder * _Nonnull)withUsesStoreKit2IfAvailable:(BOOL)usesStoreKit2IfAvailable SWIFT_WARN_UNUSED_RESULT; +/// Set dangerousSettings. +/// \param dangerousSettings Only use if suggested by RevenueCat support team. +/// +- (RCConfigurationBuilder * _Nonnull)withDangerousSettings:(RCDangerousSettings * _Nonnull)dangerousSettings SWIFT_WARN_UNUSED_RESULT; +/// Set networkTimeout. +- (RCConfigurationBuilder * _Nonnull)withNetworkTimeout:(NSTimeInterval)networkTimeout SWIFT_WARN_UNUSED_RESULT; +/// Set storeKit1Timeout. +- (RCConfigurationBuilder * _Nonnull)withStoreKit1Timeout:(NSTimeInterval)storeKit1Timeout SWIFT_WARN_UNUSED_RESULT; +/// Set platformInfo. +- (RCConfigurationBuilder * _Nonnull)withPlatformInfo:(RCPlatformInfo * _Nonnull)platformInfo SWIFT_WARN_UNUSED_RESULT; +/// Generate a Configuration object given the values configured by this builder. +- (RCConfiguration * _Nonnull)build SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@class RCEntitlementInfos; +@class NSDate; +@class RCNonSubscriptionTransaction; @class NSURL; /// A container for the most recent customer info returned from Purchases. @@ -274,11 +636,9 @@ SWIFT_CLASS_NAMED("CustomerInfo") @property (nonatomic, readonly, copy) NSSet * _Nonnull allPurchasedProductIdentifiers; /// Returns the latest expiration date of all products, nil if there are none. @property (nonatomic, readonly, copy) NSDate * _Nullable latestExpirationDate; -/// Returns all product IDs of the non-subscription purchases a user has made. -@property (nonatomic, readonly, copy) NSSet * _Nonnull nonConsumablePurchases SWIFT_DEPRECATED_MSG("use nonSubscriptionTransactions"); /// Returns all the non-subscription purchases a user has made. /// The purchases are ordered by purchase date in ascending order. -@property (nonatomic, readonly, copy) NSArray * _Nonnull nonSubscriptionTransactions; +@property (nonatomic, readonly, copy) NSArray * _Nonnull nonSubscriptions; /// Returns the fetch date of this CustomerInfo. @property (nonatomic, readonly, copy) NSDate * _Nonnull requestDate; /// The date this user was first seen in RevenueCat. @@ -313,12 +673,6 @@ SWIFT_CLASS_NAMED("CustomerInfo") /// note: /// This can be nil, see -Purchases.restorePurchases(completion:) @property (nonatomic, readonly, copy) NSString * _Nullable originalApplicationVersion; -/// The underlying data for this CustomerInfo. -/// note: -/// the content and format of this data isn’t documented and is subject to change. -/// it’s only meant for debugging purposes or for getting access to future data -/// without updating the SDK. -@property (nonatomic, readonly, copy) NSDictionary * _Nonnull rawData; /// Get the expiration date for a given product identifier. You should use Entitlements though! /// \param productIdentifier Product identifier for product /// @@ -357,6 +711,24 @@ SWIFT_CLASS_NAMED("CustomerInfo") + +@interface RCCustomerInfo (SWIFT_EXTENSION(RevenueCat)) +@property (nonatomic, readonly, copy) NSDictionary * _Nonnull rawData; +@end + + +@class RCStoreTransaction; + +@interface RCCustomerInfo (SWIFT_EXTENSION(RevenueCat)) +/// Returns all product IDs of the non-subscription purchases a user has made. +@property (nonatomic, readonly, copy) NSSet * _Nonnull nonConsumablePurchases SWIFT_DEPRECATED_MSG("use nonSubscriptionTransactions"); +/// Returns all the non-subscription purchases a user has made. +/// The purchases are ordered by purchase date in ascending order. +@property (nonatomic, readonly, copy) NSArray * _Nonnull nonSubscriptionTransactions SWIFT_DEPRECATED_MSG("", "nonSubscriptions"); +@end + + + /// Only use a Dangerous Setting if suggested by RevenueCat support team. SWIFT_CLASS_NAMED("DangerousSettings") @interface RCDangerousSettings : NSObject @@ -387,10 +759,17 @@ SWIFT_CLASS_NAMED("EntitlementInfo") /// The entitlement identifier configured in the RevenueCat dashboard @property (nonatomic, readonly, copy) NSString * _Nonnull identifier; /// True if the user has access to this entitlement +/// warning: +/// this is equivalent to isActiveInAnyEnvironment +///

Related Symbols

+///
    +///
  • +/// isActiveInCurrentEnvironment +///
  • +///
@property (nonatomic, readonly) BOOL isActive; /// True if the underlying subscription is set to renew at the end of -/// the billing period (expirationDate). Will always be true if entitlement -/// is for lifetime access. +/// the billing period (expirationDate). @property (nonatomic, readonly) BOOL willRenew; /// The last period type this entitlement was in /// Either: PeriodType/normal, PeriodType/intro, PeriodType/trial @@ -423,11 +802,6 @@ SWIFT_CLASS_NAMED("EntitlementInfo") /// or shared to them by a family member. This can be useful for onboarding users who have had /// an entitlement shared with them, but might not be entirely aware of the benefits they now have. @property (nonatomic, readonly) enum RCPurchaseOwnershipType ownershipType; -/// The underlying data for this EntitlementInfo. -/// note: -/// the content and format of this data isn’t documented and is subject to change, -/// it’s only meant for debugging purposes or for getting access to future data -/// without updating the SDK. @property (nonatomic, readonly, copy) NSDictionary * _Nonnull rawData; @property (nonatomic, readonly, copy) NSString * _Nonnull description; - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; @@ -441,6 +815,29 @@ SWIFT_CLASS_NAMED("EntitlementInfo") +@interface RCEntitlementInfo (SWIFT_EXTENSION(RevenueCat)) +/// True if the user has access to this entitlement, +/// note: +/// When queried from the sandbox environment, it only returns true if active in sandbox. +/// When queried from production, this only returns true if active in production. +///

Related Symbols

+///
    +///
  • +/// isActiveInAnyEnvironment +///
  • +///
+@property (nonatomic, readonly) BOOL isActiveInCurrentEnvironment; +/// True if the user has access to this entitlement in any environment. +///

Related Symbols

+///
    +///
  • +/// isActiveInCurrentEnvironment +///
  • +///
+@property (nonatomic, readonly) BOOL isActiveInAnyEnvironment; +@end + + /// This class contains all the entitlements associated to the user. SWIFT_CLASS_NAMED("EntitlementInfos") @interface RCEntitlementInfos : NSObject @@ -448,8 +845,6 @@ SWIFT_CLASS_NAMED("EntitlementInfos") /// identifier. This dictionary can also be accessed by using an index subscript on EntitlementInfos, e.g. /// entitlementInfos["pro_entitlement_id"]. @property (nonatomic, readonly, copy) NSDictionary * _Nonnull all; -/// Dictionary of active EntitlementInfo (RCEntitlementInfo) objects keyed by entitlement identifier. -@property (nonatomic, readonly, copy) NSDictionary * _Nonnull active; - (RCEntitlementInfo * _Nullable)objectForKeyedSubscript:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT; @property (nonatomic, readonly, copy) NSString * _Nonnull description; - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; @@ -457,6 +852,42 @@ SWIFT_CLASS_NAMED("EntitlementInfos") + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end + + +@interface RCEntitlementInfos (SWIFT_EXTENSION(RevenueCat)) +/// Dictionary of active EntitlementInfo objects keyed by their identifiers. +/// warning: +/// this is equivalent to activeInAnyEnvironment +///

Related Symbols

+///
    +///
  • +/// activeInCurrentEnvironment +///
  • +///
+@property (nonatomic, readonly, copy) NSDictionary * _Nonnull active; +/// Dictionary of active EntitlementInfo objects keyed by their identifiers. +/// note: +/// When queried from the sandbox environment, it only returns entitlements active in sandbox. +/// When queried from production, this only returns entitlements active in production. +///

Related Symbols

+///
    +///
  • +/// activeInAnyEnvironment +///
  • +///
+@property (nonatomic, readonly, copy) NSDictionary * _Nonnull activeInCurrentEnvironment; +/// Dictionary of active EntitlementInfo objects keyed by their identifiers. +/// note: +/// these can be active on any environment. +///

Related Symbols

+///
    +///
  • +/// activeInCurrentEnvironment +///
  • +///
+@property (nonatomic, readonly, copy) NSDictionary * _Nonnull activeInAnyEnvironment; +@end + /// Error codes used by the Purchases SDK typedef SWIFT_ENUM_NAMED(NSInteger, RCPurchasesErrorCode, "ErrorCode", open) { RCUnknownError SWIFT_COMPILE_NAME("unknownError") = 0, @@ -486,7 +917,6 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCPurchasesErrorCode, "ErrorCode", open) { RCUnsupportedError SWIFT_COMPILE_NAME("unsupportedError") = 24, RCEmptySubscriberAttributesError SWIFT_COMPILE_NAME("emptySubscriberAttributes") = 25, RCProductDiscountMissingIdentifierError SWIFT_COMPILE_NAME("productDiscountMissingIdentifierError") = 26, - RCMissingAppUserIDForAliasCreationError SWIFT_COMPILE_NAME("missingAppUserIDForAliasCreationError") = 27, RCProductDiscountMissingSubscriptionGroupIdentifierError SWIFT_COMPILE_NAME("productDiscountMissingSubscriptionGroupIdentifierError") = 28, RCCustomerInfoError SWIFT_COMPILE_NAME("customerInfoError") = 29, RCSystemInfoError SWIFT_COMPILE_NAME("systemInfoError") = 30, @@ -494,16 +924,11 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCPurchasesErrorCode, "ErrorCode", open) { RCProductRequestTimedOut SWIFT_COMPILE_NAME("productRequestTimedOut") = 32, RCAPIEndpointBlocked SWIFT_COMPILE_NAME("apiEndpointBlockedError") = 33, RCInvalidPromotionalOfferError SWIFT_COMPILE_NAME("invalidPromotionalOfferError") = 34, + RCOfflineConnectionError SWIFT_COMPILE_NAME("offlineConnectionError") = 35, }; static NSString * _Nonnull const RCPurchasesErrorCodeDomain = @"RevenueCat.ErrorCode"; -SWIFT_CLASS("_TtC10RevenueCat12ErrorDetails") -@interface ErrorDetails : NSObject -- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; -@end - - SWIFT_CLASS("_TtC10RevenueCat15FakeASIdManager") @interface FakeASIdManager : NSObject + (FakeASIdManager * _Nonnull)sharedManager SWIFT_WARN_UNUSED_RESULT; @@ -615,6 +1040,21 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCLogLevel, "LogLevel", open) { + + +/// Information that represents a non-subscription purchase made by a user. +SWIFT_CLASS_NAMED("NonSubscriptionTransaction") +@interface RCNonSubscriptionTransaction : NSObject +/// The product identifier. +@property (nonatomic, readonly, copy) NSString * _Nonnull productIdentifier; +/// The date that App Store charged the user’s account. +@property (nonatomic, readonly, copy) NSDate * _Nonnull purchaseDate; +/// The unique identifier for the transaction. +@property (nonatomic, readonly, copy) NSString * _Nonnull transactionIdentifier; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + @class RCPackage; /// An offering is a collection of Packages, and they let you control which products @@ -743,6 +1183,14 @@ SWIFT_CLASS_NAMED("Package") @end +@class SKProduct; + +@interface RCPackage (SWIFT_EXTENSION(RevenueCat)) +/// SKProduct assigned to this package. https://developer.apple.com/documentation/storekit/skproduct +@property (nonatomic, readonly, strong) SKProduct * _Nonnull product SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(macos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead"); +@end + + @interface RCPackage (SWIFT_EXTENSION(RevenueCat)) /// \param packageType A PackageType. /// @@ -758,13 +1206,6 @@ SWIFT_CLASS_NAMED("Package") + (enum RCPackageType)packageTypeFrom:(NSString * _Nonnull)string SWIFT_WARN_UNUSED_RESULT; @end -@class SKProduct; - -@interface RCPackage (SWIFT_EXTENSION(RevenueCat)) -/// SKProduct assigned to this package. https://developer.apple.com/documentation/storekit/skproduct -@property (nonatomic, readonly, strong) SKProduct * _Nonnull product SWIFT_AVAILABILITY(macos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead"); -@end - /// Enumeration of all possible Package types, as configured on the package. ///

Related Articles

@@ -857,21 +1298,24 @@ SWIFT_CLASS("_TtC10RevenueCat15ProductsManager") @end +@class RCStoreProductDiscount; +@class RCPromotionalOfferSignedData; + /// Represents a StoreProductDiscount that has been validated and /// is ready to be used for a purchase. ///

Related Symbols

///
    ///
  • -/// Purchases/getPromotionalOffer(forProductDiscount:product:) +/// Purchases/promotionalOffer(forProductDiscount:product:) ///
  • ///
  • /// Purchases/getPromotionalOffer(forProductDiscount:product:completion:) ///
  • ///
  • -/// StoreProduct/getEligiblePromotionalOffers() +/// StoreProduct/eligiblePromotionalOffers() ///
  • ///
  • -/// Purchases/getEligiblePromotionalOffers(forProduct:) +/// Purchases/eligiblePromotionalOffers(forProduct:) ///
  • ///
  • /// Purchases/purchase(package:promotionalOffer:) @@ -888,14 +1332,39 @@ SWIFT_CLASS("_TtC10RevenueCat15ProductsManager") ///
SWIFT_CLASS_NAMED("PromotionalOffer") @interface RCPromotionalOffer : NSObject +/// The StoreProductDiscount in this offer. +@property (nonatomic, readonly, strong) RCStoreProductDiscount * _Nonnull discount; +/// The SignedData-swift.class provides information about the PromotionalOffer’s signature. +@property (nonatomic, readonly, strong) RCPromotionalOfferSignedData * _Nonnull signedData; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end +@interface RCPromotionalOffer (SWIFT_EXTENSION(RevenueCat)) +@end +@class NSUUID; -SWIFT_CLASS_NAMED("PromotionalOfferEligibility") SWIFT_AVAILABILITY(macos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(ios,obsoleted=1,message="Use PromotionalOffer instead") +/// Contains the details of a promotional offer discount that you want to apply to a payment. +SWIFT_CLASS_NAMED("SignedData") +@interface RCPromotionalOfferSignedData : NSObject +/// The subscription offer identifier. +@property (nonatomic, readonly, copy) NSString * _Nonnull identifier; +/// The key identifier of the subscription key. +@property (nonatomic, readonly, copy) NSString * _Nonnull keyIdentifier; +/// The nonce used in the signature. +@property (nonatomic, readonly, copy) NSUUID * _Nonnull nonce; +/// The cryptographic signature of the offer parameters, generated on RevenueCat’s server. +@property (nonatomic, readonly, copy) NSString * _Nonnull signature; +/// The UNIX time, in milliseconds, when the signature was generated. +@property (nonatomic, readonly) NSInteger timestamp; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +SWIFT_CLASS_NAMED("PromotionalOfferEligibility") SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(macos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(ios,obsoleted=1,message="Use PromotionalOffer instead") @interface RCPromotionalOfferEligibility : NSObject - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end @@ -983,7 +1452,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL forceUniversalAppStore;) /// Approve what kids buy with Ask to Buy /// /// -SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL simulatesAskToBuyInSandbox SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14) SWIFT_AVAILABILITY(ios,introduced=8.0);) +SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL simulatesAskToBuyInSandbox SWIFT_AVAILABILITY(maccatalyst,introduced=13.0) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14) SWIFT_AVAILABILITY(ios,introduced=8.0);) + (BOOL)simulatesAskToBuyInSandbox SWIFT_WARN_UNUSED_RESULT; + (void)setSimulatesAskToBuyInSandbox:(BOOL)newValue; /// Indicates whether the user is allowed to make payments. @@ -1041,51 +1510,33 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL verboseLogs;) /// Current version of the Purchases framework. SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull frameworkVersion;) + (NSString * _Nonnull)frameworkVersion SWIFT_WARN_UNUSED_RESULT; -/// Whether transactions should be finished automatically. true by default. -/// * - Warning: Setting this value to false will prevent the SDK from finishing transactions. -/// * In this case, you must finish transactions in your app, otherwise they will remain in the queue and -/// * will turn up every time the app is opened. -/// * More information on finishing transactions manually is available here. -@property (nonatomic) BOOL finishTransactions; -/// Automatically collect subscriber attributes associated with the device identifiers +/// Attribution object that is responsible for all explicit attribution APIs +/// as well as subscriber attributes that RevenueCat offers. +///

Example:

+/// \code +/// Purchases.shared.attribution.setEmail(“nobody@example.com”) +/// +/// \endcode

Related Articles

/// -- (void)collectDeviceIdentifiers; +@property (nonatomic, readonly, strong) RCAttribution * _Nonnull attribution; +/// Whether transactions should be finished automatically. true by default. +/// * - Warning: Setting this value to false will prevent the SDK from finishing transactions. +/// * In this case, you must finish transactions in your app, otherwise they will remain in the queue and +/// * will turn up every time the app is opened. +/// * More information on finishing transactions manually is available here. +@property (nonatomic) BOOL finishTransactions; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end -SWIFT_PROTOCOL("_TtP10RevenueCat29PurchasesOrchestratorDelegate_") -@protocol PurchasesOrchestratorDelegate -- (void)shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))defermentBlock; -@end - - -@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) -/// Called when a user initiates a promotional in-app purchase from the App Store. -/// If your app is able to handle a purchase at the current time, run the deferment block in this method. -/// If the app is not in a state to make a purchase: cache the defermentBlock, then call the defermentBlock -/// when the app is ready to make the promotional purchase. -/// If the purchase should never be made, you don’t need to ever call the defermentBlock and Purchases -/// will not proceed with promotional purchases. -/// \param product StoreProduct the product that was selected from the app store. -/// -- (void)shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))defermentBlock; -@end - - - -@class RCPlatformInfo; @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) SWIFT_CLASS_PROPERTY(@property (nonatomic, class, strong) RCPlatformInfo * _Nullable platformInfo;) @@ -1102,434 +1553,243 @@ SWIFT_CLASS_NAMED("PlatformInfo") @end - @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) -/// Enable debug logging. Useful for debugging issues with the lovely team @RevenueCat. -SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DEPRECATED_MSG("use Purchases.logLevel instead");) -+ (BOOL)debugLogsEnabled SWIFT_WARN_UNUSED_RESULT; -+ (void)setDebugLogsEnabled:(BOOL)newValue; -/// Deprecated -@property (nonatomic) BOOL allowSharingAppStoreAccount SWIFT_DEPRECATED_MSG("Configure behavior through the RevenueCat dashboard instead"); -/// Send your attribution data to RevenueCat so you can track the revenue generated by your different campaigns. -///

Related articles

-/// -/// \param data Dictionary provided by the network. -/// -/// \param network Enum for the network the data is coming from, see AttributionNetwork for supported -/// networks. -/// -+ (void)addAttributionData:(NSDictionary * _Nonnull)data fromNetwork:(enum RCAttributionNetwork)network SWIFT_DEPRECATED_MSG("Use the set functions instead"); -/// Send your attribution data to RevenueCat so you can track the revenue generated by your different campaigns. -///

Related articles

-/// -/// \param data Dictionary provided by the network. -/// -/// \param network Enum for the network the data is coming from, see AttributionNetwork for supported -/// networks. -/// -/// \param networkUserId User Id that should be sent to the network. Default is the current App User Id. -/// -+ (void)addAttributionData:(NSDictionary * _Nonnull)data fromNetwork:(enum RCAttributionNetwork)network forNetworkUserId:(NSString * _Nullable)networkUserId SWIFT_DEPRECATED_MSG("Use the set functions instead"); -@end - -@class NSUserDefaults; - -@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) -/// Configures an instance of the Purchases SDK with a specified API key. -/// The instance will be set as a singleton. -/// You should access the singleton instance using Purchases/shared -/// note: -/// Use this initializer if your app does not have an account system. -/// Purchases will generate a unique identifier for the current device and persist it to NSUserDefaults. -/// This also affects the behavior of Purchases/restorePurchases(completion:). -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// -/// returns: -/// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey; -/// Configures an instance of the Purchases SDK with a specified API key and app user ID. +/// Configures an instance of the Purchases SDK with a specified Configuration. /// The instance will be set as a singleton. /// You should access the singleton instance using Purchases/shared -/// note: -/// Best practice is to use a salted hash of your unique app user ids. -/// warning: -/// Use this initializer if you have your own user identifiers that you manage. -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// \param appUserID The unique app user id for this user. This user id will allow users to share their -/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases -/// to generate this for you. -/// -/// -/// returns: -/// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID; -/// Configures an instance of the Purchases SDK with a custom UserDefaults. -/// Use this constructor if you want to -/// sync status across a shared container, such as between a host app and an extension. The instance of the -/// Purchases SDK will be set as a singleton. -/// You should access the singleton instance using Purchases/shared -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// \param appUserID The unique app user id for this user. This user id will allow users to share their -/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases -/// to generate this for you. -/// -/// \param observerMode Set this to true if you have your own IAP implementation and want to use only -/// RevenueCat’s backend. Default is false. -/// -/// -/// returns: -/// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode; -/// Configures an instance of the Purchases SDK with a custom UserDefaults. -/// Use this constructor if you want to -/// sync status across a shared container, such as between a host app and an extension. The instance of the -/// Purchases SDK will be set as a singleton. -/// You should access the singleton instance using Purchases/shared -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// \param appUserID The unique app user id for this user. This user id will allow users to share their -/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases -/// to generate this for you. -/// -/// \param observerMode Set this to true if you have your own IAP implementation and want to use only -/// RevenueCat’s backend. Default is false. +/// important: +/// See Configuration/Builder for more information about configurable properties. +///

Example

+/// \code +/// Purchases.configure( +/// with: Configuration.Builder(withAPIKey: Constants.apiKey) +/// .with(usesStoreKit2IfAvailable: true) +/// .with(observerMode: false) +/// .with(appUserID: "") +/// .build() +/// ) /// -/// \param userDefaults Custom UserDefaults to use +/// \endcode\param configuration The Configuration object you wish to use to configure Purchases /// /// /// returns: /// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults; -/// Configures an instance of the Purchases SDK with a custom userDefaults. -/// Use this constructor if you want to sync status across a shared container, -/// such as between a host app and an extension. -/// The instance of the Purchases SDK will be set as a singleton. ++ (RCPurchases * _Nonnull)configureWithConfiguration:(RCConfiguration * _Nonnull)configuration; +/// Configures an instance of the Purchases SDK with a specified Configuration/Builder. +/// The instance will be set as a singleton. /// You should access the singleton instance using Purchases/shared /// important: -/// Support for purchases using StoreKit 2 is currently in an experimental phase. -/// We recommend setting this value to false (default) for production apps. -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// \param appUserID The unique app user id for this user. This user id will allow users to share their -/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases -/// to generate this for you. -/// -/// \param observerMode Set this to true if you have your own IAP implementation and want to use only -/// RevenueCat’s backend. Default is false. -/// -/// \param userDefaults Custom UserDefaults to use +/// See Configuration/Builder for more information about configurable properties. +///

Example

+/// \code +/// Purchases.configure( +/// with: .init(withAPIKey: Constants.apiKey) +/// .with(usesStoreKit2IfAvailable: true) +/// .with(observerMode: false) +/// .with(appUserID: "") +/// ) /// -/// \param useStoreKit2IfAvailable EXPERIMENTAL. opt in to using StoreKit 2 on devices that support it. -/// Purchases will be made using StoreKit 2 under the hood automatically. +/// \endcode\param builder The Configuration/Builder object you wish to use to configure Purchases /// /// /// returns: /// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults useStoreKit2IfAvailable:(BOOL)useStoreKit2IfAvailable; -/// Configures an instance of the Purchases SDK with a custom userDefaults. -/// Use this constructor if you want to sync status across a shared container, -/// such as between a host app and an extension. -/// The instance of the Purchases SDK will be set as a singleton. ++ (RCPurchases * _Nonnull)configureWithConfigurationBuilder:(RCConfigurationBuilder * _Nonnull)builder; +/// Configures an instance of the Purchases SDK with a specified API key. +/// The instance will be set as a singleton. /// You should access the singleton instance using Purchases/shared -/// important: -/// Support for purchases using StoreKit 2 is currently in an experimental phase. -/// We recommend setting this value to false (default) for production apps. +/// note: +/// Use this initializer if your app does not have an account system. +/// Purchases will generate a unique identifier for the current device and persist it to NSUserDefaults. +/// This also affects the behavior of Purchases/restorePurchases(completion:). /// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ /// -/// \param appUserID The unique app user id for this user. This user id will allow users to share their -/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases -/// to generate this for you. -/// -/// \param observerMode Set this to true if you have your own IAP implementation and want to use only -/// RevenueCat’s backend. Default is false. -/// -/// \param userDefaults Custom UserDefaults to use -/// -/// \param dangerousSettings Only use if suggested by RevenueCat support team. -/// -/// \param useStoreKit2IfAvailable EXPERIMENTAL. opt in to using StoreKit 2 on devices that support it. -/// Purchases will be made using StoreKit 2 under the hood automatically. -/// /// /// returns: /// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults useStoreKit2IfAvailable:(BOOL)useStoreKit2IfAvailable dangerousSettings:(RCDangerousSettings * _Nullable)dangerousSettings; ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey; @end -@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) -///
    -///
  • -/// The appUserID used by Purchases. -///
  • -///
  • -/// If not passed on initialization this will be generated and cached by Purchases. -///
  • -///
-@property (nonatomic, readonly, copy) NSString * _Nonnull appUserID; -/// Returns true if the appUserID has been generated by RevenueCat, false otherwise. -@property (nonatomic, readonly) BOOL isAnonymous; -/// This function will log in the current user with an appUserID. -/// The completion block will be called with the latest CustomerInfo and a Bool specifying -/// whether the user was created for the first time in the RevenueCat backend. -/// RevenueCat provides a source of truth for a subscriber’s status across different platforms. -/// To do this, each subscriber has an App User ID that uniquely identifies them within your application. -/// User identity is one of the most important components of many mobile applications, -/// and it’s extra important to make sure the subscription status RevenueCat is -/// tracking gets associated with the correct user. -/// The Purchases SDK allows you to specify your own user identifiers or use anonymous identifiers -/// generated by RevenueCat. Some apps will use a combination -/// of their own identifiers and RevenueCat anonymous Ids - that’s okay! -///

Related Articles

-///
    -///
  • -/// Identifying Users -///
  • -///
  • -/// logOut(completion:) -///
  • -///
  • -/// isAnonymous -///
  • -///
  • -/// Purchases/appUserID -///
  • -///
-/// \param appUserID The appUserID that should be linked to the current user. -/// -- (void)logIn:(NSString * _Nonnull)appUserID completion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, BOOL, NSError * _Nullable))completion; -/// Logs out the Purchases client, clearing the saved appUserID. -/// This will generate a random user id and save it in the cache. -/// If this method is called and the current user is anonymous, it will return an error. -///

Related Articles

-///
    -///
  • -/// Identifying Users -///
  • -///
  • -/// logIn(_:completion:) -///
  • -///
  • -/// isAnonymous -///
  • -///
  • -/// Purchases/appUserID -///
  • -///
-- (void)logOutWithCompletion:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; -/// Fetch the configured Offerings for this user. -/// \code -/// *``Offerings`` allows you to configure your in-app products +SWIFT_PROTOCOL("_TtP10RevenueCat29PurchasesOrchestratorDelegate_") +@protocol PurchasesOrchestratorDelegate +- (void)readyForPromotedProduct:(RCStoreProduct * _Nonnull)product purchase:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))startPurchase; +@property (nonatomic, readonly) BOOL shouldShowPriceConsent SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(macos,unavailable) SWIFT_AVAILABILITY(maccatalyst,introduced=13.4) SWIFT_AVAILABILITY(ios,introduced=13.4); +@end + + +@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) +/// Called when a user initiates a promoted in-app purchase from the App Store. +/// If your app is able to handle a purchase at the current time, run the startPurchase block. +/// If the app is not in a state to make a purchase: cache the startPurchase block, then call it +/// when the app is ready to make the promoted purchase. +/// If the purchase should never be made, you don’t need to ever call the startPurchase block +/// and Purchases will not proceed with promoted purchases. +/// \param product StoreProduct the product that was selected from the app store. /// -/// \endcodevia RevenueCat and greatly simplifies management. -/// Offerings will be fetched and cached on instantiation so that, by the time they are needed, -/// your prices are loaded for your purchase flow. Time is money. -///

Related Articles

-/// -/// \param completion A completion block called when offerings are available. -/// Called immediately if offerings are cached. Offerings will be nil if an error occurred. +/// \param startPurchase Method that begins the purchase flow for the promoted purchase. +/// If the app is ready to start the purchase flow when this delegate method is called, then this method +/// should be called right away. Otherwise, the method should be stored as a property in memory, and then called +/// once the app is ready to start the purchase flow. +/// When the purchase completes, the result will be part of the callback parameters. /// -- (void)getOfferingsWithCompletion:(void (^ _Nonnull)(RCOfferings * _Nullable, NSError * _Nullable))completion; +- (void)readyForPromotedProduct:(RCStoreProduct * _Nonnull)product purchase:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))startPurchase; +@property (nonatomic, readonly) BOOL shouldShowPriceConsent SWIFT_AVAILABILITY(maccatalyst,introduced=13.4) SWIFT_AVAILABILITY(ios,introduced=13.4); @end -@class NSData; - @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) -/// Subscriber attributes are useful for storing additional, structured information on a user. -/// Since attributes are writable using a public key they should not be used for -/// managing secure or sensitive information such as subscription status, coins, etc. -/// Key names starting with “$” are reserved names used by RevenueCat. For a full list of key -/// restrictions refer to our guide -/// \param attributes Map of attributes by key. Set the value as an empty string to delete an attribute. -/// -- (void)setAttributes:(NSDictionary * _Nonnull)attributes; -/// Subscriber attribute associated with the email address for the user. -///

Related Articles

-/// -/// \param email Empty String or nil will delete the subscriber attribute. -/// -- (void)setEmail:(NSString * _Nullable)email; -/// Subscriber attribute associated with the phone number for the user. -///

Related Articles

-/// -/// \param phoneNumber Empty String or nil will delete the subscriber attribute. -/// -- (void)setPhoneNumber:(NSString * _Nullable)phoneNumber; -/// Subscriber attribute associated with the display name for the user. -///

Related Articles

+/// Enable debug logging. Useful for debugging issues with the lovely team @RevenueCat. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DEPRECATED_MSG("use Purchases.logLevel instead");) ++ (BOOL)debugLogsEnabled SWIFT_WARN_UNUSED_RESULT; ++ (void)setDebugLogsEnabled:(BOOL)newValue; +/// Deprecated +@property (nonatomic) BOOL allowSharingAppStoreAccount SWIFT_DEPRECATED_MSG("Configure behavior through the RevenueCat dashboard instead"); +/// Send your attribution data to RevenueCat so you can track the revenue generated by your different campaigns. +///

Related articles

/// -/// \param displayName Empty String or nil will delete the subscriber attribute. +/// \param data Dictionary provided by the network. /// -- (void)setDisplayName:(NSString * _Nullable)displayName; -/// Subscriber attribute associated with the push token for the user. -///

Related Articles

-/// -/// \param pushToken nil will delete the subscriber attribute. +/// \param network Enum for the network the data is coming from, see AttributionNetwork for supported +/// networks. /// -- (void)setPushToken:(NSData * _Nullable)pushToken; -/// Subscriber attribute associated with the Adjust Id for the user. -/// Required for the RevenueCat Adjust integration. -///

Related Articles

-/// -- (void)setAdjustID:(NSString * _Nullable)adjustID; -/// Subscriber attribute associated with the Appsflyer Id for the user. -/// Required for the RevenueCat Appsflyer integration. -///

Related Articles

-/// -- (void)setAppsflyerID:(NSString * _Nullable)appsflyerID; -/// Subscriber attribute associated with the Facebook SDK Anonymous Id for the user. -/// Recommended for the RevenueCat Facebook integration. -///

Related Articles

++ (void)addAttributionData:(NSDictionary * _Nonnull)data fromNetwork:(enum RCAttributionNetwork)network SWIFT_DEPRECATED_MSG("Use the set functions instead"); +/// Send your attribution data to RevenueCat so you can track the revenue generated by your different campaigns. +///

Related articles

/// -- (void)setFBAnonymousID:(NSString * _Nullable)fbAnonymousID; -/// Subscriber attribute associated with the mParticle Id for the user. -/// Recommended for the RevenueCat mParticle integration. -///

Related Articles

+/// \param data Dictionary provided by the network. +/// +/// \param network Enum for the network the data is coming from, see AttributionNetwork for supported +/// networks. +/// +/// \param networkUserId User Id that should be sent to the network. Default is the current App User Id. +/// ++ (void)addAttributionData:(NSDictionary * _Nonnull)data fromNetwork:(enum RCAttributionNetwork)network forNetworkUserId:(NSString * _Nullable)networkUserId SWIFT_DEPRECATED_MSG("Use the set functions instead"); +@end + + + +@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID SWIFT_AVAILABILITY(maccatalyst,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(macos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(watchos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(tvos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(ios,deprecated=1,message="'configure' has been renamed to 'configure(with:)'"); ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode SWIFT_AVAILABILITY(maccatalyst,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(macos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(watchos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(tvos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(ios,deprecated=1,message="'configure' has been renamed to 'configure(with:)'"); ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults SWIFT_AVAILABILITY(maccatalyst,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(macos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(watchos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(tvos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(ios,deprecated=1,message="'configure' has been renamed to 'configure(with:)'"); ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults useStoreKit2IfAvailable:(BOOL)useStoreKit2IfAvailable SWIFT_AVAILABILITY(maccatalyst,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(macos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(watchos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(tvos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(ios,deprecated=1,message="'configure' has been renamed to 'configure(with:)'"); ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults useStoreKit2IfAvailable:(BOOL)useStoreKit2IfAvailable dangerousSettings:(RCDangerousSettings * _Nullable)dangerousSettings SWIFT_AVAILABILITY(maccatalyst,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(macos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(watchos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(tvos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(ios,deprecated=1,message="'configure' has been renamed to 'configure(with:)'"); +@end + + +@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) ///
    ///
  • -/// mParticle RevenueCat Integration -/// *- Parameter mparticleID: Empty String or nil will delete the subscriber attribute. +/// The appUserID used by Purchases. ///
  • -///
-- (void)setMparticleID:(NSString * _Nullable)mparticleID; -/// Subscriber attribute associated with the OneSignal Player ID for the user. -/// Required for the RevenueCat OneSignal integration. -///

Related Articles

-///
    ///
  • -/// OneSignal RevenueCat Integration -/// *- Parameter onesignalID: Empty String or nil will delete the subscriber attribute. +/// If not passed on initialization this will be generated and cached by Purchases. ///
  • ///
-- (void)setOnesignalID:(NSString * _Nullable)onesignalID; -/// Subscriber attribute associated with the Airship Channel ID for the user. -/// Required for the RevenueCat Airship integration. +@property (nonatomic, readonly, copy) NSString * _Nonnull appUserID; +/// Returns true if the appUserID has been generated by RevenueCat, false otherwise. +@property (nonatomic, readonly) BOOL isAnonymous; +/// This function will log in the current user with an appUserID. +/// The completion block will be called with the latest CustomerInfo and a Bool specifying +/// whether the user was created for the first time in the RevenueCat backend. +/// RevenueCat provides a source of truth for a subscriber’s status across different platforms. +/// To do this, each subscriber has an App User ID that uniquely identifies them within your application. +/// User identity is one of the most important components of many mobile applications, +/// and it’s extra important to make sure the subscription status RevenueCat is +/// tracking gets associated with the correct user. +/// The Purchases SDK allows you to specify your own user identifiers or use anonymous identifiers +/// generated by RevenueCat. Some apps will use a combination +/// of their own identifiers and RevenueCat anonymous Ids - that’s okay! ///

Related Articles

/// -- (void)setAirshipChannelID:(NSString * _Nullable)airshipChannelID; -/// Subscriber attribute associated with the CleverTap ID for the user. -/// Required for the RevenueCat CleverTap integration. -///

Related Articles

-///
    ///
  • -/// CleverTap RevenueCat Integration -/// *- Parameter cleverTapID: Empty String or nil will delete the subscriber attribute. +/// logOut(completion:) ///
  • -///
-- (void)setCleverTapID:(NSString * _Nullable)cleverTapID; -/// Subscriber attribute associated with the install media source for the user. -///

Related Articles

-/// -/// \param mediaSource Empty String or nil will delete the subscriber attribute. -/// -- (void)setMediaSource:(NSString * _Nullable)mediaSource; -/// Subscriber attribute associated with the install campaign for the user. -///

Related Articles

-/// -/// \param campaign Empty String or nil will delete the subscriber attribute. +/// \param appUserID The appUserID that should be linked to the current user. /// -- (void)setCampaign:(NSString * _Nullable)campaign; -/// Subscriber attribute associated with the install ad group for the user +- (void)logIn:(NSString * _Nonnull)appUserID completion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, BOOL, NSError * _Nullable))completion; +/// Logs out the Purchases client, clearing the saved appUserID. +/// This will generate a random user id and save it in the cache. +/// If this method is called and the current user is anonymous, it will return an error. ///

Related Articles

/// -/// \param adGroup Empty String or nil will delete the subscriber attribute. -/// -- (void)setAdGroup:(NSString * _Nullable)adGroup; -/// Subscriber attribute associated with the install ad for the user -///

Related Articles

-/// -/// \param installAd Empty String or nil will delete the subscriber attribute. -/// -- (void)setAd:(NSString * _Nullable)installAd; -/// Subscriber attribute associated with the install keyword for the user -///

Related Articles

-/// -/// \param keyword Empty String or nil will delete the subscriber attribute. -/// -- (void)setKeyword:(NSString * _Nullable)keyword; -/// Subscriber attribute associated with the install ad creative for the user. +- (void)logOutWithCompletion:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; +/// Fetch the configured Offerings for this user. +/// Offerings allows you to configure your in-app products +/// via RevenueCat and greatly simplifies management. +/// Offerings will be fetched and cached on instantiation so that, by the time they are needed, +/// your prices are loaded for your purchase flow. Time is money. ///

Related Articles

/// -/// \param creative Empty String or nil will delete the subscriber attribute. +/// \param completion A completion block called when offerings are available. +/// Called immediately if offerings are cached. Offerings will be nil if an error occurred. /// -- (void)setCreative:(NSString * _Nullable)creative; +- (void)getOfferingsWithCompletion:(void (^ _Nonnull)(RCOfferings * _Nullable, NSError * _Nullable))completion; +@end + + + + +@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) +- (void)collectDeviceIdentifiers SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'collectDeviceIdentifiers' has been renamed to 'attribution.collectDeviceIdentifiers()'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'collectDeviceIdentifiers' has been renamed to 'attribution.collectDeviceIdentifiers()'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'collectDeviceIdentifiers' has been renamed to 'attribution.collectDeviceIdentifiers()'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'collectDeviceIdentifiers' has been renamed to 'attribution.collectDeviceIdentifiers()'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'collectDeviceIdentifiers' has been renamed to 'attribution.collectDeviceIdentifiers()'"); +- (void)setAttributes:(NSDictionary * _Nonnull)attributes SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAttributes' has been renamed to 'attribution.setAttributes(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAttributes' has been renamed to 'attribution.setAttributes(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAttributes' has been renamed to 'attribution.setAttributes(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAttributes' has been renamed to 'attribution.setAttributes(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAttributes' has been renamed to 'attribution.setAttributes(_:)'"); +- (void)setEmail:(NSString * _Nullable)email SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setEmail' has been renamed to 'attribution.setEmail(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setEmail' has been renamed to 'attribution.setEmail(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setEmail' has been renamed to 'attribution.setEmail(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setEmail' has been renamed to 'attribution.setEmail(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setEmail' has been renamed to 'attribution.setEmail(_:)'"); +- (void)setPhoneNumber:(NSString * _Nullable)phoneNumber SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setPhoneNumber' has been renamed to 'attribution.setPhoneNumber(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setPhoneNumber' has been renamed to 'attribution.setPhoneNumber(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setPhoneNumber' has been renamed to 'attribution.setPhoneNumber(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setPhoneNumber' has been renamed to 'attribution.setPhoneNumber(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setPhoneNumber' has been renamed to 'attribution.setPhoneNumber(_:)'"); +- (void)setDisplayName:(NSString * _Nullable)displayName SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setDisplayName' has been renamed to 'attribution.setDisplayName(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setDisplayName' has been renamed to 'attribution.setDisplayName(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setDisplayName' has been renamed to 'attribution.setDisplayName(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setDisplayName' has been renamed to 'attribution.setDisplayName(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setDisplayName' has been renamed to 'attribution.setDisplayName(_:)'"); +- (void)setPushToken:(NSData * _Nullable)pushToken SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setPushToken' has been renamed to 'attribution.setPushToken(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setPushToken' has been renamed to 'attribution.setPushToken(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setPushToken' has been renamed to 'attribution.setPushToken(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setPushToken' has been renamed to 'attribution.setPushToken(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setPushToken' has been renamed to 'attribution.setPushToken(_:)'"); +- (void)setPushTokenString:(NSString * _Nullable)pushToken SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setPushTokenString' has been renamed to 'attribution.setPushTokenString(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setPushTokenString' has been renamed to 'attribution.setPushTokenString(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setPushTokenString' has been renamed to 'attribution.setPushTokenString(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setPushTokenString' has been renamed to 'attribution.setPushTokenString(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setPushTokenString' has been renamed to 'attribution.setPushTokenString(_:)'"); +- (void)setAdjustID:(NSString * _Nullable)adjustID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAdjustID' has been renamed to 'attribution.setAdjustID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAdjustID' has been renamed to 'attribution.setAdjustID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAdjustID' has been renamed to 'attribution.setAdjustID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAdjustID' has been renamed to 'attribution.setAdjustID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAdjustID' has been renamed to 'attribution.setAdjustID(_:)'"); +- (void)setAppsflyerID:(NSString * _Nullable)appsflyerID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAppsflyerID' has been renamed to 'attribution.setAppsflyerID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAppsflyerID' has been renamed to 'attribution.setAppsflyerID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAppsflyerID' has been renamed to 'attribution.setAppsflyerID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAppsflyerID' has been renamed to 'attribution.setAppsflyerID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAppsflyerID' has been renamed to 'attribution.setAppsflyerID(_:)'"); +- (void)setFBAnonymousID:(NSString * _Nullable)fbAnonymousID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setFBAnonymousID' has been renamed to 'attribution.setFBAnonymousID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setFBAnonymousID' has been renamed to 'attribution.setFBAnonymousID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setFBAnonymousID' has been renamed to 'attribution.setFBAnonymousID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setFBAnonymousID' has been renamed to 'attribution.setFBAnonymousID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setFBAnonymousID' has been renamed to 'attribution.setFBAnonymousID(_:)'"); +- (void)setMparticleID:(NSString * _Nullable)mparticleID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setMparticleID' has been renamed to 'attribution.setMparticleID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setMparticleID' has been renamed to 'attribution.setMparticleID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setMparticleID' has been renamed to 'attribution.setMparticleID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setMparticleID' has been renamed to 'attribution.setMparticleID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setMparticleID' has been renamed to 'attribution.setMparticleID(_:)'"); +- (void)setOnesignalID:(NSString * _Nullable)onesignalID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setOnesignalID' has been renamed to 'attribution.setOnesignalID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setOnesignalID' has been renamed to 'attribution.setOnesignalID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setOnesignalID' has been renamed to 'attribution.setOnesignalID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setOnesignalID' has been renamed to 'attribution.setOnesignalID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setOnesignalID' has been renamed to 'attribution.setOnesignalID(_:)'"); +- (void)setAirshipChannelID:(NSString * _Nullable)airshipChannelID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAirshipChannelID' has been renamed to 'attribution.setAirshipChannelID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAirshipChannelID' has been renamed to 'attribution.setAirshipChannelID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAirshipChannelID' has been renamed to 'attribution.setAirshipChannelID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAirshipChannelID' has been renamed to 'attribution.setAirshipChannelID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAirshipChannelID' has been renamed to 'attribution.setAirshipChannelID(_:)'"); +- (void)setCleverTapID:(NSString * _Nullable)cleverTapID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setCleverTapID' has been renamed to 'attribution.setCleverTapID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setCleverTapID' has been renamed to 'attribution.setCleverTapID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setCleverTapID' has been renamed to 'attribution.setCleverTapID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setCleverTapID' has been renamed to 'attribution.setCleverTapID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setCleverTapID' has been renamed to 'attribution.setCleverTapID(_:)'"); +- (void)setMixpanelDistinctID:(NSString * _Nullable)mixpanelDistinctID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setMixpanelDistinctID' has been renamed to 'attribution.setMixpanelDistinctID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setMixpanelDistinctID' has been renamed to 'attribution.setMixpanelDistinctID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setMixpanelDistinctID' has been renamed to 'attribution.setMixpanelDistinctID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setMixpanelDistinctID' has been renamed to 'attribution.setMixpanelDistinctID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setMixpanelDistinctID' has been renamed to 'attribution.setMixpanelDistinctID(_:)'"); +- (void)setFirebaseAppInstanceID:(NSString * _Nullable)firebaseAppInstanceID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setFirebaseAppInstanceID' has been renamed to 'attribution.setFirebaseAppInstanceID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setFirebaseAppInstanceID' has been renamed to 'attribution.setFirebaseAppInstanceID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setFirebaseAppInstanceID' has been renamed to 'attribution.setFirebaseAppInstanceID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setFirebaseAppInstanceID' has been renamed to 'attribution.setFirebaseAppInstanceID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setFirebaseAppInstanceID' has been renamed to 'attribution.setFirebaseAppInstanceID(_:)'"); +- (void)setMediaSource:(NSString * _Nullable)mediaSource SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setMediaSource' has been renamed to 'attribution.setMediaSource(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setMediaSource' has been renamed to 'attribution.setMediaSource(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setMediaSource' has been renamed to 'attribution.setMediaSource(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setMediaSource' has been renamed to 'attribution.setMediaSource(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setMediaSource' has been renamed to 'attribution.setMediaSource(_:)'"); +- (void)setCampaign:(NSString * _Nullable)campaign SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setCampaign' has been renamed to 'attribution.setCampaign(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setCampaign' has been renamed to 'attribution.setCampaign(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setCampaign' has been renamed to 'attribution.setCampaign(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setCampaign' has been renamed to 'attribution.setCampaign(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setCampaign' has been renamed to 'attribution.setCampaign(_:)'"); +- (void)setAdGroup:(NSString * _Nullable)adGroup SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAdGroup' has been renamed to 'attribution.setAdGroup(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAdGroup' has been renamed to 'attribution.setAdGroup(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAdGroup' has been renamed to 'attribution.setAdGroup(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAdGroup' has been renamed to 'attribution.setAdGroup(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAdGroup' has been renamed to 'attribution.setAdGroup(_:)'"); +- (void)setAd:(NSString * _Nullable)installAd SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAd' has been renamed to 'attribution.setAd(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAd' has been renamed to 'attribution.setAd(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAd' has been renamed to 'attribution.setAd(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAd' has been renamed to 'attribution.setAd(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAd' has been renamed to 'attribution.setAd(_:)'"); +- (void)setKeyword:(NSString * _Nullable)keyword SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setKeyword' has been renamed to 'attribution.setKeyword(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setKeyword' has been renamed to 'attribution.setKeyword(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setKeyword' has been renamed to 'attribution.setKeyword(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setKeyword' has been renamed to 'attribution.setKeyword(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setKeyword' has been renamed to 'attribution.setKeyword(_:)'"); +- (void)setCreative:(NSString * _Nullable)creative SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setCreative' has been renamed to 'attribution.setCreative(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setCreative' has been renamed to 'attribution.setCreative(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setCreative' has been renamed to 'attribution.setCreative(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setCreative' has been renamed to 'attribution.setCreative(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setCreative' has been renamed to 'attribution.setCreative(_:)'"); @end @class SKPaymentDiscount; @@ -1616,7 +1876,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE /// If the purchase was not successful, there will be an NSError. /// If the user cancelled, userCancelled will be YES. /// -- (void)purchasePackage:(RCPackage * _Nonnull)package withDiscount:(SKPaymentDiscount * _Nonnull)discount completionBlock:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(macos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(watchos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(tvos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(ios,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'"); +- (void)purchasePackage:(RCPackage * _Nonnull)package withDiscount:(SKPaymentDiscount * _Nonnull)discount completionBlock:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(maccatalyst,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(macos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(watchos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(tvos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(ios,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'"); /// Use this function if you are not using the Offerings system to purchase an SKProduct. /// If you are using the Offerings system, use -[RCPurchases purchasePackage:withCompletionBlock] instead. /// Call this method when a user has decided to purchase a product. Only call this in direct response to user input. @@ -1646,8 +1906,8 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE /// If the purchase was not successful, there will be an NSError. /// If the user cancelled, userCancelled will be YES. /// -- (void)purchaseProduct:(SKProduct * _Nonnull)product withDiscount:(SKPaymentDiscount * _Nonnull)discount completionBlock:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(macos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(watchos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(tvos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(ios,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'"); -- (void)invalidatePurchaserInfoCache SWIFT_AVAILABILITY(macos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'"); +- (void)purchaseProduct:(SKProduct * _Nonnull)product withDiscount:(SKPaymentDiscount * _Nonnull)discount completionBlock:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(maccatalyst,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(macos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(watchos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(tvos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(ios,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'"); +- (void)invalidatePurchaserInfoCache SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(macos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'"); /// Computes whether or not a user is eligible for the introductory pricing period of a given product. /// You should use this method to determine whether or not you show the user the normal product price or /// the introductory price. This also applies to trials (trials are considered a type of introductory pricing). @@ -1665,7 +1925,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE /// /// \param completion A block that receives a dictionary of product_id -> IntroEligibility. /// -- (void)checkTrialOrIntroductoryPriceEligibility:(NSArray * _Nonnull)productIdentifiers completion:(void (^ _Nonnull)(NSDictionary * _Nonnull))completion SWIFT_AVAILABILITY(macos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'"); +- (void)checkTrialOrIntroductoryPriceEligibility:(NSArray * _Nonnull)productIdentifiers completion:(void (^ _Nonnull)(NSDictionary * _Nonnull))completion SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(macos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'"); /// Use this function to retrieve the SKPaymentDiscount for a given SKProduct. /// \param discount The SKProductDiscount to apply to the product. /// @@ -1674,7 +1934,8 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE /// \param completion A completion block that is called when the SKPaymentDiscount is returned. /// If it was not successful, there will be an Error. /// -- (void)paymentDiscountForProductDiscount:(SKProductDiscount * _Nonnull)discount product:(SKProduct * _Nonnull)product completion:(void (^ _Nonnull)(SKPaymentDiscount * _Nullable, NSError * _Nullable))completion SWIFT_AVAILABILITY(macos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(watchos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(tvos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(ios,unavailable,message="Check eligibility for a discount using getPromotionalOffer:"); +- (void)paymentDiscountForProductDiscount:(SKProductDiscount * _Nonnull)discount product:(SKProduct * _Nonnull)product completion:(void (^ _Nonnull)(SKPaymentDiscount * _Nullable, NSError * _Nullable))completion SWIFT_AVAILABILITY(maccatalyst,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(macos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(watchos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(tvos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(ios,unavailable,message="Check eligibility for a discount using getPromotionalOffer:"); +- (void)shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))defermentBlock SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") SWIFT_AVAILABILITY(macos,obsoleted=1,message="This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") SWIFT_AVAILABILITY(ios,obsoleted=1,message="This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`"); /// This function will alias two appUserIDs together. /// \param alias The new appUserID that should be linked to the currently identified appUserID /// @@ -1695,7 +1956,6 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE - (void)resetWithCompletionBlock:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion SWIFT_AVAILABILITY(macos,obsoleted=1,message="'reset' has been renamed to 'logOutWithCompletion:'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'reset' has been renamed to 'logOutWithCompletion:'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'reset' has been renamed to 'logOutWithCompletion:'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'reset' has been renamed to 'logOutWithCompletion:'"); @end -@class RCStoreProductDiscount; enum RCRefundRequestStatus : NSInteger; @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) @@ -1704,6 +1964,12 @@ enum RCRefundRequestStatus : NSInteger; /// Called immediately if CustomerInfo is cached. Customer info can be nil if an error occurred. /// - (void)getCustomerInfoWithCompletion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; +/// Get latest available customer info. +/// \param fetchPolicy The behavior for what to do regarding caching. +/// +/// \param completion A completion block called when customer info is available and not stale. +/// +- (void)getCustomerInfoWithFetchPolicy:(enum RCCacheFetchPolicy)fetchPolicy completion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; /// Fetches the StoreProducts for your IAPs for given productIdentifiers. /// Use this method if you aren’t using getOfferings(completion:). /// You should use getOfferings(completion:) though. @@ -1777,10 +2043,10 @@ enum RCRefundRequestStatus : NSInteger; /// StoreProduct/discounts /// ///
  • -/// StoreProduct/getEligiblePromotionalOffers() +/// StoreProduct/eligiblePromotionalOffers() ///
  • ///
  • -/// getPromotionalOffer(forProductDiscount:product:) +/// promotionalOffer(forProductDiscount:product:) ///
  • /// /// \param product The StoreProduct the user intends to purchase. @@ -1789,7 +2055,7 @@ enum RCRefundRequestStatus : NSInteger; /// /// \param completion A completion block that is called when the purchase completes. /// -- (void)purchaseProduct:(RCStoreProduct * _Nonnull)product withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); +- (void)purchaseProduct:(RCStoreProduct * _Nonnull)product withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(maccatalyst,introduced=13.0) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); /// Purchase the passed Package. /// Call this method when a user has decided to purchase a product with an applied discount. Only call this in /// direct response to user input. From here Purchases will handle the purchase with StoreKit and call the @@ -1806,7 +2072,7 @@ enum RCRefundRequestStatus : NSInteger; /// /// \param completion A completion block that is called when the purchase completes. /// -- (void)purchasePackage:(RCPackage * _Nonnull)package withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); +- (void)purchasePackage:(RCPackage * _Nonnull)package withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(maccatalyst,introduced=13.0) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); /// This method will post all purchases associated with the current App Store account to RevenueCat and /// become associated with the current appUserID. /// If the receipt is being used by an existing user, the current appUserID will be aliased together with @@ -1878,6 +2144,25 @@ enum RCRefundRequestStatus : NSInteger; /// \param completion A block that receives an IntroEligibilityStatus. /// - (void)checkTrialOrIntroDiscountEligibilityForProduct:(RCStoreProduct * _Nonnull)product completion:(void (^ _Nonnull)(enum RCIntroEligibilityStatus))completion; +/// Displays price consent sheet if needed. You only need to call this manually if you implement +/// PurchasesDelegate/shouldShowPriceConsent and return false at some point. +/// You may want to delay showing the sheet if it would interrupt your user’s interaction in your app. You can do +/// this by implementing PurchasesDelegate/shouldShowPriceConsent. +/// In most cases, you don’t typically implement PurchasesDelegate/shouldShowPriceConsent, therefore, +/// you won’t need to call this. +///

    Related Symbols

    +///
      +///
    • +/// ``SKPaymentQueue/showPriceConsentIfNeeded()` +///
    • +///
    +///

    Related Articles

    +/// +- (void)showPriceConsentIfNeeded SWIFT_AVAILABILITY(maccatalyst,introduced=13.4) SWIFT_AVAILABILITY(ios,introduced=13.4); /// Invalidates the cache for customer information. /// Most apps will not need to use this method; invalidating the cache can leave your app in an invalid state. /// Refer to @@ -1887,7 +2172,7 @@ enum RCRefundRequestStatus : NSInteger; /// promotional subscription is granted through the RevenueCat dashboard. - (void)invalidateCustomerInfoCache; /// Displays a sheet that enables users to redeem subscription offer codes that you generated in App Store Connect. -- (void)presentCodeRedemptionSheet SWIFT_AVAILABILITY(macos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(ios,introduced=14.0); +- (void)presentCodeRedemptionSheet SWIFT_AVAILABILITY(maccatalyst,unavailable) SWIFT_AVAILABILITY(macos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(ios,introduced=14.0); /// Use this method to fetch PromotionalOffer /// to use in purchase(package:promotionalOffer:) or purchase(product:promotionalOffer:). /// iOS Promotional Offers. @@ -1901,7 +2186,7 @@ enum RCRefundRequestStatus : NSInteger; /// \param completion A completion block that is called when the PromotionalOffer is returned. /// If it was not successful, there will be an Error. /// -- (void)getPromotionalOfferForProductDiscount:(RCStoreProductDiscount * _Nonnull)discount withProduct:(RCStoreProduct * _Nonnull)product withCompletion:(void (^ _Nonnull)(RCPromotionalOffer * _Nullable, NSError * _Nullable))completion SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); +- (void)getPromotionalOfferForProductDiscount:(RCStoreProductDiscount * _Nonnull)discount withProduct:(RCStoreProduct * _Nonnull)product withCompletion:(void (^ _Nonnull)(RCPromotionalOffer * _Nullable, NSError * _Nullable))completion SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(maccatalyst,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); /// Use this function to open the manage subscriptions page. /// If the manage subscriptions page can’t be opened, the CustomerInfo/managementURL in /// the CustomerInfo will be opened. If CustomerInfo/managementURL is not available, @@ -1910,8 +2195,10 @@ enum RCRefundRequestStatus : NSInteger; /// This is because of an undocumented change in StoreKit’s behavior between iOS 15.0 and 15.2, /// where 15.0 would return when the modal was closed, /// and 15.2 returns when the modal is opened. -/// \param completion A completion block that is called when the modal is closed. -/// If it was not successful, there will be an Error. +/// \param completion A completion block that will be called when the modal is opened, +/// not when it’s actually closed. This is because of an undocumented change in StoreKit’s behavior +/// between iOS 15.0 and 15.2, where 15.0 would return when the modal was closed, and 15.2 returns +/// when the modal is opened. /// - (void)showManageSubscriptionsWithCompletion:(void (^ _Nonnull)(NSError * _Nullable))completion SWIFT_AVAILABILITY(macos,introduced=10.15) SWIFT_AVAILABILITY(ios,introduced=13.0) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(watchos,unavailable); /// Presents a refund request sheet in the current window scene for @@ -1972,18 +2259,43 @@ SWIFT_PROTOCOL_NAMED("PurchasesDelegate") - (void)purchases:(RCPurchases * _Nonnull)purchases receivedUpdatedCustomerInfo:(RCCustomerInfo * _Nonnull)customerInfo; /// Called when a user initiates a promotional in-app purchase from the App Store. /// If your app is able to handle a purchase at the current time, run the deferment block in this method. -/// If the app is not in a state to make a purchase: cache the defermentBlock, -/// then call the defermentBlock when the app is ready to make the promotional purchase. -/// If the purchase should never be made, you don’t need to ever call the defermentBlock and -/// Purchases will not proceed with promotional purchases. +/// If the app is not in a state to make a purchase: cache the startPurchase block, +/// then call the startPurchase block when the app is ready to make the promotional purchase. +/// If the purchase should never be made, you don’t need to ever call the block and +/// Purchases will not proceed with the promotional purchase. +/// This can be tested by opening a link like: +/// itms-services://?action=purchaseIntent&bundleId=&productIdentifier= +///

    Related Articles:

    +/// /// \param product StoreProduct the product that was selected from the app store /// -- (void)purchases:(RCPurchases * _Nonnull)purchases shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))makeDeferredPurchase; +/// \param startPurchase call this block when the app is ready to handle the purchase +/// +- (void)purchases:(RCPurchases * _Nonnull)purchases readyForPromotedProduct:(RCStoreProduct * _Nonnull)product purchase:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))startPurchase; +- (void)purchases:(RCPurchases * _Nonnull)purchases shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))makeDeferredPurchase SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="'purchases' has been renamed to 'purchases:readyForPromotedProduct:purchase:'") SWIFT_AVAILABILITY(macos,obsoleted=1,message="'purchases' has been renamed to 'purchases:readyForPromotedProduct:purchase:'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'purchases' has been renamed to 'purchases:readyForPromotedProduct:purchase:'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'purchases' has been renamed to 'purchases:readyForPromotedProduct:purchase:'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'purchases' has been renamed to 'purchases:readyForPromotedProduct:purchase:'"); +/// The default return value for this optional method is true. By default, the system displays the price consent +/// sheet when you increase the subscription price in App Store Connect and the subscriber hasn’t yet taken action. +/// The system calls your delegate’s method, if appropriate, when RevenueCat starts observing the SKPaymentQueue, +/// and any time the app comes to foreground. +/// If you return false, the system won’t show the price consent sheet. You can choose to display it later by +/// calling Purchases/showPriceConsentIfNeeded(). +/// You may want to delay showing the sheet if it would interrupt your user’s interaction in your app. +///

    Related Articles

    +/// +@property (nonatomic, readonly) BOOL shouldShowPriceConsent SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(macos,unavailable) SWIFT_AVAILABILITY(maccatalyst,introduced=13.4) SWIFT_AVAILABILITY(ios,introduced=13.4); @end -SWIFT_CLASS("_TtC10RevenueCat21RCPurchasesErrorUtils") SWIFT_AVAILABILITY(macos,obsoleted=1) SWIFT_AVAILABILITY(watchos,obsoleted=1) SWIFT_AVAILABILITY(tvos,obsoleted=1) SWIFT_AVAILABILITY(ios,obsoleted=1) +SWIFT_CLASS("_TtC10RevenueCat21RCPurchasesErrorUtils") SWIFT_AVAILABILITY(maccatalyst,obsoleted=1) SWIFT_AVAILABILITY(macos,obsoleted=1) SWIFT_AVAILABILITY(watchos,obsoleted=1) SWIFT_AVAILABILITY(tvos,obsoleted=1) SWIFT_AVAILABILITY(ios,obsoleted=1) @interface RCPurchasesErrorUtils : NSObject - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end @@ -2000,6 +2312,9 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCRefundRequestStatus, "RefundRequestStatus" + + + /// Enum of supported stores typedef SWIFT_ENUM_NAMED(NSInteger, RCStore, "Store", open) { /// For entitlements granted via Apple App Store. @@ -2014,6 +2329,8 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCStore, "Store", open) { RCPromotional SWIFT_COMPILE_NAME("promotional") = 4, /// For entitlements granted via an unknown store. RCUnknownStore SWIFT_COMPILE_NAME("unknownStore") = 5, +/// For entitlements granted via the Amazon Store. + RCAmazon SWIFT_COMPILE_NAME("amazon") = 6, }; @@ -2045,6 +2362,8 @@ SWIFT_CLASS("_TtC10RevenueCat15StoreKitWrapper") - (void)paymentQueue:(SKPaymentQueue * _Nonnull)queue removedTransactions:(NSArray * _Nonnull)transactions; - (BOOL)paymentQueue:(SKPaymentQueue * _Nonnull)queue shouldAddStorePayment:(SKPayment * _Nonnull)payment forProduct:(SKProduct * _Nonnull)product SWIFT_WARN_UNUSED_RESULT SWIFT_AVAILABILITY(watchos,unavailable); - (void)paymentQueue:(SKPaymentQueue * _Nonnull)queue didRevokeEntitlementsForProductIdentifiers:(NSArray * _Nonnull)productIdentifiers SWIFT_AVAILABILITY(watchos,introduced=7.0) SWIFT_AVAILABILITY(tvos,introduced=14.0) SWIFT_AVAILABILITY(macos,introduced=11.0) SWIFT_AVAILABILITY(ios,introduced=14.0); +- (BOOL)paymentQueueShouldShowPriceConsent:(SKPaymentQueue * _Nonnull)paymentQueue SWIFT_WARN_UNUSED_RESULT SWIFT_AVAILABILITY(maccatalyst,introduced=13.4) SWIFT_AVAILABILITY(ios,introduced=13.4); +- (void)paymentQueueDidChangeStorefront:(SKPaymentQueue * _Nonnull)queue; @end enum RCStoreProductType : NSInteger; @@ -2065,7 +2384,7 @@ SWIFT_CLASS_NAMED("StoreProduct") @property (nonatomic, readonly, copy) NSString * _Nonnull localizedPriceString; @property (nonatomic, readonly, copy) NSString * _Nonnull productIdentifier; @property (nonatomic, readonly) BOOL isFamilyShareable SWIFT_AVAILABILITY(watchos,introduced=8.0) SWIFT_AVAILABILITY(tvos,introduced=14.0) SWIFT_AVAILABILITY(macos,introduced=11.0) SWIFT_AVAILABILITY(ios,introduced=14.0); -@property (nonatomic, readonly, copy) NSString * _Nullable subscriptionGroupIdentifier SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14) SWIFT_AVAILABILITY(tvos,introduced=12.0) SWIFT_AVAILABILITY(ios,introduced=12.0); +@property (nonatomic, readonly, copy) NSString * _Nullable subscriptionGroupIdentifier SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14) SWIFT_AVAILABILITY(tvos,introduced=12.0) SWIFT_AVAILABILITY(maccatalyst,introduced=13.0) SWIFT_AVAILABILITY(ios,introduced=12.0); @property (nonatomic, readonly, strong) NSNumberFormatter * _Nullable priceFormatter; @property (nonatomic, readonly, strong) RCSubscriptionPeriod * _Nullable subscriptionPeriod SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=11.2) SWIFT_AVAILABILITY(macos,introduced=10.13.2) SWIFT_AVAILABILITY(ios,introduced=11.2); @property (nonatomic, readonly, strong) RCStoreProductDiscount * _Nullable introductoryDiscount SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=11.2) SWIFT_AVAILABILITY(macos,introduced=10.13.2) SWIFT_AVAILABILITY(ios,introduced=11.2); @@ -2076,6 +2395,7 @@ SWIFT_CLASS_NAMED("StoreProduct") + @interface RCStoreProduct (SWIFT_EXTENSION(RevenueCat)) @end @@ -2120,13 +2440,6 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCStoreProductType, "ProductType", open) { @property (nonatomic, readonly, copy) NSLocale * _Nonnull priceLocale SWIFT_AVAILABILITY(macos,unavailable,message="Use localizedPriceString instead") SWIFT_AVAILABILITY(watchos,unavailable,message="Use localizedPriceString instead") SWIFT_AVAILABILITY(tvos,unavailable,message="Use localizedPriceString instead") SWIFT_AVAILABILITY(ios,unavailable,message="Use localizedPriceString instead"); @end - -@interface RCStoreProduct (SWIFT_EXTENSION(RevenueCat)) -- (nonnull instancetype)initWithSk1Product:(SKProduct * _Nonnull)sk1Product; -/// Returns the SKProduct if this StoreProduct represents a StoreKit.SKProduct. -@property (nonatomic, readonly, strong) SKProduct * _Nullable sk1Product; -@end - @class NSDecimalNumber; @interface RCStoreProduct (SWIFT_EXTENSION(RevenueCat)) @@ -2134,8 +2447,12 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCStoreProductType, "ProductType", open) { /// For a string representation of the price to display to customers, use localizedPriceString. /// note: /// this is meant for Objective-C. For Swift, use price instead. -/// seealso: -/// pricePerMonth. +///

    Related Symbols

    +///
      +///
    • +/// pricePerMonth +///
    • +///
    @property (nonatomic, readonly, strong) NSDecimalNumber * _Nonnull price; /// Calculates the price of this subscription product per month. /// @@ -2149,6 +2466,13 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCStoreProductType, "ProductType", open) { @property (nonatomic, readonly, copy) NSString * _Nullable localizedIntroductoryPriceString; @end + +@interface RCStoreProduct (SWIFT_EXTENSION(RevenueCat)) +- (nonnull instancetype)initWithSk1Product:(SKProduct * _Nonnull)sk1Product; +/// Returns the SKProduct if this StoreProduct represents a StoreKit.SKProduct. +@property (nonatomic, readonly, strong) SKProduct * _Nullable sk1Product; +@end + enum RCPaymentMode : NSInteger; enum RCDiscountType : NSInteger; @@ -2162,6 +2486,7 @@ SWIFT_CLASS_NAMED("StoreProductDiscount") @property (nonatomic, readonly, copy) NSString * _Nonnull localizedPriceString; @property (nonatomic, readonly) enum RCPaymentMode paymentMode; @property (nonatomic, readonly, strong) RCSubscriptionPeriod * _Nonnull subscriptionPeriod; +@property (nonatomic, readonly) NSInteger numberOfPeriods; @property (nonatomic, readonly) enum RCDiscountType type; - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; @property (nonatomic, readonly) NSUInteger hash; @@ -2209,7 +2534,9 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCDiscountType, "DiscountType", open) { @end -/// Abstract class that provides access to all of StoreKit’s product type’s properties. +/// Abstract class that provides access to properties of a transaction. +/// StoreTransactions can represent transactions from StoreKit 1, StoreKit 2 or +/// transactions made from other places, like Stripe, Google Play or Amazon Store. SWIFT_CLASS_NAMED("StoreTransaction") @interface RCStoreTransaction : NSObject @property (nonatomic, readonly, copy) NSString * _Nonnull productIdentifier; @@ -2235,6 +2562,38 @@ SWIFT_CLASS_NAMED("StoreTransaction") @property (nonatomic, readonly, strong) SKPaymentTransaction * _Nullable sk1Transaction; @end + +/// An object containing the location and unique identifier of an Apple App Store storefront. +/// note: +/// Don’t save the storefront information with your user information; storefront information can change +/// at any time. Always get the storefront identifier immediately before you display product information or availability +/// to the user in your app. Storefront information may not be used to develop or enhance a user profile, +/// or track customers for advertising or marketing purposes. +SWIFT_CLASS_NAMED("Storefront") +@interface RCStorefront : NSObject +@property (nonatomic, readonly, copy) NSString * _Nonnull countryCode; +@property (nonatomic, readonly, copy) NSString * _Nonnull identifier; +- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; +@property (nonatomic, readonly) NSUInteger hash; +@property (nonatomic, readonly, copy) NSString * _Nonnull description; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@class SKStorefront; + +@interface RCStorefront (SWIFT_EXTENSION(RevenueCat)) +/// Returns the SKStorefront if this Storefront represents an SKStorefront. +@property (nonatomic, readonly, strong) SKStorefront * _Nullable sk1Storefront SWIFT_AVAILABILITY(maccatalyst,introduced=13.1) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.15) SWIFT_AVAILABILITY(ios,introduced=13.0); +@end + + +@interface RCStorefront (SWIFT_EXTENSION(RevenueCat)) +/// The current App Store storefront for the device obtained from StoreKit 1 only. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) RCStorefront * _Nullable sk1CurrentStorefront SWIFT_AVAILABILITY(maccatalyst,introduced=13.1) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.15) SWIFT_AVAILABILITY(ios,introduced=13.0);) ++ (RCStorefront * _Nullable)sk1CurrentStorefront SWIFT_WARN_UNUSED_RESULT; +@end + enum RCSubscriptionPeriodUnit : NSInteger; /// The duration of time between subscription renewals. @@ -2266,6 +2625,7 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCSubscriptionPeriodUnit, "Unit", open) { + @interface RCSubscriptionPeriod (SWIFT_EXTENSION(RevenueCat)) @property (nonatomic, readonly, copy) NSString * _Nonnull debugDescription; @end @@ -2300,7 +2660,7 @@ SWIFT_CLASS_NAMED("Transaction") SWIFT_AVAILABILITY(macos,obsoleted=1,message="' #endif #else -// Generated by Apple Swift version 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30) +// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8) #ifndef REVENUECAT_SWIFT_H #define REVENUECAT_SWIFT_H #pragma clang diagnostic push @@ -2486,6 +2846,13 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #if !defined(IBSegueAction) # define IBSegueAction #endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" @@ -2510,6 +2877,259 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); # pragma pop_macro("any") #endif + +/// This class is responsible for all explicit attribution APIs as well as subscriber attributes that RevenueCat offers. +/// The attributes are additional structured information on a user. Since attributes are writable using a public key +/// they should not be used for managing secure or sensitive information such as subscription status, coins, etc. +/// Key names starting with “$” are reserved names used by RevenueCat. For a full list of key restrictions refer +/// to our guide +SWIFT_CLASS_NAMED("Attribution") +@interface RCAttribution : NSObject +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + + +@class NSString; +@class NSData; + +@interface RCAttribution (SWIFT_EXTENSION(RevenueCat)) +/// Automatically collect subscriber attributes associated with the device identifiers +///
      +///
    • +/// $idfa +///
    • +///
    • +/// $idfv +///
    • +///
    • +/// $ip +///
    • +///
    +- (void)collectDeviceIdentifiers; +/// Subscriber attributes are useful for storing additional, structured information on a user. +/// Since attributes are writable using a public key they should not be used for +/// managing secure or sensitive information such as subscription status, coins, etc. +/// Key names starting with “$” are reserved names used by RevenueCat. For a full list of key +/// restrictions refer to our guide +/// \param attributes Map of attributes by key. Set the value as an empty string to delete an attribute. +/// +- (void)setAttributes:(NSDictionary * _Nonnull)attributes; +/// Subscriber attribute associated with the email address for the user. +///

    Related Articles

    +/// +/// \param email Empty String or nil will delete the subscriber attribute. +/// +- (void)setEmail:(NSString * _Nullable)email; +/// Subscriber attribute associated with the phone number for the user. +///

    Related Articles

    +/// +/// \param phoneNumber Empty String or nil will delete the subscriber attribute. +/// +- (void)setPhoneNumber:(NSString * _Nullable)phoneNumber; +/// Subscriber attribute associated with the display name for the user. +///

    Related Articles

    +/// +/// \param displayName Empty String or nil will delete the subscriber attribute. +/// +- (void)setDisplayName:(NSString * _Nullable)displayName; +/// Subscriber attribute associated with the push token for the user. +///

    Related Articles

    +/// +///

    Related Symbols

    +///
      +///
    • +/// Attribution/setPushTokenString(_:) +///
    • +///
    +/// \param pushToken nil will delete the subscriber attribute. +/// +- (void)setPushToken:(NSData * _Nullable)pushToken; +/// Subscriber attribute associated with the push token for the user. +///

    Related Articles

    +/// +///

    Related Symbols

    +///
      +///
    • +/// Attribution/setPushToken(_:) +///
    • +///
    +/// \param pushToken nil will delete the subscriber attribute. +/// +- (void)setPushTokenString:(NSString * _Nullable)pushToken; +/// Subscriber attribute associated with the Adjust Id for the user. +/// Required for the RevenueCat Adjust integration. +///

    Related Articles

    +/// +- (void)setAdjustID:(NSString * _Nullable)adjustID; +/// Subscriber attribute associated with the Appsflyer Id for the user. +/// Required for the RevenueCat Appsflyer integration. +///

    Related Articles

    +/// +- (void)setAppsflyerID:(NSString * _Nullable)appsflyerID; +/// Subscriber attribute associated with the Facebook SDK Anonymous Id for the user. +/// Recommended for the RevenueCat Facebook integration. +///

    Related Articles

    +/// +- (void)setFBAnonymousID:(NSString * _Nullable)fbAnonymousID; +/// Subscriber attribute associated with the mParticle Id for the user. +/// Recommended for the RevenueCat mParticle integration. +///

    Related Articles

    +/// +- (void)setMparticleID:(NSString * _Nullable)mparticleID; +/// Subscriber attribute associated with the OneSignal Player ID for the user. +/// Required for the RevenueCat OneSignal integration. +///

    Related Articles

    +/// +- (void)setOnesignalID:(NSString * _Nullable)onesignalID; +/// Subscriber attribute associated with the Airship Channel ID for the user. +/// Required for the RevenueCat Airship integration. +///

    Related Articles

    +/// +- (void)setAirshipChannelID:(NSString * _Nullable)airshipChannelID; +/// Subscriber attribute associated with the CleverTap ID for the user. +/// Required for the RevenueCat CleverTap integration. +///

    Related Articles

    +/// +- (void)setCleverTapID:(NSString * _Nullable)cleverTapID; +/// Subscriber attribute associated with the Mixpanel Distinct ID for the user. +/// Optional for the RevenueCat Mixpanel integration. +///

    Related Articles

    +/// +- (void)setMixpanelDistinctID:(NSString * _Nullable)mixpanelDistinctID; +/// Subscriber attribute associated with the Firebase App Instance ID for the user. +/// Required for the RevenueCat Firebase integration. +///

    Related Articles

    +/// +- (void)setFirebaseAppInstanceID:(NSString * _Nullable)firebaseAppInstanceID; +/// Subscriber attribute associated with the install media source for the user. +///

    Related Articles

    +/// +/// \param mediaSource Empty String or nil will delete the subscriber attribute. +/// +- (void)setMediaSource:(NSString * _Nullable)mediaSource; +/// Subscriber attribute associated with the install campaign for the user. +///

    Related Articles

    +/// +/// \param campaign Empty String or nil will delete the subscriber attribute. +/// +- (void)setCampaign:(NSString * _Nullable)campaign; +/// Subscriber attribute associated with the install ad group for the user +///

    Related Articles

    +/// +/// \param adGroup Empty String or nil will delete the subscriber attribute. +/// +- (void)setAdGroup:(NSString * _Nullable)adGroup; +/// Subscriber attribute associated with the install ad for the user +///

    Related Articles

    +/// +/// \param installAd Empty String or nil will delete the subscriber attribute. +/// +- (void)setAd:(NSString * _Nullable)installAd; +/// Subscriber attribute associated with the install keyword for the user +///

    Related Articles

    +/// +/// \param keyword Empty String or nil will delete the subscriber attribute. +/// +- (void)setKeyword:(NSString * _Nullable)keyword; +/// Subscriber attribute associated with the install ad creative for the user. +///

    Related Articles

    +/// +/// \param creative Empty String or nil will delete the subscriber attribute. +/// +- (void)setCreative:(NSString * _Nullable)creative; +@end + /// Enum of supported attribution networks typedef SWIFT_ENUM_NAMED(NSInteger, RCAttributionNetwork, "AttributionNetwork", open) { /// Apple’s search ads @@ -2528,7 +3148,21 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCAttributionNetwork, "AttributionNetwork", RCAttributionNetworkMParticle = 6, }; -@class NSNumber; +/// Specifies the behavior for a caching API. +typedef SWIFT_ENUM_NAMED(NSInteger, RCCacheFetchPolicy, "CacheFetchPolicy", open) { +/// Returns values from the cache, or throws an error if not available. + RCCacheFetchPolicyFromCacheOnly = 0, +/// Always fetch the most up-to-date data. + RCCacheFetchPolicyFetchCurrent = 1, +/// Returns the cached data if available and not stale, or fetches up-to-date data. +/// warning: +/// if the cached data is stale, and fetching up-to-date data fails (if offline, for example) +/// an error will be returned instead of the outdated cached data. + RCCacheFetchPolicyNotStaleCachedOrFetched = 2, +/// Default behavior: returns the cached data if available (even if stale), or fetches up-to-date data. + RCCacheFetchPolicyCachedOrFetched = 3, +}; + SWIFT_CLASS("_TtC10RevenueCat16NetworkOperation") @interface NetworkOperation : NSOperation @@ -2547,17 +3181,105 @@ SWIFT_CLASS("_TtC10RevenueCat25CacheableNetworkOperation") @interface CacheableNetworkOperation : NetworkOperation @end +@class RCConfigurationBuilder; -SWIFT_CLASS("_TtC10RevenueCat20CreateAliasOperation") -@interface CreateAliasOperation : CacheableNetworkOperation +/// Configuration can be used when configuring the Purchases instance. It is not required to be used, but +/// highly recommended. This class follows a builder pattern. +/// To configure your Purchases instance using this object, follow these steps. +/// Steps: +///
      +///
    1. +/// Call Configuration/builder(withAPIKey:) To obtain a Builder object. +///
    2. +///
    3. +/// Set this builder’s properties using the “with(” functions. +///
    4. +///
    5. +/// Call Builder/build() to obtain the Configuration object. +///
    6. +///
    7. +/// Pass the Configuration object into Purchases/configure(with:)-6oipy. +///
    8. +///
    +/// \code +/// let configuration = Configuration.Builder(withAPIKey: "MyKey") +/// .with(appUserID: "SomeAppUserID") +/// .with(userDefaults: myUserDefaults) +/// .with(networkTimeout: 15) +/// .with(storeKit1Timeout: 15) +/// .with(usesStoreKit2IfAvailable: true) +/// .build() +/// Purchases.configure(with: configuration) +/// +/// \endcode +SWIFT_CLASS_NAMED("Configuration") +@interface RCConfiguration : NSObject +/// Factory method for the Configuration/Builder object that is required to create a Configuration ++ (RCConfigurationBuilder * _Nonnull)builderWithAPIKey:(NSString * _Nonnull)apiKey SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end +@class NSUserDefaults; +@class RCDangerousSettings; +@class RCPlatformInfo; + +/// The Builder for Configuration. +SWIFT_CLASS_NAMED("Builder") +@interface RCConfigurationBuilder : NSObject +/// Create a new builder with your API key. +/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ +/// +- (nonnull instancetype)initWithAPIKey:(NSString * _Nonnull)apiKey OBJC_DESIGNATED_INITIALIZER; +/// Update your API key. +- (RCConfigurationBuilder * _Nonnull)withApiKey:(NSString * _Nonnull)apiKey SWIFT_WARN_UNUSED_RESULT; +/// Set an appUserID. +/// note: +/// Best practice is to use a salted hash of your unique app user ids. +/// important: +/// Set this property if you have your own user identifiers that you manage. +/// \param appUserID The unique app user id for this user. This user id will allow users to share their +/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases +/// to generate this for you. +/// +- (RCConfigurationBuilder * _Nonnull)withAppUserID:(NSString * _Nonnull)appUserID SWIFT_WARN_UNUSED_RESULT; +/// Set observerMode. +/// \param observerMode Set this to true if you have your own IAP implementation and want to use only +/// RevenueCat’s backend. Default is false. +/// +- (RCConfigurationBuilder * _Nonnull)withObserverMode:(BOOL)observerMode SWIFT_WARN_UNUSED_RESULT; +/// Set userDefaults. +/// \param userDefaults Custom UserDefaults to use +/// +- (RCConfigurationBuilder * _Nonnull)withUserDefaults:(NSUserDefaults * _Nonnull)userDefaults SWIFT_WARN_UNUSED_RESULT; +/// Set usesStoreKit2IfAvailable. +/// important: +/// Support for purchases using StoreKit 2 is currently in an experimental phase. +/// We recommend setting this value to false (default) for production apps. +/// \param usesStoreKit2IfAvailable EXPERIMENTAL. opt in to using StoreKit 2 on devices that support it. +/// Purchases will be made using StoreKit 2 under the hood automatically. +/// +- (RCConfigurationBuilder * _Nonnull)withUsesStoreKit2IfAvailable:(BOOL)usesStoreKit2IfAvailable SWIFT_WARN_UNUSED_RESULT; +/// Set dangerousSettings. +/// \param dangerousSettings Only use if suggested by RevenueCat support team. +/// +- (RCConfigurationBuilder * _Nonnull)withDangerousSettings:(RCDangerousSettings * _Nonnull)dangerousSettings SWIFT_WARN_UNUSED_RESULT; +/// Set networkTimeout. +- (RCConfigurationBuilder * _Nonnull)withNetworkTimeout:(NSTimeInterval)networkTimeout SWIFT_WARN_UNUSED_RESULT; +/// Set storeKit1Timeout. +- (RCConfigurationBuilder * _Nonnull)withStoreKit1Timeout:(NSTimeInterval)storeKit1Timeout SWIFT_WARN_UNUSED_RESULT; +/// Set platformInfo. +- (RCConfigurationBuilder * _Nonnull)withPlatformInfo:(RCPlatformInfo * _Nonnull)platformInfo SWIFT_WARN_UNUSED_RESULT; +/// Generate a Configuration object given the values configured by this builder. +- (RCConfiguration * _Nonnull)build SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end @class RCEntitlementInfos; -@class NSString; @class NSDate; -@class RCStoreTransaction; +@class RCNonSubscriptionTransaction; @class NSURL; /// A container for the most recent customer info returned from Purchases. @@ -2572,11 +3294,9 @@ SWIFT_CLASS_NAMED("CustomerInfo") @property (nonatomic, readonly, copy) NSSet * _Nonnull allPurchasedProductIdentifiers; /// Returns the latest expiration date of all products, nil if there are none. @property (nonatomic, readonly, copy) NSDate * _Nullable latestExpirationDate; -/// Returns all product IDs of the non-subscription purchases a user has made. -@property (nonatomic, readonly, copy) NSSet * _Nonnull nonConsumablePurchases SWIFT_DEPRECATED_MSG("use nonSubscriptionTransactions"); /// Returns all the non-subscription purchases a user has made. /// The purchases are ordered by purchase date in ascending order. -@property (nonatomic, readonly, copy) NSArray * _Nonnull nonSubscriptionTransactions; +@property (nonatomic, readonly, copy) NSArray * _Nonnull nonSubscriptions; /// Returns the fetch date of this CustomerInfo. @property (nonatomic, readonly, copy) NSDate * _Nonnull requestDate; /// The date this user was first seen in RevenueCat. @@ -2611,12 +3331,6 @@ SWIFT_CLASS_NAMED("CustomerInfo") /// note: /// This can be nil, see -Purchases.restorePurchases(completion:) @property (nonatomic, readonly, copy) NSString * _Nullable originalApplicationVersion; -/// The underlying data for this CustomerInfo. -/// note: -/// the content and format of this data isn’t documented and is subject to change. -/// it’s only meant for debugging purposes or for getting access to future data -/// without updating the SDK. -@property (nonatomic, readonly, copy) NSDictionary * _Nonnull rawData; /// Get the expiration date for a given product identifier. You should use Entitlements though! /// \param productIdentifier Product identifier for product /// @@ -2655,6 +3369,24 @@ SWIFT_CLASS_NAMED("CustomerInfo") + +@interface RCCustomerInfo (SWIFT_EXTENSION(RevenueCat)) +@property (nonatomic, readonly, copy) NSDictionary * _Nonnull rawData; +@end + + +@class RCStoreTransaction; + +@interface RCCustomerInfo (SWIFT_EXTENSION(RevenueCat)) +/// Returns all product IDs of the non-subscription purchases a user has made. +@property (nonatomic, readonly, copy) NSSet * _Nonnull nonConsumablePurchases SWIFT_DEPRECATED_MSG("use nonSubscriptionTransactions"); +/// Returns all the non-subscription purchases a user has made. +/// The purchases are ordered by purchase date in ascending order. +@property (nonatomic, readonly, copy) NSArray * _Nonnull nonSubscriptionTransactions SWIFT_DEPRECATED_MSG("", "nonSubscriptions"); +@end + + + /// Only use a Dangerous Setting if suggested by RevenueCat support team. SWIFT_CLASS_NAMED("DangerousSettings") @interface RCDangerousSettings : NSObject @@ -2685,10 +3417,17 @@ SWIFT_CLASS_NAMED("EntitlementInfo") /// The entitlement identifier configured in the RevenueCat dashboard @property (nonatomic, readonly, copy) NSString * _Nonnull identifier; /// True if the user has access to this entitlement +/// warning: +/// this is equivalent to isActiveInAnyEnvironment +///

    Related Symbols

    +///
      +///
    • +/// isActiveInCurrentEnvironment +///
    • +///
    @property (nonatomic, readonly) BOOL isActive; /// True if the underlying subscription is set to renew at the end of -/// the billing period (expirationDate). Will always be true if entitlement -/// is for lifetime access. +/// the billing period (expirationDate). @property (nonatomic, readonly) BOOL willRenew; /// The last period type this entitlement was in /// Either: PeriodType/normal, PeriodType/intro, PeriodType/trial @@ -2721,11 +3460,6 @@ SWIFT_CLASS_NAMED("EntitlementInfo") /// or shared to them by a family member. This can be useful for onboarding users who have had /// an entitlement shared with them, but might not be entirely aware of the benefits they now have. @property (nonatomic, readonly) enum RCPurchaseOwnershipType ownershipType; -/// The underlying data for this EntitlementInfo. -/// note: -/// the content and format of this data isn’t documented and is subject to change, -/// it’s only meant for debugging purposes or for getting access to future data -/// without updating the SDK. @property (nonatomic, readonly, copy) NSDictionary * _Nonnull rawData; @property (nonatomic, readonly, copy) NSString * _Nonnull description; - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; @@ -2735,10 +3469,33 @@ SWIFT_CLASS_NAMED("EntitlementInfo") @end - - - - + + + + +@interface RCEntitlementInfo (SWIFT_EXTENSION(RevenueCat)) +/// True if the user has access to this entitlement, +/// note: +/// When queried from the sandbox environment, it only returns true if active in sandbox. +/// When queried from production, this only returns true if active in production. +///

    Related Symbols

    +///
      +///
    • +/// isActiveInAnyEnvironment +///
    • +///
    +@property (nonatomic, readonly) BOOL isActiveInCurrentEnvironment; +/// True if the user has access to this entitlement in any environment. +///

    Related Symbols

    +///
      +///
    • +/// isActiveInCurrentEnvironment +///
    • +///
    +@property (nonatomic, readonly) BOOL isActiveInAnyEnvironment; +@end + + /// This class contains all the entitlements associated to the user. SWIFT_CLASS_NAMED("EntitlementInfos") @interface RCEntitlementInfos : NSObject @@ -2746,8 +3503,6 @@ SWIFT_CLASS_NAMED("EntitlementInfos") /// identifier. This dictionary can also be accessed by using an index subscript on EntitlementInfos, e.g. /// entitlementInfos["pro_entitlement_id"]. @property (nonatomic, readonly, copy) NSDictionary * _Nonnull all; -/// Dictionary of active EntitlementInfo (RCEntitlementInfo) objects keyed by entitlement identifier. -@property (nonatomic, readonly, copy) NSDictionary * _Nonnull active; - (RCEntitlementInfo * _Nullable)objectForKeyedSubscript:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT; @property (nonatomic, readonly, copy) NSString * _Nonnull description; - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; @@ -2755,6 +3510,42 @@ SWIFT_CLASS_NAMED("EntitlementInfos") + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end + + +@interface RCEntitlementInfos (SWIFT_EXTENSION(RevenueCat)) +/// Dictionary of active EntitlementInfo objects keyed by their identifiers. +/// warning: +/// this is equivalent to activeInAnyEnvironment +///

    Related Symbols

    +///
      +///
    • +/// activeInCurrentEnvironment +///
    • +///
    +@property (nonatomic, readonly, copy) NSDictionary * _Nonnull active; +/// Dictionary of active EntitlementInfo objects keyed by their identifiers. +/// note: +/// When queried from the sandbox environment, it only returns entitlements active in sandbox. +/// When queried from production, this only returns entitlements active in production. +///

    Related Symbols

    +///
      +///
    • +/// activeInAnyEnvironment +///
    • +///
    +@property (nonatomic, readonly, copy) NSDictionary * _Nonnull activeInCurrentEnvironment; +/// Dictionary of active EntitlementInfo objects keyed by their identifiers. +/// note: +/// these can be active on any environment. +///

    Related Symbols

    +///
      +///
    • +/// activeInCurrentEnvironment +///
    • +///
    +@property (nonatomic, readonly, copy) NSDictionary * _Nonnull activeInAnyEnvironment; +@end + /// Error codes used by the Purchases SDK typedef SWIFT_ENUM_NAMED(NSInteger, RCPurchasesErrorCode, "ErrorCode", open) { RCUnknownError SWIFT_COMPILE_NAME("unknownError") = 0, @@ -2784,7 +3575,6 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCPurchasesErrorCode, "ErrorCode", open) { RCUnsupportedError SWIFT_COMPILE_NAME("unsupportedError") = 24, RCEmptySubscriberAttributesError SWIFT_COMPILE_NAME("emptySubscriberAttributes") = 25, RCProductDiscountMissingIdentifierError SWIFT_COMPILE_NAME("productDiscountMissingIdentifierError") = 26, - RCMissingAppUserIDForAliasCreationError SWIFT_COMPILE_NAME("missingAppUserIDForAliasCreationError") = 27, RCProductDiscountMissingSubscriptionGroupIdentifierError SWIFT_COMPILE_NAME("productDiscountMissingSubscriptionGroupIdentifierError") = 28, RCCustomerInfoError SWIFT_COMPILE_NAME("customerInfoError") = 29, RCSystemInfoError SWIFT_COMPILE_NAME("systemInfoError") = 30, @@ -2792,16 +3582,11 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCPurchasesErrorCode, "ErrorCode", open) { RCProductRequestTimedOut SWIFT_COMPILE_NAME("productRequestTimedOut") = 32, RCAPIEndpointBlocked SWIFT_COMPILE_NAME("apiEndpointBlockedError") = 33, RCInvalidPromotionalOfferError SWIFT_COMPILE_NAME("invalidPromotionalOfferError") = 34, + RCOfflineConnectionError SWIFT_COMPILE_NAME("offlineConnectionError") = 35, }; static NSString * _Nonnull const RCPurchasesErrorCodeDomain = @"RevenueCat.ErrorCode"; -SWIFT_CLASS("_TtC10RevenueCat12ErrorDetails") -@interface ErrorDetails : NSObject -- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; -@end - - SWIFT_CLASS("_TtC10RevenueCat15FakeASIdManager") @interface FakeASIdManager : NSObject + (FakeASIdManager * _Nonnull)sharedManager SWIFT_WARN_UNUSED_RESULT; @@ -2913,6 +3698,21 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCLogLevel, "LogLevel", open) { + + +/// Information that represents a non-subscription purchase made by a user. +SWIFT_CLASS_NAMED("NonSubscriptionTransaction") +@interface RCNonSubscriptionTransaction : NSObject +/// The product identifier. +@property (nonatomic, readonly, copy) NSString * _Nonnull productIdentifier; +/// The date that App Store charged the user’s account. +@property (nonatomic, readonly, copy) NSDate * _Nonnull purchaseDate; +/// The unique identifier for the transaction. +@property (nonatomic, readonly, copy) NSString * _Nonnull transactionIdentifier; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + @class RCPackage; /// An offering is a collection of Packages, and they let you control which products @@ -3041,6 +3841,14 @@ SWIFT_CLASS_NAMED("Package") @end +@class SKProduct; + +@interface RCPackage (SWIFT_EXTENSION(RevenueCat)) +/// SKProduct assigned to this package. https://developer.apple.com/documentation/storekit/skproduct +@property (nonatomic, readonly, strong) SKProduct * _Nonnull product SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(macos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead"); +@end + + @interface RCPackage (SWIFT_EXTENSION(RevenueCat)) /// \param packageType A PackageType. /// @@ -3056,13 +3864,6 @@ SWIFT_CLASS_NAMED("Package") + (enum RCPackageType)packageTypeFrom:(NSString * _Nonnull)string SWIFT_WARN_UNUSED_RESULT; @end -@class SKProduct; - -@interface RCPackage (SWIFT_EXTENSION(RevenueCat)) -/// SKProduct assigned to this package. https://developer.apple.com/documentation/storekit/skproduct -@property (nonatomic, readonly, strong) SKProduct * _Nonnull product SWIFT_AVAILABILITY(macos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'product' has been renamed to 'storeProduct': Use StoreProduct instead"); -@end - /// Enumeration of all possible Package types, as configured on the package. ///

    Related Articles

    @@ -3155,21 +3956,24 @@ SWIFT_CLASS("_TtC10RevenueCat15ProductsManager") @end +@class RCStoreProductDiscount; +@class RCPromotionalOfferSignedData; + /// Represents a StoreProductDiscount that has been validated and /// is ready to be used for a purchase. ///

    Related Symbols

    ///
      ///
    • -/// Purchases/getPromotionalOffer(forProductDiscount:product:) +/// Purchases/promotionalOffer(forProductDiscount:product:) ///
    • ///
    • /// Purchases/getPromotionalOffer(forProductDiscount:product:completion:) ///
    • ///
    • -/// StoreProduct/getEligiblePromotionalOffers() +/// StoreProduct/eligiblePromotionalOffers() ///
    • ///
    • -/// Purchases/getEligiblePromotionalOffers(forProduct:) +/// Purchases/eligiblePromotionalOffers(forProduct:) ///
    • ///
    • /// Purchases/purchase(package:promotionalOffer:) @@ -3186,14 +3990,39 @@ SWIFT_CLASS("_TtC10RevenueCat15ProductsManager") ///
    SWIFT_CLASS_NAMED("PromotionalOffer") @interface RCPromotionalOffer : NSObject +/// The StoreProductDiscount in this offer. +@property (nonatomic, readonly, strong) RCStoreProductDiscount * _Nonnull discount; +/// The SignedData-swift.class provides information about the PromotionalOffer’s signature. +@property (nonatomic, readonly, strong) RCPromotionalOfferSignedData * _Nonnull signedData; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end +@interface RCPromotionalOffer (SWIFT_EXTENSION(RevenueCat)) +@end + +@class NSUUID; + +/// Contains the details of a promotional offer discount that you want to apply to a payment. +SWIFT_CLASS_NAMED("SignedData") +@interface RCPromotionalOfferSignedData : NSObject +/// The subscription offer identifier. +@property (nonatomic, readonly, copy) NSString * _Nonnull identifier; +/// The key identifier of the subscription key. +@property (nonatomic, readonly, copy) NSString * _Nonnull keyIdentifier; +/// The nonce used in the signature. +@property (nonatomic, readonly, copy) NSUUID * _Nonnull nonce; +/// The cryptographic signature of the offer parameters, generated on RevenueCat’s server. +@property (nonatomic, readonly, copy) NSString * _Nonnull signature; +/// The UNIX time, in milliseconds, when the signature was generated. +@property (nonatomic, readonly) NSInteger timestamp; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end -SWIFT_CLASS_NAMED("PromotionalOfferEligibility") SWIFT_AVAILABILITY(macos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(ios,obsoleted=1,message="Use PromotionalOffer instead") +SWIFT_CLASS_NAMED("PromotionalOfferEligibility") SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(macos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="Use PromotionalOffer instead") SWIFT_AVAILABILITY(ios,obsoleted=1,message="Use PromotionalOffer instead") @interface RCPromotionalOfferEligibility : NSObject - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end @@ -3281,7 +4110,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL forceUniversalAppStore;) /// Approve what kids buy with Ask to Buy /// /// -SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL simulatesAskToBuyInSandbox SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14) SWIFT_AVAILABILITY(ios,introduced=8.0);) +SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL simulatesAskToBuyInSandbox SWIFT_AVAILABILITY(maccatalyst,introduced=13.0) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14) SWIFT_AVAILABILITY(ios,introduced=8.0);) + (BOOL)simulatesAskToBuyInSandbox SWIFT_WARN_UNUSED_RESULT; + (void)setSimulatesAskToBuyInSandbox:(BOOL)newValue; /// Indicates whether the user is allowed to make payments. @@ -3339,51 +4168,33 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL verboseLogs;) /// Current version of the Purchases framework. SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull frameworkVersion;) + (NSString * _Nonnull)frameworkVersion SWIFT_WARN_UNUSED_RESULT; -/// Whether transactions should be finished automatically. true by default. -/// * - Warning: Setting this value to false will prevent the SDK from finishing transactions. -/// * In this case, you must finish transactions in your app, otherwise they will remain in the queue and -/// * will turn up every time the app is opened. -/// * More information on finishing transactions manually is available here. -@property (nonatomic) BOOL finishTransactions; -/// Automatically collect subscriber attributes associated with the device identifiers +/// Attribution object that is responsible for all explicit attribution APIs +/// as well as subscriber attributes that RevenueCat offers. +///

    Example:

    +/// \code +/// Purchases.shared.attribution.setEmail(“nobody@example.com”) +/// +/// \endcode

    Related Articles

    /// -- (void)collectDeviceIdentifiers; +@property (nonatomic, readonly, strong) RCAttribution * _Nonnull attribution; +/// Whether transactions should be finished automatically. true by default. +/// * - Warning: Setting this value to false will prevent the SDK from finishing transactions. +/// * In this case, you must finish transactions in your app, otherwise they will remain in the queue and +/// * will turn up every time the app is opened. +/// * More information on finishing transactions manually is available here. +@property (nonatomic) BOOL finishTransactions; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end -SWIFT_PROTOCOL("_TtP10RevenueCat29PurchasesOrchestratorDelegate_") -@protocol PurchasesOrchestratorDelegate -- (void)shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))defermentBlock; -@end - - -@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) -/// Called when a user initiates a promotional in-app purchase from the App Store. -/// If your app is able to handle a purchase at the current time, run the deferment block in this method. -/// If the app is not in a state to make a purchase: cache the defermentBlock, then call the defermentBlock -/// when the app is ready to make the promotional purchase. -/// If the purchase should never be made, you don’t need to ever call the defermentBlock and Purchases -/// will not proceed with promotional purchases. -/// \param product StoreProduct the product that was selected from the app store. -/// -- (void)shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))defermentBlock; -@end - - - -@class RCPlatformInfo; @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) SWIFT_CLASS_PROPERTY(@property (nonatomic, class, strong) RCPlatformInfo * _Nullable platformInfo;) @@ -3400,6 +4211,91 @@ SWIFT_CLASS_NAMED("PlatformInfo") @end +@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) +/// Configures an instance of the Purchases SDK with a specified Configuration. +/// The instance will be set as a singleton. +/// You should access the singleton instance using Purchases/shared +/// important: +/// See Configuration/Builder for more information about configurable properties. +///

    Example

    +/// \code +/// Purchases.configure( +/// with: Configuration.Builder(withAPIKey: Constants.apiKey) +/// .with(usesStoreKit2IfAvailable: true) +/// .with(observerMode: false) +/// .with(appUserID: "") +/// .build() +/// ) +/// +/// \endcode\param configuration The Configuration object you wish to use to configure Purchases +/// +/// +/// returns: +/// An instantiated Purchases object that has been set as a singleton. ++ (RCPurchases * _Nonnull)configureWithConfiguration:(RCConfiguration * _Nonnull)configuration; +/// Configures an instance of the Purchases SDK with a specified Configuration/Builder. +/// The instance will be set as a singleton. +/// You should access the singleton instance using Purchases/shared +/// important: +/// See Configuration/Builder for more information about configurable properties. +///

    Example

    +/// \code +/// Purchases.configure( +/// with: .init(withAPIKey: Constants.apiKey) +/// .with(usesStoreKit2IfAvailable: true) +/// .with(observerMode: false) +/// .with(appUserID: "") +/// ) +/// +/// \endcode\param builder The Configuration/Builder object you wish to use to configure Purchases +/// +/// +/// returns: +/// An instantiated Purchases object that has been set as a singleton. ++ (RCPurchases * _Nonnull)configureWithConfigurationBuilder:(RCConfigurationBuilder * _Nonnull)builder; +/// Configures an instance of the Purchases SDK with a specified API key. +/// The instance will be set as a singleton. +/// You should access the singleton instance using Purchases/shared +/// note: +/// Use this initializer if your app does not have an account system. +/// Purchases will generate a unique identifier for the current device and persist it to NSUserDefaults. +/// This also affects the behavior of Purchases/restorePurchases(completion:). +/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ +/// +/// +/// returns: +/// An instantiated Purchases object that has been set as a singleton. ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey; +@end + + +SWIFT_PROTOCOL("_TtP10RevenueCat29PurchasesOrchestratorDelegate_") +@protocol PurchasesOrchestratorDelegate +- (void)readyForPromotedProduct:(RCStoreProduct * _Nonnull)product purchase:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))startPurchase; +@property (nonatomic, readonly) BOOL shouldShowPriceConsent SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(macos,unavailable) SWIFT_AVAILABILITY(maccatalyst,introduced=13.4) SWIFT_AVAILABILITY(ios,introduced=13.4); +@end + + +@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) +/// Called when a user initiates a promoted in-app purchase from the App Store. +/// If your app is able to handle a purchase at the current time, run the startPurchase block. +/// If the app is not in a state to make a purchase: cache the startPurchase block, then call it +/// when the app is ready to make the promoted purchase. +/// If the purchase should never be made, you don’t need to ever call the startPurchase block +/// and Purchases will not proceed with promoted purchases. +/// \param product StoreProduct the product that was selected from the app store. +/// +/// \param startPurchase Method that begins the purchase flow for the promoted purchase. +/// If the app is ready to start the purchase flow when this delegate method is called, then this method +/// should be called right away. Otherwise, the method should be stored as a property in memory, and then called +/// once the app is ready to start the purchase flow. +/// When the purchase completes, the result will be part of the callback parameters. +/// +- (void)readyForPromotedProduct:(RCStoreProduct * _Nonnull)product purchase:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))startPurchase; +@property (nonatomic, readonly) BOOL shouldShowPriceConsent SWIFT_AVAILABILITY(maccatalyst,introduced=13.4) SWIFT_AVAILABILITY(ios,introduced=13.4); +@end + + @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) /// Enable debug logging. Useful for debugging issues with the lovely team @RevenueCat. @@ -3430,139 +4326,22 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE /// /// \param data Dictionary provided by the network. /// -/// \param network Enum for the network the data is coming from, see AttributionNetwork for supported -/// networks. -/// -/// \param networkUserId User Id that should be sent to the network. Default is the current App User Id. -/// -+ (void)addAttributionData:(NSDictionary * _Nonnull)data fromNetwork:(enum RCAttributionNetwork)network forNetworkUserId:(NSString * _Nullable)networkUserId SWIFT_DEPRECATED_MSG("Use the set functions instead"); -@end - -@class NSUserDefaults; - -@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) -/// Configures an instance of the Purchases SDK with a specified API key. -/// The instance will be set as a singleton. -/// You should access the singleton instance using Purchases/shared -/// note: -/// Use this initializer if your app does not have an account system. -/// Purchases will generate a unique identifier for the current device and persist it to NSUserDefaults. -/// This also affects the behavior of Purchases/restorePurchases(completion:). -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// -/// returns: -/// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey; -/// Configures an instance of the Purchases SDK with a specified API key and app user ID. -/// The instance will be set as a singleton. -/// You should access the singleton instance using Purchases/shared -/// note: -/// Best practice is to use a salted hash of your unique app user ids. -/// warning: -/// Use this initializer if you have your own user identifiers that you manage. -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// \param appUserID The unique app user id for this user. This user id will allow users to share their -/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases -/// to generate this for you. -/// -/// -/// returns: -/// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID; -/// Configures an instance of the Purchases SDK with a custom UserDefaults. -/// Use this constructor if you want to -/// sync status across a shared container, such as between a host app and an extension. The instance of the -/// Purchases SDK will be set as a singleton. -/// You should access the singleton instance using Purchases/shared -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// \param appUserID The unique app user id for this user. This user id will allow users to share their -/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases -/// to generate this for you. -/// -/// \param observerMode Set this to true if you have your own IAP implementation and want to use only -/// RevenueCat’s backend. Default is false. -/// -/// -/// returns: -/// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode; -/// Configures an instance of the Purchases SDK with a custom UserDefaults. -/// Use this constructor if you want to -/// sync status across a shared container, such as between a host app and an extension. The instance of the -/// Purchases SDK will be set as a singleton. -/// You should access the singleton instance using Purchases/shared -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// \param appUserID The unique app user id for this user. This user id will allow users to share their -/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases -/// to generate this for you. -/// -/// \param observerMode Set this to true if you have your own IAP implementation and want to use only -/// RevenueCat’s backend. Default is false. -/// -/// \param userDefaults Custom UserDefaults to use -/// -/// -/// returns: -/// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults; -/// Configures an instance of the Purchases SDK with a custom userDefaults. -/// Use this constructor if you want to sync status across a shared container, -/// such as between a host app and an extension. -/// The instance of the Purchases SDK will be set as a singleton. -/// You should access the singleton instance using Purchases/shared -/// important: -/// Support for purchases using StoreKit 2 is currently in an experimental phase. -/// We recommend setting this value to false (default) for production apps. -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// \param appUserID The unique app user id for this user. This user id will allow users to share their -/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases -/// to generate this for you. -/// -/// \param observerMode Set this to true if you have your own IAP implementation and want to use only -/// RevenueCat’s backend. Default is false. -/// -/// \param userDefaults Custom UserDefaults to use -/// -/// \param useStoreKit2IfAvailable EXPERIMENTAL. opt in to using StoreKit 2 on devices that support it. -/// Purchases will be made using StoreKit 2 under the hood automatically. -/// -/// -/// returns: -/// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults useStoreKit2IfAvailable:(BOOL)useStoreKit2IfAvailable; -/// Configures an instance of the Purchases SDK with a custom userDefaults. -/// Use this constructor if you want to sync status across a shared container, -/// such as between a host app and an extension. -/// The instance of the Purchases SDK will be set as a singleton. -/// You should access the singleton instance using Purchases/shared -/// important: -/// Support for purchases using StoreKit 2 is currently in an experimental phase. -/// We recommend setting this value to false (default) for production apps. -/// \param apiKey The API Key generated for your app from https://app.revenuecat.com/ -/// -/// \param appUserID The unique app user id for this user. This user id will allow users to share their -/// purchases and subscriptions across devices. Pass nil or an empty string if you want Purchases -/// to generate this for you. -/// -/// \param observerMode Set this to true if you have your own IAP implementation and want to use only -/// RevenueCat’s backend. Default is false. -/// -/// \param userDefaults Custom UserDefaults to use -/// -/// \param dangerousSettings Only use if suggested by RevenueCat support team. -/// -/// \param useStoreKit2IfAvailable EXPERIMENTAL. opt in to using StoreKit 2 on devices that support it. -/// Purchases will be made using StoreKit 2 under the hood automatically. +/// \param network Enum for the network the data is coming from, see AttributionNetwork for supported +/// networks. /// +/// \param networkUserId User Id that should be sent to the network. Default is the current App User Id. /// -/// returns: -/// An instantiated Purchases object that has been set as a singleton. -+ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults useStoreKit2IfAvailable:(BOOL)useStoreKit2IfAvailable dangerousSettings:(RCDangerousSettings * _Nullable)dangerousSettings; ++ (void)addAttributionData:(NSDictionary * _Nonnull)data fromNetwork:(enum RCAttributionNetwork)network forNetworkUserId:(NSString * _Nullable)networkUserId SWIFT_DEPRECATED_MSG("Use the set functions instead"); +@end + + + +@interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID SWIFT_AVAILABILITY(maccatalyst,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(macos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(watchos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(tvos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(ios,deprecated=1,message="'configure' has been renamed to 'configure(with:)'"); ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode SWIFT_AVAILABILITY(maccatalyst,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(macos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(watchos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(tvos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(ios,deprecated=1,message="'configure' has been renamed to 'configure(with:)'"); ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults SWIFT_AVAILABILITY(maccatalyst,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(macos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(watchos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(tvos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(ios,deprecated=1,message="'configure' has been renamed to 'configure(with:)'"); ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults useStoreKit2IfAvailable:(BOOL)useStoreKit2IfAvailable SWIFT_AVAILABILITY(maccatalyst,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(macos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(watchos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(tvos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(ios,deprecated=1,message="'configure' has been renamed to 'configure(with:)'"); ++ (RCPurchases * _Nonnull)configureWithAPIKey:(NSString * _Nonnull)apiKey appUserID:(NSString * _Nullable)appUserID observerMode:(BOOL)observerMode userDefaults:(NSUserDefaults * _Nullable)userDefaults useStoreKit2IfAvailable:(BOOL)useStoreKit2IfAvailable dangerousSettings:(RCDangerousSettings * _Nullable)dangerousSettings SWIFT_AVAILABILITY(maccatalyst,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(macos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(watchos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(tvos,deprecated=1,message="'configure' has been renamed to 'configure(with:)'") SWIFT_AVAILABILITY(ios,deprecated=1,message="'configure' has been renamed to 'configure(with:)'"); @end @@ -3627,10 +4406,8 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE /// - (void)logOutWithCompletion:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; /// Fetch the configured Offerings for this user. -/// \code -/// *``Offerings`` allows you to configure your in-app products -/// -/// \endcodevia RevenueCat and greatly simplifies management. +/// Offerings allows you to configure your in-app products +/// via RevenueCat and greatly simplifies management. /// Offerings will be fetched and cached on instantiation so that, by the time they are needed, /// your prices are loaded for your purchase flow. Time is money. ///

    Related Articles

    @@ -3647,187 +4424,30 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE -@class NSData; @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) -/// Subscriber attributes are useful for storing additional, structured information on a user. -/// Since attributes are writable using a public key they should not be used for -/// managing secure or sensitive information such as subscription status, coins, etc. -/// Key names starting with “$” are reserved names used by RevenueCat. For a full list of key -/// restrictions refer to our guide -/// \param attributes Map of attributes by key. Set the value as an empty string to delete an attribute. -/// -- (void)setAttributes:(NSDictionary * _Nonnull)attributes; -/// Subscriber attribute associated with the email address for the user. -///

    Related Articles

    -/// -/// \param email Empty String or nil will delete the subscriber attribute. -/// -- (void)setEmail:(NSString * _Nullable)email; -/// Subscriber attribute associated with the phone number for the user. -///

    Related Articles

    -/// -/// \param phoneNumber Empty String or nil will delete the subscriber attribute. -/// -- (void)setPhoneNumber:(NSString * _Nullable)phoneNumber; -/// Subscriber attribute associated with the display name for the user. -///

    Related Articles

    -/// -/// \param displayName Empty String or nil will delete the subscriber attribute. -/// -- (void)setDisplayName:(NSString * _Nullable)displayName; -/// Subscriber attribute associated with the push token for the user. -///

    Related Articles

    -/// -/// \param pushToken nil will delete the subscriber attribute. -/// -- (void)setPushToken:(NSData * _Nullable)pushToken; -/// Subscriber attribute associated with the Adjust Id for the user. -/// Required for the RevenueCat Adjust integration. -///

    Related Articles

    -/// -- (void)setAdjustID:(NSString * _Nullable)adjustID; -/// Subscriber attribute associated with the Appsflyer Id for the user. -/// Required for the RevenueCat Appsflyer integration. -///

    Related Articles

    -/// -- (void)setAppsflyerID:(NSString * _Nullable)appsflyerID; -/// Subscriber attribute associated with the Facebook SDK Anonymous Id for the user. -/// Recommended for the RevenueCat Facebook integration. -///

    Related Articles

    -/// -- (void)setFBAnonymousID:(NSString * _Nullable)fbAnonymousID; -/// Subscriber attribute associated with the mParticle Id for the user. -/// Recommended for the RevenueCat mParticle integration. -///

    Related Articles

    -/// -- (void)setMparticleID:(NSString * _Nullable)mparticleID; -/// Subscriber attribute associated with the OneSignal Player ID for the user. -/// Required for the RevenueCat OneSignal integration. -///

    Related Articles

    -/// -- (void)setOnesignalID:(NSString * _Nullable)onesignalID; -/// Subscriber attribute associated with the Airship Channel ID for the user. -/// Required for the RevenueCat Airship integration. -///

    Related Articles

    -/// -- (void)setAirshipChannelID:(NSString * _Nullable)airshipChannelID; -/// Subscriber attribute associated with the CleverTap ID for the user. -/// Required for the RevenueCat CleverTap integration. -///

    Related Articles

    -/// -- (void)setCleverTapID:(NSString * _Nullable)cleverTapID; -/// Subscriber attribute associated with the install media source for the user. -///

    Related Articles

    -/// -/// \param mediaSource Empty String or nil will delete the subscriber attribute. -/// -- (void)setMediaSource:(NSString * _Nullable)mediaSource; -/// Subscriber attribute associated with the install campaign for the user. -///

    Related Articles

    -/// -/// \param campaign Empty String or nil will delete the subscriber attribute. -/// -- (void)setCampaign:(NSString * _Nullable)campaign; -/// Subscriber attribute associated with the install ad group for the user -///

    Related Articles

    -/// -/// \param adGroup Empty String or nil will delete the subscriber attribute. -/// -- (void)setAdGroup:(NSString * _Nullable)adGroup; -/// Subscriber attribute associated with the install ad for the user -///

    Related Articles

    -/// -/// \param installAd Empty String or nil will delete the subscriber attribute. -/// -- (void)setAd:(NSString * _Nullable)installAd; -/// Subscriber attribute associated with the install keyword for the user -///

    Related Articles

    -/// -/// \param keyword Empty String or nil will delete the subscriber attribute. -/// -- (void)setKeyword:(NSString * _Nullable)keyword; -/// Subscriber attribute associated with the install ad creative for the user. -///

    Related Articles

    -/// -/// \param creative Empty String or nil will delete the subscriber attribute. -/// -- (void)setCreative:(NSString * _Nullable)creative; +- (void)collectDeviceIdentifiers SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'collectDeviceIdentifiers' has been renamed to 'attribution.collectDeviceIdentifiers()'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'collectDeviceIdentifiers' has been renamed to 'attribution.collectDeviceIdentifiers()'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'collectDeviceIdentifiers' has been renamed to 'attribution.collectDeviceIdentifiers()'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'collectDeviceIdentifiers' has been renamed to 'attribution.collectDeviceIdentifiers()'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'collectDeviceIdentifiers' has been renamed to 'attribution.collectDeviceIdentifiers()'"); +- (void)setAttributes:(NSDictionary * _Nonnull)attributes SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAttributes' has been renamed to 'attribution.setAttributes(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAttributes' has been renamed to 'attribution.setAttributes(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAttributes' has been renamed to 'attribution.setAttributes(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAttributes' has been renamed to 'attribution.setAttributes(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAttributes' has been renamed to 'attribution.setAttributes(_:)'"); +- (void)setEmail:(NSString * _Nullable)email SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setEmail' has been renamed to 'attribution.setEmail(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setEmail' has been renamed to 'attribution.setEmail(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setEmail' has been renamed to 'attribution.setEmail(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setEmail' has been renamed to 'attribution.setEmail(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setEmail' has been renamed to 'attribution.setEmail(_:)'"); +- (void)setPhoneNumber:(NSString * _Nullable)phoneNumber SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setPhoneNumber' has been renamed to 'attribution.setPhoneNumber(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setPhoneNumber' has been renamed to 'attribution.setPhoneNumber(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setPhoneNumber' has been renamed to 'attribution.setPhoneNumber(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setPhoneNumber' has been renamed to 'attribution.setPhoneNumber(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setPhoneNumber' has been renamed to 'attribution.setPhoneNumber(_:)'"); +- (void)setDisplayName:(NSString * _Nullable)displayName SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setDisplayName' has been renamed to 'attribution.setDisplayName(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setDisplayName' has been renamed to 'attribution.setDisplayName(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setDisplayName' has been renamed to 'attribution.setDisplayName(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setDisplayName' has been renamed to 'attribution.setDisplayName(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setDisplayName' has been renamed to 'attribution.setDisplayName(_:)'"); +- (void)setPushToken:(NSData * _Nullable)pushToken SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setPushToken' has been renamed to 'attribution.setPushToken(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setPushToken' has been renamed to 'attribution.setPushToken(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setPushToken' has been renamed to 'attribution.setPushToken(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setPushToken' has been renamed to 'attribution.setPushToken(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setPushToken' has been renamed to 'attribution.setPushToken(_:)'"); +- (void)setPushTokenString:(NSString * _Nullable)pushToken SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setPushTokenString' has been renamed to 'attribution.setPushTokenString(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setPushTokenString' has been renamed to 'attribution.setPushTokenString(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setPushTokenString' has been renamed to 'attribution.setPushTokenString(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setPushTokenString' has been renamed to 'attribution.setPushTokenString(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setPushTokenString' has been renamed to 'attribution.setPushTokenString(_:)'"); +- (void)setAdjustID:(NSString * _Nullable)adjustID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAdjustID' has been renamed to 'attribution.setAdjustID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAdjustID' has been renamed to 'attribution.setAdjustID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAdjustID' has been renamed to 'attribution.setAdjustID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAdjustID' has been renamed to 'attribution.setAdjustID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAdjustID' has been renamed to 'attribution.setAdjustID(_:)'"); +- (void)setAppsflyerID:(NSString * _Nullable)appsflyerID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAppsflyerID' has been renamed to 'attribution.setAppsflyerID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAppsflyerID' has been renamed to 'attribution.setAppsflyerID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAppsflyerID' has been renamed to 'attribution.setAppsflyerID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAppsflyerID' has been renamed to 'attribution.setAppsflyerID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAppsflyerID' has been renamed to 'attribution.setAppsflyerID(_:)'"); +- (void)setFBAnonymousID:(NSString * _Nullable)fbAnonymousID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setFBAnonymousID' has been renamed to 'attribution.setFBAnonymousID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setFBAnonymousID' has been renamed to 'attribution.setFBAnonymousID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setFBAnonymousID' has been renamed to 'attribution.setFBAnonymousID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setFBAnonymousID' has been renamed to 'attribution.setFBAnonymousID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setFBAnonymousID' has been renamed to 'attribution.setFBAnonymousID(_:)'"); +- (void)setMparticleID:(NSString * _Nullable)mparticleID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setMparticleID' has been renamed to 'attribution.setMparticleID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setMparticleID' has been renamed to 'attribution.setMparticleID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setMparticleID' has been renamed to 'attribution.setMparticleID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setMparticleID' has been renamed to 'attribution.setMparticleID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setMparticleID' has been renamed to 'attribution.setMparticleID(_:)'"); +- (void)setOnesignalID:(NSString * _Nullable)onesignalID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setOnesignalID' has been renamed to 'attribution.setOnesignalID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setOnesignalID' has been renamed to 'attribution.setOnesignalID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setOnesignalID' has been renamed to 'attribution.setOnesignalID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setOnesignalID' has been renamed to 'attribution.setOnesignalID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setOnesignalID' has been renamed to 'attribution.setOnesignalID(_:)'"); +- (void)setAirshipChannelID:(NSString * _Nullable)airshipChannelID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAirshipChannelID' has been renamed to 'attribution.setAirshipChannelID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAirshipChannelID' has been renamed to 'attribution.setAirshipChannelID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAirshipChannelID' has been renamed to 'attribution.setAirshipChannelID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAirshipChannelID' has been renamed to 'attribution.setAirshipChannelID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAirshipChannelID' has been renamed to 'attribution.setAirshipChannelID(_:)'"); +- (void)setCleverTapID:(NSString * _Nullable)cleverTapID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setCleverTapID' has been renamed to 'attribution.setCleverTapID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setCleverTapID' has been renamed to 'attribution.setCleverTapID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setCleverTapID' has been renamed to 'attribution.setCleverTapID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setCleverTapID' has been renamed to 'attribution.setCleverTapID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setCleverTapID' has been renamed to 'attribution.setCleverTapID(_:)'"); +- (void)setMixpanelDistinctID:(NSString * _Nullable)mixpanelDistinctID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setMixpanelDistinctID' has been renamed to 'attribution.setMixpanelDistinctID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setMixpanelDistinctID' has been renamed to 'attribution.setMixpanelDistinctID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setMixpanelDistinctID' has been renamed to 'attribution.setMixpanelDistinctID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setMixpanelDistinctID' has been renamed to 'attribution.setMixpanelDistinctID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setMixpanelDistinctID' has been renamed to 'attribution.setMixpanelDistinctID(_:)'"); +- (void)setFirebaseAppInstanceID:(NSString * _Nullable)firebaseAppInstanceID SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setFirebaseAppInstanceID' has been renamed to 'attribution.setFirebaseAppInstanceID(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setFirebaseAppInstanceID' has been renamed to 'attribution.setFirebaseAppInstanceID(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setFirebaseAppInstanceID' has been renamed to 'attribution.setFirebaseAppInstanceID(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setFirebaseAppInstanceID' has been renamed to 'attribution.setFirebaseAppInstanceID(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setFirebaseAppInstanceID' has been renamed to 'attribution.setFirebaseAppInstanceID(_:)'"); +- (void)setMediaSource:(NSString * _Nullable)mediaSource SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setMediaSource' has been renamed to 'attribution.setMediaSource(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setMediaSource' has been renamed to 'attribution.setMediaSource(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setMediaSource' has been renamed to 'attribution.setMediaSource(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setMediaSource' has been renamed to 'attribution.setMediaSource(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setMediaSource' has been renamed to 'attribution.setMediaSource(_:)'"); +- (void)setCampaign:(NSString * _Nullable)campaign SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setCampaign' has been renamed to 'attribution.setCampaign(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setCampaign' has been renamed to 'attribution.setCampaign(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setCampaign' has been renamed to 'attribution.setCampaign(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setCampaign' has been renamed to 'attribution.setCampaign(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setCampaign' has been renamed to 'attribution.setCampaign(_:)'"); +- (void)setAdGroup:(NSString * _Nullable)adGroup SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAdGroup' has been renamed to 'attribution.setAdGroup(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAdGroup' has been renamed to 'attribution.setAdGroup(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAdGroup' has been renamed to 'attribution.setAdGroup(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAdGroup' has been renamed to 'attribution.setAdGroup(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAdGroup' has been renamed to 'attribution.setAdGroup(_:)'"); +- (void)setAd:(NSString * _Nullable)installAd SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setAd' has been renamed to 'attribution.setAd(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setAd' has been renamed to 'attribution.setAd(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setAd' has been renamed to 'attribution.setAd(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setAd' has been renamed to 'attribution.setAd(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setAd' has been renamed to 'attribution.setAd(_:)'"); +- (void)setKeyword:(NSString * _Nullable)keyword SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setKeyword' has been renamed to 'attribution.setKeyword(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setKeyword' has been renamed to 'attribution.setKeyword(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setKeyword' has been renamed to 'attribution.setKeyword(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setKeyword' has been renamed to 'attribution.setKeyword(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setKeyword' has been renamed to 'attribution.setKeyword(_:)'"); +- (void)setCreative:(NSString * _Nullable)creative SWIFT_AVAILABILITY(maccatalyst,deprecated=0.0.1,message="'setCreative' has been renamed to 'attribution.setCreative(_:)'") SWIFT_AVAILABILITY(macos,deprecated=0.0.1,message="'setCreative' has been renamed to 'attribution.setCreative(_:)'") SWIFT_AVAILABILITY(watchos,deprecated=0.0.1,message="'setCreative' has been renamed to 'attribution.setCreative(_:)'") SWIFT_AVAILABILITY(tvos,deprecated=0.0.1,message="'setCreative' has been renamed to 'attribution.setCreative(_:)'") SWIFT_AVAILABILITY(ios,deprecated=0.0.1,message="'setCreative' has been renamed to 'attribution.setCreative(_:)'"); @end @class SKPaymentDiscount; @@ -3914,7 +4534,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE /// If the purchase was not successful, there will be an NSError. /// If the user cancelled, userCancelled will be YES. /// -- (void)purchasePackage:(RCPackage * _Nonnull)package withDiscount:(SKPaymentDiscount * _Nonnull)discount completionBlock:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(macos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(watchos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(tvos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(ios,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'"); +- (void)purchasePackage:(RCPackage * _Nonnull)package withDiscount:(SKPaymentDiscount * _Nonnull)discount completionBlock:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(maccatalyst,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(macos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(watchos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(tvos,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(ios,unavailable,message="'purchasePackage' has been renamed to 'purchasePackage:withPromotionalOffer:completion:'"); /// Use this function if you are not using the Offerings system to purchase an SKProduct. /// If you are using the Offerings system, use -[RCPurchases purchasePackage:withCompletionBlock] instead. /// Call this method when a user has decided to purchase a product. Only call this in direct response to user input. @@ -3944,8 +4564,8 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE /// If the purchase was not successful, there will be an NSError. /// If the user cancelled, userCancelled will be YES. /// -- (void)purchaseProduct:(SKProduct * _Nonnull)product withDiscount:(SKPaymentDiscount * _Nonnull)discount completionBlock:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(macos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(watchos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(tvos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(ios,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'"); -- (void)invalidatePurchaserInfoCache SWIFT_AVAILABILITY(macos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'"); +- (void)purchaseProduct:(SKProduct * _Nonnull)product withDiscount:(SKPaymentDiscount * _Nonnull)discount completionBlock:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(maccatalyst,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(macos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(watchos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(tvos,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'") SWIFT_AVAILABILITY(ios,unavailable,message="'purchaseProduct' has been renamed to 'purchaseProduct:withPromotionalOffer:completion:'"); +- (void)invalidatePurchaserInfoCache SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(macos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'invalidatePurchaserInfoCache' has been renamed to 'invalidateCustomerInfoCache'"); /// Computes whether or not a user is eligible for the introductory pricing period of a given product. /// You should use this method to determine whether or not you show the user the normal product price or /// the introductory price. This also applies to trials (trials are considered a type of introductory pricing). @@ -3963,7 +4583,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE /// /// \param completion A block that receives a dictionary of product_id -> IntroEligibility. /// -- (void)checkTrialOrIntroductoryPriceEligibility:(NSArray * _Nonnull)productIdentifiers completion:(void (^ _Nonnull)(NSDictionary * _Nonnull))completion SWIFT_AVAILABILITY(macos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'"); +- (void)checkTrialOrIntroductoryPriceEligibility:(NSArray * _Nonnull)productIdentifiers completion:(void (^ _Nonnull)(NSDictionary * _Nonnull))completion SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(macos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'checkTrialOrIntroductoryPriceEligibility' has been renamed to 'checkTrialOrIntroDiscountEligibility(_:completion:)'"); /// Use this function to retrieve the SKPaymentDiscount for a given SKProduct. /// \param discount The SKProductDiscount to apply to the product. /// @@ -3972,7 +4592,8 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE /// \param completion A completion block that is called when the SKPaymentDiscount is returned. /// If it was not successful, there will be an Error. /// -- (void)paymentDiscountForProductDiscount:(SKProductDiscount * _Nonnull)discount product:(SKProduct * _Nonnull)product completion:(void (^ _Nonnull)(SKPaymentDiscount * _Nullable, NSError * _Nullable))completion SWIFT_AVAILABILITY(macos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(watchos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(tvos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(ios,unavailable,message="Check eligibility for a discount using getPromotionalOffer:"); +- (void)paymentDiscountForProductDiscount:(SKProductDiscount * _Nonnull)discount product:(SKProduct * _Nonnull)product completion:(void (^ _Nonnull)(SKPaymentDiscount * _Nullable, NSError * _Nullable))completion SWIFT_AVAILABILITY(maccatalyst,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(macos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(watchos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(tvos,unavailable,message="Check eligibility for a discount using getPromotionalOffer:") SWIFT_AVAILABILITY(ios,unavailable,message="Check eligibility for a discount using getPromotionalOffer:"); +- (void)shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))defermentBlock SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") SWIFT_AVAILABILITY(macos,obsoleted=1,message="This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") SWIFT_AVAILABILITY(ios,obsoleted=1,message="This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`"); /// This function will alias two appUserIDs together. /// \param alias The new appUserID that should be linked to the currently identified appUserID /// @@ -3993,7 +4614,6 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE - (void)resetWithCompletionBlock:(void (^ _Nullable)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion SWIFT_AVAILABILITY(macos,obsoleted=1,message="'reset' has been renamed to 'logOutWithCompletion:'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'reset' has been renamed to 'logOutWithCompletion:'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'reset' has been renamed to 'logOutWithCompletion:'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'reset' has been renamed to 'logOutWithCompletion:'"); @end -@class RCStoreProductDiscount; enum RCRefundRequestStatus : NSInteger; @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) @@ -4002,6 +4622,12 @@ enum RCRefundRequestStatus : NSInteger; /// Called immediately if CustomerInfo is cached. Customer info can be nil if an error occurred. /// - (void)getCustomerInfoWithCompletion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; +/// Get latest available customer info. +/// \param fetchPolicy The behavior for what to do regarding caching. +/// +/// \param completion A completion block called when customer info is available and not stale. +/// +- (void)getCustomerInfoWithFetchPolicy:(enum RCCacheFetchPolicy)fetchPolicy completion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, NSError * _Nullable))completion; /// Fetches the StoreProducts for your IAPs for given productIdentifiers. /// Use this method if you aren’t using getOfferings(completion:). /// You should use getOfferings(completion:) though. @@ -4075,10 +4701,10 @@ enum RCRefundRequestStatus : NSInteger; /// StoreProduct/discounts /// ///
  • -/// StoreProduct/getEligiblePromotionalOffers() +/// StoreProduct/eligiblePromotionalOffers() ///
  • ///
  • -/// getPromotionalOffer(forProductDiscount:product:) +/// promotionalOffer(forProductDiscount:product:) ///
  • /// /// \param product The StoreProduct the user intends to purchase. @@ -4087,7 +4713,7 @@ enum RCRefundRequestStatus : NSInteger; /// /// \param completion A completion block that is called when the purchase completes. /// -- (void)purchaseProduct:(RCStoreProduct * _Nonnull)product withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); +- (void)purchaseProduct:(RCStoreProduct * _Nonnull)product withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(maccatalyst,introduced=13.0) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); /// Purchase the passed Package. /// Call this method when a user has decided to purchase a product with an applied discount. Only call this in /// direct response to user input. From here Purchases will handle the purchase with StoreKit and call the @@ -4104,7 +4730,7 @@ enum RCRefundRequestStatus : NSInteger; /// /// \param completion A completion block that is called when the purchase completes. /// -- (void)purchasePackage:(RCPackage * _Nonnull)package withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); +- (void)purchasePackage:(RCPackage * _Nonnull)package withPromotionalOffer:(RCPromotionalOffer * _Nonnull)promotionalOffer completion:(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL))completion SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(maccatalyst,introduced=13.0) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); /// This method will post all purchases associated with the current App Store account to RevenueCat and /// become associated with the current appUserID. /// If the receipt is being used by an existing user, the current appUserID will be aliased together with @@ -4176,6 +4802,25 @@ enum RCRefundRequestStatus : NSInteger; /// \param completion A block that receives an IntroEligibilityStatus. /// - (void)checkTrialOrIntroDiscountEligibilityForProduct:(RCStoreProduct * _Nonnull)product completion:(void (^ _Nonnull)(enum RCIntroEligibilityStatus))completion; +/// Displays price consent sheet if needed. You only need to call this manually if you implement +/// PurchasesDelegate/shouldShowPriceConsent and return false at some point. +/// You may want to delay showing the sheet if it would interrupt your user’s interaction in your app. You can do +/// this by implementing PurchasesDelegate/shouldShowPriceConsent. +/// In most cases, you don’t typically implement PurchasesDelegate/shouldShowPriceConsent, therefore, +/// you won’t need to call this. +///

    Related Symbols

    +///
      +///
    • +/// ``SKPaymentQueue/showPriceConsentIfNeeded()` +///
    • +///
    +///

    Related Articles

    +/// +- (void)showPriceConsentIfNeeded SWIFT_AVAILABILITY(maccatalyst,introduced=13.4) SWIFT_AVAILABILITY(ios,introduced=13.4); /// Invalidates the cache for customer information. /// Most apps will not need to use this method; invalidating the cache can leave your app in an invalid state. /// Refer to @@ -4185,7 +4830,7 @@ enum RCRefundRequestStatus : NSInteger; /// promotional subscription is granted through the RevenueCat dashboard. - (void)invalidateCustomerInfoCache; /// Displays a sheet that enables users to redeem subscription offer codes that you generated in App Store Connect. -- (void)presentCodeRedemptionSheet SWIFT_AVAILABILITY(macos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(ios,introduced=14.0); +- (void)presentCodeRedemptionSheet SWIFT_AVAILABILITY(maccatalyst,unavailable) SWIFT_AVAILABILITY(macos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(ios,introduced=14.0); /// Use this method to fetch PromotionalOffer /// to use in purchase(package:promotionalOffer:) or purchase(product:promotionalOffer:). /// iOS Promotional Offers. @@ -4199,7 +4844,7 @@ enum RCRefundRequestStatus : NSInteger; /// \param completion A completion block that is called when the PromotionalOffer is returned. /// If it was not successful, there will be an Error. /// -- (void)getPromotionalOfferForProductDiscount:(RCStoreProductDiscount * _Nonnull)discount withProduct:(RCStoreProduct * _Nonnull)product withCompletion:(void (^ _Nonnull)(RCPromotionalOffer * _Nullable, NSError * _Nullable))completion SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); +- (void)getPromotionalOfferForProductDiscount:(RCStoreProductDiscount * _Nonnull)discount withProduct:(RCStoreProduct * _Nonnull)product withCompletion:(void (^ _Nonnull)(RCPromotionalOffer * _Nullable, NSError * _Nullable))completion SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=12.2) SWIFT_AVAILABILITY(maccatalyst,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.14.4) SWIFT_AVAILABILITY(ios,introduced=12.2); /// Use this function to open the manage subscriptions page. /// If the manage subscriptions page can’t be opened, the CustomerInfo/managementURL in /// the CustomerInfo will be opened. If CustomerInfo/managementURL is not available, @@ -4208,8 +4853,10 @@ enum RCRefundRequestStatus : NSInteger; /// This is because of an undocumented change in StoreKit’s behavior between iOS 15.0 and 15.2, /// where 15.0 would return when the modal was closed, /// and 15.2 returns when the modal is opened. -/// \param completion A completion block that is called when the modal is closed. -/// If it was not successful, there will be an Error. +/// \param completion A completion block that will be called when the modal is opened, +/// not when it’s actually closed. This is because of an undocumented change in StoreKit’s behavior +/// between iOS 15.0 and 15.2, where 15.0 would return when the modal was closed, and 15.2 returns +/// when the modal is opened. /// - (void)showManageSubscriptionsWithCompletion:(void (^ _Nonnull)(NSError * _Nullable))completion SWIFT_AVAILABILITY(macos,introduced=10.15) SWIFT_AVAILABILITY(ios,introduced=13.0) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(watchos,unavailable); /// Presents a refund request sheet in the current window scene for @@ -4270,18 +4917,43 @@ SWIFT_PROTOCOL_NAMED("PurchasesDelegate") - (void)purchases:(RCPurchases * _Nonnull)purchases receivedUpdatedCustomerInfo:(RCCustomerInfo * _Nonnull)customerInfo; /// Called when a user initiates a promotional in-app purchase from the App Store. /// If your app is able to handle a purchase at the current time, run the deferment block in this method. -/// If the app is not in a state to make a purchase: cache the defermentBlock, -/// then call the defermentBlock when the app is ready to make the promotional purchase. -/// If the purchase should never be made, you don’t need to ever call the defermentBlock and -/// Purchases will not proceed with promotional purchases. +/// If the app is not in a state to make a purchase: cache the startPurchase block, +/// then call the startPurchase block when the app is ready to make the promotional purchase. +/// If the purchase should never be made, you don’t need to ever call the block and +/// Purchases will not proceed with the promotional purchase. +/// This can be tested by opening a link like: +/// itms-services://?action=purchaseIntent&bundleId=&productIdentifier= +///

    Related Articles:

    +/// /// \param product StoreProduct the product that was selected from the app store /// -- (void)purchases:(RCPurchases * _Nonnull)purchases shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))makeDeferredPurchase; +/// \param startPurchase call this block when the app is ready to handle the purchase +/// +- (void)purchases:(RCPurchases * _Nonnull)purchases readyForPromotedProduct:(RCStoreProduct * _Nonnull)product purchase:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))startPurchase; +- (void)purchases:(RCPurchases * _Nonnull)purchases shouldPurchasePromoProduct:(RCStoreProduct * _Nonnull)product defermentBlock:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))makeDeferredPurchase SWIFT_AVAILABILITY(maccatalyst,obsoleted=1,message="'purchases' has been renamed to 'purchases:readyForPromotedProduct:purchase:'") SWIFT_AVAILABILITY(macos,obsoleted=1,message="'purchases' has been renamed to 'purchases:readyForPromotedProduct:purchase:'") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'purchases' has been renamed to 'purchases:readyForPromotedProduct:purchase:'") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'purchases' has been renamed to 'purchases:readyForPromotedProduct:purchase:'") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'purchases' has been renamed to 'purchases:readyForPromotedProduct:purchase:'"); +/// The default return value for this optional method is true. By default, the system displays the price consent +/// sheet when you increase the subscription price in App Store Connect and the subscriber hasn’t yet taken action. +/// The system calls your delegate’s method, if appropriate, when RevenueCat starts observing the SKPaymentQueue, +/// and any time the app comes to foreground. +/// If you return false, the system won’t show the price consent sheet. You can choose to display it later by +/// calling Purchases/showPriceConsentIfNeeded(). +/// You may want to delay showing the sheet if it would interrupt your user’s interaction in your app. +///

    Related Articles

    +/// +@property (nonatomic, readonly) BOOL shouldShowPriceConsent SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(macos,unavailable) SWIFT_AVAILABILITY(maccatalyst,introduced=13.4) SWIFT_AVAILABILITY(ios,introduced=13.4); @end -SWIFT_CLASS("_TtC10RevenueCat21RCPurchasesErrorUtils") SWIFT_AVAILABILITY(macos,obsoleted=1) SWIFT_AVAILABILITY(watchos,obsoleted=1) SWIFT_AVAILABILITY(tvos,obsoleted=1) SWIFT_AVAILABILITY(ios,obsoleted=1) +SWIFT_CLASS("_TtC10RevenueCat21RCPurchasesErrorUtils") SWIFT_AVAILABILITY(maccatalyst,obsoleted=1) SWIFT_AVAILABILITY(macos,obsoleted=1) SWIFT_AVAILABILITY(watchos,obsoleted=1) SWIFT_AVAILABILITY(tvos,obsoleted=1) SWIFT_AVAILABILITY(ios,obsoleted=1) @interface RCPurchasesErrorUtils : NSObject - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end @@ -4298,6 +4970,9 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCRefundRequestStatus, "RefundRequestStatus" + + + /// Enum of supported stores typedef SWIFT_ENUM_NAMED(NSInteger, RCStore, "Store", open) { /// For entitlements granted via Apple App Store. @@ -4312,6 +4987,8 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCStore, "Store", open) { RCPromotional SWIFT_COMPILE_NAME("promotional") = 4, /// For entitlements granted via an unknown store. RCUnknownStore SWIFT_COMPILE_NAME("unknownStore") = 5, +/// For entitlements granted via the Amazon Store. + RCAmazon SWIFT_COMPILE_NAME("amazon") = 6, }; @@ -4343,6 +5020,8 @@ SWIFT_CLASS("_TtC10RevenueCat15StoreKitWrapper") - (void)paymentQueue:(SKPaymentQueue * _Nonnull)queue removedTransactions:(NSArray * _Nonnull)transactions; - (BOOL)paymentQueue:(SKPaymentQueue * _Nonnull)queue shouldAddStorePayment:(SKPayment * _Nonnull)payment forProduct:(SKProduct * _Nonnull)product SWIFT_WARN_UNUSED_RESULT SWIFT_AVAILABILITY(watchos,unavailable); - (void)paymentQueue:(SKPaymentQueue * _Nonnull)queue didRevokeEntitlementsForProductIdentifiers:(NSArray * _Nonnull)productIdentifiers SWIFT_AVAILABILITY(watchos,introduced=7.0) SWIFT_AVAILABILITY(tvos,introduced=14.0) SWIFT_AVAILABILITY(macos,introduced=11.0) SWIFT_AVAILABILITY(ios,introduced=14.0); +- (BOOL)paymentQueueShouldShowPriceConsent:(SKPaymentQueue * _Nonnull)paymentQueue SWIFT_WARN_UNUSED_RESULT SWIFT_AVAILABILITY(maccatalyst,introduced=13.4) SWIFT_AVAILABILITY(ios,introduced=13.4); +- (void)paymentQueueDidChangeStorefront:(SKPaymentQueue * _Nonnull)queue; @end enum RCStoreProductType : NSInteger; @@ -4363,7 +5042,7 @@ SWIFT_CLASS_NAMED("StoreProduct") @property (nonatomic, readonly, copy) NSString * _Nonnull localizedPriceString; @property (nonatomic, readonly, copy) NSString * _Nonnull productIdentifier; @property (nonatomic, readonly) BOOL isFamilyShareable SWIFT_AVAILABILITY(watchos,introduced=8.0) SWIFT_AVAILABILITY(tvos,introduced=14.0) SWIFT_AVAILABILITY(macos,introduced=11.0) SWIFT_AVAILABILITY(ios,introduced=14.0); -@property (nonatomic, readonly, copy) NSString * _Nullable subscriptionGroupIdentifier SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14) SWIFT_AVAILABILITY(tvos,introduced=12.0) SWIFT_AVAILABILITY(ios,introduced=12.0); +@property (nonatomic, readonly, copy) NSString * _Nullable subscriptionGroupIdentifier SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(macos,introduced=10.14) SWIFT_AVAILABILITY(tvos,introduced=12.0) SWIFT_AVAILABILITY(maccatalyst,introduced=13.0) SWIFT_AVAILABILITY(ios,introduced=12.0); @property (nonatomic, readonly, strong) NSNumberFormatter * _Nullable priceFormatter; @property (nonatomic, readonly, strong) RCSubscriptionPeriod * _Nullable subscriptionPeriod SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=11.2) SWIFT_AVAILABILITY(macos,introduced=10.13.2) SWIFT_AVAILABILITY(ios,introduced=11.2); @property (nonatomic, readonly, strong) RCStoreProductDiscount * _Nullable introductoryDiscount SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=11.2) SWIFT_AVAILABILITY(macos,introduced=10.13.2) SWIFT_AVAILABILITY(ios,introduced=11.2); @@ -4374,6 +5053,7 @@ SWIFT_CLASS_NAMED("StoreProduct") + @interface RCStoreProduct (SWIFT_EXTENSION(RevenueCat)) @end @@ -4418,13 +5098,6 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCStoreProductType, "ProductType", open) { @property (nonatomic, readonly, copy) NSLocale * _Nonnull priceLocale SWIFT_AVAILABILITY(macos,unavailable,message="Use localizedPriceString instead") SWIFT_AVAILABILITY(watchos,unavailable,message="Use localizedPriceString instead") SWIFT_AVAILABILITY(tvos,unavailable,message="Use localizedPriceString instead") SWIFT_AVAILABILITY(ios,unavailable,message="Use localizedPriceString instead"); @end - -@interface RCStoreProduct (SWIFT_EXTENSION(RevenueCat)) -- (nonnull instancetype)initWithSk1Product:(SKProduct * _Nonnull)sk1Product; -/// Returns the SKProduct if this StoreProduct represents a StoreKit.SKProduct. -@property (nonatomic, readonly, strong) SKProduct * _Nullable sk1Product; -@end - @class NSDecimalNumber; @interface RCStoreProduct (SWIFT_EXTENSION(RevenueCat)) @@ -4432,8 +5105,12 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCStoreProductType, "ProductType", open) { /// For a string representation of the price to display to customers, use localizedPriceString. /// note: /// this is meant for Objective-C. For Swift, use price instead. -/// seealso: -/// pricePerMonth. +///

    Related Symbols

    +///
      +///
    • +/// pricePerMonth +///
    • +///
    @property (nonatomic, readonly, strong) NSDecimalNumber * _Nonnull price; /// Calculates the price of this subscription product per month. /// @@ -4447,6 +5124,13 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCStoreProductType, "ProductType", open) { @property (nonatomic, readonly, copy) NSString * _Nullable localizedIntroductoryPriceString; @end + +@interface RCStoreProduct (SWIFT_EXTENSION(RevenueCat)) +- (nonnull instancetype)initWithSk1Product:(SKProduct * _Nonnull)sk1Product; +/// Returns the SKProduct if this StoreProduct represents a StoreKit.SKProduct. +@property (nonatomic, readonly, strong) SKProduct * _Nullable sk1Product; +@end + enum RCPaymentMode : NSInteger; enum RCDiscountType : NSInteger; @@ -4460,6 +5144,7 @@ SWIFT_CLASS_NAMED("StoreProductDiscount") @property (nonatomic, readonly, copy) NSString * _Nonnull localizedPriceString; @property (nonatomic, readonly) enum RCPaymentMode paymentMode; @property (nonatomic, readonly, strong) RCSubscriptionPeriod * _Nonnull subscriptionPeriod; +@property (nonatomic, readonly) NSInteger numberOfPeriods; @property (nonatomic, readonly) enum RCDiscountType type; - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; @property (nonatomic, readonly) NSUInteger hash; @@ -4507,7 +5192,9 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCDiscountType, "DiscountType", open) { @end -/// Abstract class that provides access to all of StoreKit’s product type’s properties. +/// Abstract class that provides access to properties of a transaction. +/// StoreTransactions can represent transactions from StoreKit 1, StoreKit 2 or +/// transactions made from other places, like Stripe, Google Play or Amazon Store. SWIFT_CLASS_NAMED("StoreTransaction") @interface RCStoreTransaction : NSObject @property (nonatomic, readonly, copy) NSString * _Nonnull productIdentifier; @@ -4533,6 +5220,38 @@ SWIFT_CLASS_NAMED("StoreTransaction") @property (nonatomic, readonly, strong) SKPaymentTransaction * _Nullable sk1Transaction; @end + +/// An object containing the location and unique identifier of an Apple App Store storefront. +/// note: +/// Don’t save the storefront information with your user information; storefront information can change +/// at any time. Always get the storefront identifier immediately before you display product information or availability +/// to the user in your app. Storefront information may not be used to develop or enhance a user profile, +/// or track customers for advertising or marketing purposes. +SWIFT_CLASS_NAMED("Storefront") +@interface RCStorefront : NSObject +@property (nonatomic, readonly, copy) NSString * _Nonnull countryCode; +@property (nonatomic, readonly, copy) NSString * _Nonnull identifier; +- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; +@property (nonatomic, readonly) NSUInteger hash; +@property (nonatomic, readonly, copy) NSString * _Nonnull description; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@class SKStorefront; + +@interface RCStorefront (SWIFT_EXTENSION(RevenueCat)) +/// Returns the SKStorefront if this Storefront represents an SKStorefront. +@property (nonatomic, readonly, strong) SKStorefront * _Nullable sk1Storefront SWIFT_AVAILABILITY(maccatalyst,introduced=13.1) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.15) SWIFT_AVAILABILITY(ios,introduced=13.0); +@end + + +@interface RCStorefront (SWIFT_EXTENSION(RevenueCat)) +/// The current App Store storefront for the device obtained from StoreKit 1 only. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) RCStorefront * _Nullable sk1CurrentStorefront SWIFT_AVAILABILITY(maccatalyst,introduced=13.1) SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.15) SWIFT_AVAILABILITY(ios,introduced=13.0);) ++ (RCStorefront * _Nullable)sk1CurrentStorefront SWIFT_WARN_UNUSED_RESULT; +@end + enum RCSubscriptionPeriodUnit : NSInteger; /// The duration of time between subscription renewals. @@ -4564,6 +5283,7 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCSubscriptionPeriodUnit, "Unit", open) { + @interface RCSubscriptionPeriod (SWIFT_EXTENSION(RevenueCat)) @property (nonatomic, readonly, copy) NSString * _Nonnull debugDescription; @end diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Info.plist b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Info.plist index ac96273..ffe96db 100644 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Info.plist and b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Info.plist differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo index a3a9393..fdd0adb 100644 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo and b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/Project/x86_64.swiftsourceinfo b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/Project/x86_64.swiftsourceinfo deleted file mode 100644 index a3a9393..0000000 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/Project/x86_64.swiftsourceinfo and /dev/null differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftdoc b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftdoc index 018153a..deccfb7 100644 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftdoc and b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftinterface b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftinterface index 1e3745f..f1267ca 100644 --- a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftinterface +++ b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftinterface @@ -1,5 +1,5 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30) +// swift-compiler-version: Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8) // swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name RevenueCat import Foundation @_exported import RevenueCat @@ -47,6 +47,7 @@ extension RevenueCat.Offering : Swift.Identifiable { } public typealias ID = Swift.String } +infix operator ??? : DefaultPrecedence @_hasMissingDesignatedInitializers @objc(RCOfferings) public class Offerings : ObjectiveC.NSObject { @objc final public let all: [Swift.String : RevenueCat.Offering] @objc public var current: RevenueCat.Offering? { @@ -61,6 +62,74 @@ extension RevenueCat.Offering : Swift.Identifiable { } @objc deinit } +@_hasMissingDesignatedInitializers @objc(RCStorefront) public class Storefront : ObjectiveC.NSObject { + @objc public var countryCode: Swift.String { + @objc get + } + @objc public var identifier: Swift.String { + @objc get + } + @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool + @objc override dynamic public var hash: Swift.Int { + @objc get + } + @objc override dynamic public var description: Swift.String { + @objc get + } + @objc deinit +} +extension RevenueCat.Storefront { + + #if compiler(>=5.3) && $EffectfulProp + @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, macCatalyst 13.1, *) + public static var currentStorefront: RevenueCat.Storefront? { + get async + } + #endif + + @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, macCatalyst 13.1, *) + @available(swift, obsoleted: 0.0.1, renamed: "currentStorefront") + @objc public static var sk1CurrentStorefront: RevenueCat.Storefront? { + @objc get + } +} +extension RevenueCat.Storefront { + @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, macCatalyst 13.1, *) + @objc dynamic public var sk1Storefront: StoreKit.SKStorefront? { + @objc get + } + @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) + public var sk2Storefront: StoreKit.Storefront? { + get + } +} +@_hasMissingDesignatedInitializers @objc(RCAttribution) public class Attribution : ObjectiveC.NSObject { + @objc deinit +} +extension RevenueCat.Attribution { + @objc dynamic public func collectDeviceIdentifiers() + @objc dynamic public func setAttributes(_ attributes: [Swift.String : Swift.String]) + @objc dynamic public func setEmail(_ email: Swift.String?) + @objc dynamic public func setPhoneNumber(_ phoneNumber: Swift.String?) + @objc dynamic public func setDisplayName(_ displayName: Swift.String?) + @objc dynamic public func setPushToken(_ pushToken: Foundation.Data?) + @objc dynamic public func setPushTokenString(_ pushToken: Swift.String?) + @objc dynamic public func setAdjustID(_ adjustID: Swift.String?) + @objc dynamic public func setAppsflyerID(_ appsflyerID: Swift.String?) + @objc dynamic public func setFBAnonymousID(_ fbAnonymousID: Swift.String?) + @objc dynamic public func setMparticleID(_ mparticleID: Swift.String?) + @objc dynamic public func setOnesignalID(_ onesignalID: Swift.String?) + @objc dynamic public func setAirshipChannelID(_ airshipChannelID: Swift.String?) + @objc dynamic public func setCleverTapID(_ cleverTapID: Swift.String?) + @objc dynamic public func setMixpanelDistinctID(_ mixpanelDistinctID: Swift.String?) + @objc dynamic public func setFirebaseAppInstanceID(_ firebaseAppInstanceID: Swift.String?) + @objc dynamic public func setMediaSource(_ mediaSource: Swift.String?) + @objc dynamic public func setCampaign(_ campaign: Swift.String?) + @objc dynamic public func setAdGroup(_ adGroup: Swift.String?) + @objc dynamic public func setAd(_ installAd: Swift.String?) + @objc dynamic public func setKeyword(_ keyword: Swift.String?) + @objc dynamic public func setCreative(_ creative: Swift.String?) +} extension RevenueCat.StoreProduct { @objc(RCStoreProductCategory) public enum ProductCategory : Swift.Int { case subscription @@ -263,6 +332,12 @@ extension RevenueCat.Purchases { public func paymentDiscount(for discount: StoreKit.SKProductDiscount, product: StoreKit.SKProduct) async throws -> StoreKit.SKPaymentDiscount #endif + @available(iOS, obsoleted: 1, message: "This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") + @available(tvOS, obsoleted: 1, message: "This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") + @available(watchOS, obsoleted: 1, message: "This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") + @available(macOS, obsoleted: 1, message: "This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") + @available(macCatalyst, obsoleted: 1, message: "This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") + @objc dynamic public func shouldPurchasePromoProduct(_ product: RevenueCat.StoreProduct, defermentBlock: @escaping RevenueCat.StartPurchaseBlock) @available(iOS, obsoleted: 1, renamed: "logIn") @available(tvOS, obsoleted: 1, renamed: "logIn") @available(watchOS, obsoleted: 1, renamed: "logIn") @@ -279,6 +354,11 @@ extension RevenueCat.Purchases { @available(macOS, obsoleted: 1, renamed: "logOut") @objc(resetWithCompletionBlock:) dynamic public func reset(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) } +@available(iOS, obsoleted: 1, renamed: "StartPurchaseBlock") +@available(tvOS, obsoleted: 1, renamed: "StartPurchaseBlock") +@available(watchOS, obsoleted: 1, renamed: "StartPurchaseBlock") +@available(macOS, obsoleted: 1, renamed: "StartPurchaseBlock") +public typealias DeferredPromotionalPurchaseBlock = RevenueCat.StartPurchaseBlock @_inheritsConvenienceInitializers @available(iOS, obsoleted: 1, renamed: "CustomerInfo") @available(tvOS, obsoleted: 1, renamed: "CustomerInfo") @available(watchOS, obsoleted: 1, renamed: "CustomerInfo") @@ -472,7 +552,24 @@ extension RevenueCat.Purchases { } } @_hasMissingDesignatedInitializers @objc(RCPromotionalOffer) final public class PromotionalOffer : ObjectiveC.NSObject { - final public let discount: RevenueCat.StoreProductDiscount + @objc final public let discount: RevenueCat.StoreProductDiscount + @objc final public let signedData: RevenueCat.PromotionalOffer.SignedData + @objc deinit +} +@objc extension RevenueCat.PromotionalOffer { + @_hasMissingDesignatedInitializers @objc(RCPromotionalOfferSignedData) public class SignedData : ObjectiveC.NSObject { + @objc final public let identifier: Swift.String + @objc final public let keyIdentifier: Swift.String + @objc final public let nonce: Foundation.UUID + @objc final public let signature: Swift.String + @objc final public let timestamp: Swift.Int + @objc deinit + } +} +@_hasMissingDesignatedInitializers @objc(RCNonSubscriptionTransaction) final public class NonSubscriptionTransaction : ObjectiveC.NSObject { + @objc final public let productIdentifier: Swift.String + @objc final public let purchaseDate: Foundation.Date + @objc final public let transactionIdentifier: Swift.String @objc deinit } extension RevenueCat.Purchases { @@ -492,6 +589,217 @@ extension RevenueCat.Purchases { public func checkTrialOrIntroDiscountEligibility(_ productIdentifiers: [Swift.String]) async -> [Swift.String : RevenueCat.IntroEligibility] #endif + + #if compiler(>=5.3) && $AsyncAwait + @available(iOS, deprecated, introduced: 13.0, renamed: "promotionalOffer(forProductDiscount:product:)") + @available(tvOS, deprecated, introduced: 13.0, renamed: "promotionalOffer(forProductDiscount:product:)") + @available(watchOS, deprecated, introduced: 6.2, renamed: "promotionalOffer(forProductDiscount:product:)") + @available(macOS, deprecated, introduced: 10.15, renamed: "promotionalOffer(forProductDiscount:product:)") + @available(macCatalyst, deprecated, introduced: 13.0, renamed: "promotionalOffer(forProductDiscount:product:)") + public func getPromotionalOffer(forProductDiscount discount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct) async throws -> RevenueCat.PromotionalOffer + #endif + + + #if compiler(>=5.3) && $AsyncAwait + @available(iOS, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers(forProduct:)") + @available(tvOS, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers(forProduct:)") + @available(watchOS, deprecated, introduced: 6.2, renamed: "eligiblePromotionalOffers(forProduct:)") + @available(macOS, deprecated, introduced: 10.15, renamed: "eligiblePromotionalOffers(forProduct:)") + @available(macCatalyst, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers(forProduct:)") + public func getEligiblePromotionalOffers(forProduct product: RevenueCat.StoreProduct) async -> [RevenueCat.PromotionalOffer] + #endif + + @available(iOS, deprecated: 1, renamed: "configure(with:)") + @available(tvOS, deprecated: 1, renamed: "configure(with:)") + @available(watchOS, deprecated: 1, renamed: "configure(with:)") + @available(macOS, deprecated: 1, renamed: "configure(with:)") + @available(macCatalyst, deprecated: 1, renamed: "configure(with:)") + @discardableResult + @objc(configureWithAPIKey:appUserID:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?) -> RevenueCat.Purchases + @available(iOS, deprecated: 1, renamed: "configure(with:)") + @available(tvOS, deprecated: 1, renamed: "configure(with:)") + @available(watchOS, deprecated: 1, renamed: "configure(with:)") + @available(macOS, deprecated: 1, renamed: "configure(with:)") + @available(macCatalyst, deprecated: 1, renamed: "configure(with:)") + @discardableResult + @objc(configureWithAPIKey:appUserID:observerMode:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool) -> RevenueCat.Purchases + @available(iOS, deprecated: 1, renamed: "configure(with:)") + @available(tvOS, deprecated: 1, renamed: "configure(with:)") + @available(watchOS, deprecated: 1, renamed: "configure(with:)") + @available(macOS, deprecated: 1, renamed: "configure(with:)") + @available(macCatalyst, deprecated: 1, renamed: "configure(with:)") + @discardableResult + @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?) -> RevenueCat.Purchases + @available(iOS, deprecated: 1, renamed: "configure(with:)") + @available(tvOS, deprecated: 1, renamed: "configure(with:)") + @available(watchOS, deprecated: 1, renamed: "configure(with:)") + @available(macOS, deprecated: 1, renamed: "configure(with:)") + @available(macCatalyst, deprecated: 1, renamed: "configure(with:)") + @discardableResult + @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool) -> RevenueCat.Purchases + @available(iOS, deprecated: 1, renamed: "configure(with:)") + @available(tvOS, deprecated: 1, renamed: "configure(with:)") + @available(watchOS, deprecated: 1, renamed: "configure(with:)") + @available(macOS, deprecated: 1, renamed: "configure(with:)") + @available(macCatalyst, deprecated: 1, renamed: "configure(with:)") + @discardableResult + @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:dangerousSettings:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool, dangerousSettings: RevenueCat.DangerousSettings?) -> RevenueCat.Purchases +} +extension RevenueCat.Purchases { + @available(iOS, deprecated, renamed: "attribution.collectDeviceIdentifiers()") + @available(tvOS, deprecated, renamed: "attribution.collectDeviceIdentifiers()") + @available(watchOS, deprecated, renamed: "attribution.collectDeviceIdentifiers()") + @available(macOS, deprecated, renamed: "attribution.collectDeviceIdentifiers()") + @available(macCatalyst, deprecated, renamed: "attribution.collectDeviceIdentifiers()") + @objc dynamic public func collectDeviceIdentifiers() + @available(iOS, deprecated, renamed: "attribution.setAttributes(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAttributes(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAttributes(_:)") + @available(macOS, deprecated, renamed: "attribution.setAttributes(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAttributes(_:)") + @objc dynamic public func setAttributes(_ attributes: [Swift.String : Swift.String]) + @available(iOS, deprecated, renamed: "attribution.setEmail(_:)") + @available(tvOS, deprecated, renamed: "attribution.setEmail(_:)") + @available(watchOS, deprecated, renamed: "attribution.setEmail(_:)") + @available(macOS, deprecated, renamed: "attribution.setEmail(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setEmail(_:)") + @objc dynamic public func setEmail(_ email: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setPhoneNumber(_:)") + @available(tvOS, deprecated, renamed: "attribution.setPhoneNumber(_:)") + @available(watchOS, deprecated, renamed: "attribution.setPhoneNumber(_:)") + @available(macOS, deprecated, renamed: "attribution.setPhoneNumber(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setPhoneNumber(_:)") + @objc dynamic public func setPhoneNumber(_ phoneNumber: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setDisplayName(_:)") + @available(tvOS, deprecated, renamed: "attribution.setDisplayName(_:)") + @available(watchOS, deprecated, renamed: "attribution.setDisplayName(_:)") + @available(macOS, deprecated, renamed: "attribution.setDisplayName(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setDisplayName(_:)") + @objc dynamic public func setDisplayName(_ displayName: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setPushToken(_:)") + @available(tvOS, deprecated, renamed: "attribution.setPushToken(_:)") + @available(watchOS, deprecated, renamed: "attribution.setPushToken(_:)") + @available(macOS, deprecated, renamed: "attribution.setPushToken(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setPushToken(_:)") + @objc dynamic public func setPushToken(_ pushToken: Foundation.Data?) + @available(iOS, deprecated, renamed: "attribution.setPushTokenString(_:)") + @available(tvOS, deprecated, renamed: "attribution.setPushTokenString(_:)") + @available(watchOS, deprecated, renamed: "attribution.setPushTokenString(_:)") + @available(macOS, deprecated, renamed: "attribution.setPushTokenString(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setPushTokenString(_:)") + @objc dynamic public func setPushTokenString(_ pushToken: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setAdjustID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAdjustID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAdjustID(_:)") + @available(macOS, deprecated, renamed: "attribution.setAdjustID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAdjustID(_:)") + @objc dynamic public func setAdjustID(_ adjustID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setAppsflyerID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAppsflyerID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAppsflyerID(_:)") + @available(macOS, deprecated, renamed: "attribution.setAppsflyerID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAppsflyerID(_:)") + @objc dynamic public func setAppsflyerID(_ appsflyerID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setFBAnonymousID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setFBAnonymousID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setFBAnonymousID(_:)") + @available(macOS, deprecated, renamed: "attribution.setFBAnonymousID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setFBAnonymousID(_:)") + @objc dynamic public func setFBAnonymousID(_ fbAnonymousID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setMparticleID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setMparticleID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setMparticleID(_:)") + @available(macOS, deprecated, renamed: "attribution.setMparticleID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setMparticleID(_:)") + @objc dynamic public func setMparticleID(_ mparticleID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setOnesignalID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setOnesignalID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setOnesignalID(_:)") + @available(macOS, deprecated, renamed: "attribution.setOnesignalID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setOnesignalID(_:)") + @objc dynamic public func setOnesignalID(_ onesignalID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setAirshipChannelID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAirshipChannelID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAirshipChannelID(_:)") + @available(macOS, deprecated, renamed: "attribution.setAirshipChannelID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAirshipChannelID(_:)") + @objc dynamic public func setAirshipChannelID(_ airshipChannelID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setCleverTapID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setCleverTapID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setCleverTapID(_:)") + @available(macOS, deprecated, renamed: "attribution.setCleverTapID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setCleverTapID(_:)") + @objc dynamic public func setCleverTapID(_ cleverTapID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setMixpanelDistinctID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setMixpanelDistinctID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setMixpanelDistinctID(_:)") + @available(macOS, deprecated, renamed: "attribution.setMixpanelDistinctID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setMixpanelDistinctID(_:)") + @objc dynamic public func setMixpanelDistinctID(_ mixpanelDistinctID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setFirebaseAppInstanceID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setFirebaseAppInstanceID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setFirebaseAppInstanceID(_:)") + @available(macOS, deprecated, renamed: "attribution.setFirebaseAppInstanceID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setFirebaseAppInstanceID(_:)") + @objc dynamic public func setFirebaseAppInstanceID(_ firebaseAppInstanceID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setMediaSource(_:)") + @available(tvOS, deprecated, renamed: "attribution.setMediaSource(_:)") + @available(watchOS, deprecated, renamed: "attribution.setMediaSource(_:)") + @available(macOS, deprecated, renamed: "attribution.setMediaSource(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setMediaSource(_:)") + @objc dynamic public func setMediaSource(_ mediaSource: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setCampaign(_:)") + @available(tvOS, deprecated, renamed: "attribution.setCampaign(_:)") + @available(watchOS, deprecated, renamed: "attribution.setCampaign(_:)") + @available(macOS, deprecated, renamed: "attribution.setCampaign(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setCampaign(_:)") + @objc dynamic public func setCampaign(_ campaign: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setAdGroup(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAdGroup(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAdGroup(_:)") + @available(macOS, deprecated, renamed: "attribution.setAdGroup(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAdGroup(_:)") + @objc dynamic public func setAdGroup(_ adGroup: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setAd(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAd(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAd(_:)") + @available(macOS, deprecated, renamed: "attribution.setAd(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAd(_:)") + @objc dynamic public func setAd(_ installAd: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setKeyword(_:)") + @available(tvOS, deprecated, renamed: "attribution.setKeyword(_:)") + @available(watchOS, deprecated, renamed: "attribution.setKeyword(_:)") + @available(macOS, deprecated, renamed: "attribution.setKeyword(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setKeyword(_:)") + @objc dynamic public func setKeyword(_ keyword: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setCreative(_:)") + @available(tvOS, deprecated, renamed: "attribution.setCreative(_:)") + @available(watchOS, deprecated, renamed: "attribution.setCreative(_:)") + @available(macOS, deprecated, renamed: "attribution.setCreative(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setCreative(_:)") + @objc dynamic public func setCreative(_ creative: Swift.String?) +} +extension RevenueCat.StoreProduct { + + #if compiler(>=5.3) && $AsyncAwait + @available(iOS, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers()") + @available(tvOS, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers()") + @available(watchOS, deprecated, introduced: 6.2, renamed: "eligiblePromotionalOffers()") + @available(macOS, deprecated, introduced: 10.15, renamed: "eligiblePromotionalOffers()") + @available(macCatalyst, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers()") + final public func getEligiblePromotionalOffers() async -> [RevenueCat.PromotionalOffer] + #endif + +} +extension RevenueCat.CustomerInfo { + @available(*, deprecated, message: "use nonSubscriptionTransactions") + @objc final public var nonConsumablePurchases: Swift.Set { + @objc get + } + @available(*, deprecated, renamed: "nonSubscriptions") + @objc final public var nonSubscriptionTransactions: [RevenueCat.StoreTransaction] { + @objc get + } } @objc(RCPurchasesErrorCode) public enum ErrorCode : Swift.Int, Swift.Error { @objc(RCUnknownError) case unknownError = 0 @@ -521,7 +829,6 @@ extension RevenueCat.Purchases { @objc(RCUnsupportedError) case unsupportedError = 24 @objc(RCEmptySubscriberAttributesError) case emptySubscriberAttributes = 25 @objc(RCProductDiscountMissingIdentifierError) case productDiscountMissingIdentifierError = 26 - @objc(RCMissingAppUserIDForAliasCreationError) case missingAppUserIDForAliasCreationError = 27 @objc(RCProductDiscountMissingSubscriptionGroupIdentifierError) case productDiscountMissingSubscriptionGroupIdentifierError = 28 @objc(RCCustomerInfoError) case customerInfoError = 29 @objc(RCSystemInfoError) case systemInfoError = 30 @@ -529,6 +836,7 @@ extension RevenueCat.Purchases { @objc(RCProductRequestTimedOut) case productRequestTimedOut = 32 @objc(RCAPIEndpointBlocked) case apiEndpointBlockedError = 33 @objc(RCInvalidPromotionalOfferError) case invalidPromotionalOfferError = 34 + @objc(RCOfflineConnectionError) case offlineConnectionError = 35 public init?(rawValue: Swift.Int) public typealias RawValue = Swift.Int public static var _nsErrorDomain: Swift.String { @@ -577,45 +885,47 @@ extension RevenueCat.Purchases { @objc public init(autoSyncPurchases: Swift.Bool) @objc deinit } -@_hasMissingDesignatedInitializers @objc(RCCustomerInfo) public class CustomerInfo : ObjectiveC.NSObject { +@_hasMissingDesignatedInitializers @objc(RCCustomerInfo) final public class CustomerInfo : ObjectiveC.NSObject { @objc final public let entitlements: RevenueCat.EntitlementInfos - @objc public var activeSubscriptions: Swift.Set { - @objc get - } - @objc public var allPurchasedProductIdentifiers: Swift.Set { + @objc final public var activeSubscriptions: Swift.Set { @objc get } - @objc public var latestExpirationDate: Foundation.Date? { + @objc final public var allPurchasedProductIdentifiers: Swift.Set { @objc get } - @available(*, deprecated, message: "use nonSubscriptionTransactions") - @objc public var nonConsumablePurchases: Swift.Set { + @objc final public var latestExpirationDate: Foundation.Date? { @objc get } - @objc final public let nonSubscriptionTransactions: [RevenueCat.StoreTransaction] + @objc final public let nonSubscriptions: [RevenueCat.NonSubscriptionTransaction] @objc final public let requestDate: Foundation.Date @objc final public let firstSeen: Foundation.Date @objc final public let originalAppUserId: Swift.String @objc final public let managementURL: Foundation.URL? @objc final public let originalPurchaseDate: Foundation.Date? @objc final public let originalApplicationVersion: Swift.String? - @objc final public let rawData: [Swift.String : Any] - @objc public func expirationDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? - @objc public func purchaseDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? - @objc public func expirationDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? - @objc public func purchaseDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc override dynamic public var hash: Swift.Int { + @objc final public func expirationDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? + @objc final public func purchaseDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? + @objc final public func expirationDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? + @objc final public func purchaseDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? + @objc override final public func isEqual(_ object: Any?) -> Swift.Bool + @objc override final public var hash: Swift.Int { @objc get } - @objc override dynamic public var description: Swift.String { + @objc override final public var description: Swift.String { @objc get } @objc deinit } extension RevenueCat.CustomerInfo : RevenueCat.RawDataContainer { + @objc final public var rawData: [Swift.String : Any] { + @objc get + } public typealias Content = [Swift.String : Any] } +extension RevenueCat.CustomerInfo : Swift.Codable { + convenience public init(from decoder: Swift.Decoder) throws + final public func encode(to encoder: Swift.Encoder) throws +} @objc(RCStore) public enum Store : Swift.Int { @objc(RCAppStore) case appStore = 0 @objc(RCMacAppStore) case macAppStore = 1 @@ -623,6 +933,7 @@ extension RevenueCat.CustomerInfo : RevenueCat.RawDataContainer { @objc(RCStripe) case stripe = 3 @objc(RCPromotional) case promotional = 4 @objc(RCUnknownStore) case unknownStore = 5 + @objc(RCAmazon) case amazon = 6 public init?(rawValue: Swift.Int) public typealias RawValue = Swift.Int public var rawValue: Swift.Int { @@ -652,19 +963,45 @@ extension RevenueCat.PeriodType : Swift.CaseIterable { } } @_hasMissingDesignatedInitializers @objc(RCEntitlementInfo) public class EntitlementInfo : ObjectiveC.NSObject { - @objc final public let identifier: Swift.String - @objc final public let isActive: Swift.Bool - @objc final public let willRenew: Swift.Bool - @objc final public let periodType: RevenueCat.PeriodType - @objc final public let latestPurchaseDate: Foundation.Date? - @objc final public let originalPurchaseDate: Foundation.Date? - @objc final public let expirationDate: Foundation.Date? - @objc final public let store: RevenueCat.Store - @objc final public let productIdentifier: Swift.String - @objc final public let isSandbox: Swift.Bool - @objc final public let unsubscribeDetectedAt: Foundation.Date? - @objc final public let billingIssueDetectedAt: Foundation.Date? - @objc final public let ownershipType: RevenueCat.PurchaseOwnershipType + @objc public var identifier: Swift.String { + @objc get + } + @objc public var isActive: Swift.Bool { + @objc get + } + @objc public var willRenew: Swift.Bool { + @objc get + } + @objc public var periodType: RevenueCat.PeriodType { + @objc get + } + @objc public var latestPurchaseDate: Foundation.Date? { + @objc get + } + @objc public var originalPurchaseDate: Foundation.Date? { + @objc get + } + @objc public var expirationDate: Foundation.Date? { + @objc get + } + @objc public var store: RevenueCat.Store { + @objc get + } + @objc public var productIdentifier: Swift.String { + @objc get + } + @objc public var isSandbox: Swift.Bool { + @objc get + } + @objc public var unsubscribeDetectedAt: Foundation.Date? { + @objc get + } + @objc public var billingIssueDetectedAt: Foundation.Date? { + @objc get + } + @objc public var ownershipType: RevenueCat.PurchaseOwnershipType { + @objc get + } @objc final public let rawData: [Swift.String : Any] @objc override dynamic public var description: Swift.String { @objc get @@ -678,6 +1015,14 @@ extension RevenueCat.PeriodType : Swift.CaseIterable { extension RevenueCat.EntitlementInfo : RevenueCat.RawDataContainer { public typealias Content = [Swift.String : Any] } +extension RevenueCat.EntitlementInfo { + @objc dynamic public var isActiveInCurrentEnvironment: Swift.Bool { + @objc get + } + @objc dynamic public var isActiveInAnyEnvironment: Swift.Bool { + @objc get + } +} extension RevenueCat.EntitlementInfo : Swift.Identifiable { public var id: Swift.String { get @@ -697,6 +1042,25 @@ extension RevenueCat.EntitlementInfo : Swift.Identifiable { } public typealias VerboseLogHandler = (_ level: RevenueCat.LogLevel, _ message: Swift.String, _ file: Swift.String?, _ function: Swift.String?, _ line: Swift.UInt) -> Swift.Void public typealias LogHandler = (_ level: RevenueCat.LogLevel, _ message: Swift.String) -> Swift.Void +@objc(RCPackageType) public enum PackageType : Swift.Int { + case unknown = -2, custom, lifetime, annual, sixMonth, threeMonth, twoMonth, monthly, weekly + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +extension RevenueCat.PackageType : Swift.CaseIterable { + public typealias AllCases = [RevenueCat.PackageType] + public static var allCases: [RevenueCat.PackageType] { + get + } +} +extension RevenueCat.PackageType : Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + get + } +} public typealias SK1Transaction = StoreKit.SKPaymentTransaction @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) public typealias SK2Transaction = StoreKit.Transaction @@ -740,7 +1104,7 @@ public protocol RawDataContainer { } public typealias PurchaseResultData = (transaction: RevenueCat.StoreTransaction?, customerInfo: RevenueCat.CustomerInfo, userCancelled: Swift.Bool) public typealias PurchaseCompletedBlock = (RevenueCat.StoreTransaction?, RevenueCat.CustomerInfo?, Swift.Error?, Swift.Bool) -> Swift.Void -public typealias DeferredPromotionalPurchaseBlock = (@escaping RevenueCat.PurchaseCompletedBlock) -> Swift.Void +public typealias StartPurchaseBlock = (@escaping RevenueCat.PurchaseCompletedBlock) -> Swift.Void @_hasMissingDesignatedInitializers @objc(RCPurchases) public class Purchases : ObjectiveC.NSObject { @objc(sharedPurchases) public static var shared: RevenueCat.Purchases { @objc get @@ -786,33 +1150,13 @@ public typealias DeferredPromotionalPurchaseBlock = (@escaping RevenueCat.Purcha @objc public static var frameworkVersion: Swift.String { @objc get } + @objc final public let attribution: RevenueCat.Attribution @objc public var finishTransactions: Swift.Bool { @objc get @objc set } - @objc public func collectDeviceIdentifiers() @objc deinit } -extension RevenueCat.Purchases { - @objc dynamic public func setAttributes(_ attributes: [Swift.String : Swift.String]) - @objc dynamic public func setEmail(_ email: Swift.String?) - @objc dynamic public func setPhoneNumber(_ phoneNumber: Swift.String?) - @objc dynamic public func setDisplayName(_ displayName: Swift.String?) - @objc dynamic public func setPushToken(_ pushToken: Foundation.Data?) - @objc dynamic public func setAdjustID(_ adjustID: Swift.String?) - @objc dynamic public func setAppsflyerID(_ appsflyerID: Swift.String?) - @objc dynamic public func setFBAnonymousID(_ fbAnonymousID: Swift.String?) - @objc dynamic public func setMparticleID(_ mparticleID: Swift.String?) - @objc dynamic public func setOnesignalID(_ onesignalID: Swift.String?) - @objc dynamic public func setAirshipChannelID(_ airshipChannelID: Swift.String?) - @objc dynamic public func setCleverTapID(_ cleverTapID: Swift.String?) - @objc dynamic public func setMediaSource(_ mediaSource: Swift.String?) - @objc dynamic public func setCampaign(_ campaign: Swift.String?) - @objc dynamic public func setAdGroup(_ adGroup: Swift.String?) - @objc dynamic public func setAd(_ installAd: Swift.String?) - @objc dynamic public func setKeyword(_ keyword: Swift.String?) - @objc dynamic public func setCreative(_ creative: Swift.String?) -} extension RevenueCat.Purchases { @objc dynamic public var appUserID: Swift.String { @objc get @@ -844,10 +1188,11 @@ extension RevenueCat.Purchases { } extension RevenueCat.Purchases { @objc dynamic public func getCustomerInfo(completion: @escaping (RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void) + @objc dynamic public func getCustomerInfo(fetchPolicy: RevenueCat.CacheFetchPolicy, completion: @escaping (RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void) #if compiler(>=5.3) && $AsyncAwait @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func customerInfo() async throws -> RevenueCat.CustomerInfo + public func customerInfo(fetchPolicy: RevenueCat.CacheFetchPolicy = .default) async throws -> RevenueCat.CustomerInfo #endif @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) @@ -919,6 +1264,8 @@ extension RevenueCat.Purchases { public func checkTrialOrIntroDiscountEligibility(product: RevenueCat.StoreProduct) async -> RevenueCat.IntroEligibilityStatus #endif + @available(iOS 13.4, macCatalyst 13.4, *) + @objc dynamic public func showPriceConsentIfNeeded() @objc dynamic public func invalidateCustomerInfoCache() @available(iOS 14.0, *) @available(watchOS, unavailable) @@ -931,13 +1278,13 @@ extension RevenueCat.Purchases { #if compiler(>=5.3) && $AsyncAwait @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func getPromotionalOffer(forProductDiscount discount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct) async throws -> RevenueCat.PromotionalOffer + public func promotionalOffer(forProductDiscount discount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct) async throws -> RevenueCat.PromotionalOffer #endif #if compiler(>=5.3) && $AsyncAwait @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func getEligiblePromotionalOffers(forProduct product: RevenueCat.StoreProduct) async -> [RevenueCat.PromotionalOffer] + public func eligiblePromotionalOffers(forProduct product: RevenueCat.StoreProduct) async -> [RevenueCat.PromotionalOffer] #endif @available(iOS 13.0, macOS 10.15, *) @@ -982,20 +1329,11 @@ extension RevenueCat.Purchases { } extension RevenueCat.Purchases { @discardableResult - @objc(configureWithAPIKey:) public static func configure(withAPIKey apiKey: Swift.String) -> RevenueCat.Purchases + @objc(configureWithConfiguration:) public static func configure(with configuration: RevenueCat.Configuration) -> RevenueCat.Purchases @discardableResult - @objc(configureWithAPIKey:appUserID:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool) -> RevenueCat.Purchases + @objc(configureWithConfigurationBuilder:) public static func configure(with builder: RevenueCat.Configuration.Builder) -> RevenueCat.Purchases @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:dangerousSettings:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool, dangerousSettings: RevenueCat.DangerousSettings?) -> RevenueCat.Purchases -} -extension RevenueCat.Purchases { - @objc dynamic public func shouldPurchasePromoProduct(_ product: RevenueCat.StoreProduct, defermentBlock: @escaping RevenueCat.DeferredPromotionalPurchaseBlock) + @objc(configureWithAPIKey:) public static func configure(withAPIKey apiKey: Swift.String) -> RevenueCat.Purchases } extension RevenueCat.Purchases { @available(*, deprecated, message: "use Purchases.logLevel instead") @@ -1077,17 +1415,23 @@ extension RevenueCat.PurchaseOwnershipType : Swift.CaseIterable { extension RevenueCat.PurchaseOwnershipType : Swift.Decodable { public init(from decoder: Swift.Decoder) throws } +extension RevenueCat.PurchaseOwnershipType : Swift.Encodable { + public func encode(to encoder: Swift.Encoder) throws +} extension RevenueCat.PeriodType : Swift.Decodable { public init(from decoder: Swift.Decoder) throws } +extension RevenueCat.PeriodType : Swift.Encodable { + public func encode(to encoder: Swift.Encoder) throws +} extension RevenueCat.Store : Swift.Decodable { public init(from decoder: Swift.Decoder) throws } +extension RevenueCat.Store : Swift.Encodable { + public func encode(to encoder: Swift.Encoder) throws +} @_hasMissingDesignatedInitializers @objc(RCEntitlementInfos) public class EntitlementInfos : ObjectiveC.NSObject { @objc final public let all: [Swift.String : RevenueCat.EntitlementInfo] - @objc public var active: [Swift.String : RevenueCat.EntitlementInfo] { - @objc get - } @objc public subscript(key: Swift.String) -> RevenueCat.EntitlementInfo? { @objc get } @@ -1097,12 +1441,15 @@ extension RevenueCat.Store : Swift.Decodable { @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool @objc deinit } -@objc(RCPackageType) public enum PackageType : Swift.Int { - case unknown = -2, custom, lifetime, annual, sixMonth, threeMonth, twoMonth, monthly, weekly - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get +extension RevenueCat.EntitlementInfos { + @objc dynamic public var active: [Swift.String : RevenueCat.EntitlementInfo] { + @objc get + } + @objc dynamic public var activeInCurrentEnvironment: [Swift.String : RevenueCat.EntitlementInfo] { + @objc get + } + @objc dynamic public var activeInAnyEnvironment: [Swift.String : RevenueCat.EntitlementInfo] { + @objc get } } @_hasMissingDesignatedInitializers @objc(RCPackage) public class Package : ObjectiveC.NSObject { @@ -1124,7 +1471,7 @@ extension RevenueCat.Store : Swift.Decodable { } @objc extension RevenueCat.Package { @objc public static func string(from packageType: RevenueCat.PackageType) -> Swift.String? - @objc dynamic public class func packageType(from string: Swift.String) -> RevenueCat.PackageType + @objc public static func packageType(from string: Swift.String) -> RevenueCat.PackageType } extension RevenueCat.Package : Swift.Identifiable { public var id: Swift.String { @@ -1132,6 +1479,24 @@ extension RevenueCat.Package : Swift.Identifiable { } public typealias ID = Swift.String } +@_hasMissingDesignatedInitializers @objc(RCConfiguration) public class Configuration : ObjectiveC.NSObject { + @objc public static func builder(withAPIKey apiKey: Swift.String) -> RevenueCat.Configuration.Builder + @objc(RCConfigurationBuilder) public class Builder : ObjectiveC.NSObject { + @objc public init(withAPIKey apiKey: Swift.String) + @objc public func with(apiKey: Swift.String) -> RevenueCat.Configuration.Builder + @objc public func with(appUserID: Swift.String) -> RevenueCat.Configuration.Builder + @objc public func with(observerMode: Swift.Bool) -> RevenueCat.Configuration.Builder + @objc public func with(userDefaults: Foundation.UserDefaults) -> RevenueCat.Configuration.Builder + @objc public func with(usesStoreKit2IfAvailable: Swift.Bool) -> RevenueCat.Configuration.Builder + @objc public func with(dangerousSettings: RevenueCat.DangerousSettings) -> RevenueCat.Configuration.Builder + @objc public func with(networkTimeout: Foundation.TimeInterval) -> RevenueCat.Configuration.Builder + @objc public func with(storeKit1Timeout: Foundation.TimeInterval) -> RevenueCat.Configuration.Builder + @objc public func with(platformInfo: RevenueCat.Purchases.PlatformInfo) -> RevenueCat.Configuration.Builder + @objc public func build() -> RevenueCat.Configuration + @objc deinit + } + @objc deinit +} @objc(RCIntroEligibilityStatus) public enum IntroEligibilityStatus : Swift.Int { case unknown = 0 case ineligible @@ -1156,6 +1521,18 @@ extension RevenueCat.IntroEligibilityStatus : Swift.CaseIterable { } @objc deinit } +@objc(RCCacheFetchPolicy) public enum CacheFetchPolicy : Swift.Int { + case fromCacheOnly + case fetchCurrent + case notStaleCachedOrFetched + case cachedOrFetched + public static let `default`: RevenueCat.CacheFetchPolicy + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} @available(iOS 11.2, macOS 10.13.2, tvOS 11.2, watchOS 6.2, *) public typealias SK1ProductDiscount = StoreKit.SKProductDiscount @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) @@ -1198,6 +1575,9 @@ public typealias SK2ProductDiscount = StoreKit.Product.SubscriptionOffer @objc final public var subscriptionPeriod: RevenueCat.SubscriptionPeriod { @objc get } + @objc final public var numberOfPeriods: Swift.Int { + @objc get + } @objc final public var type: RevenueCat.StoreProductDiscount.DiscountType { @objc get } @@ -1250,7 +1630,18 @@ extension RevenueCat.StoreProductDiscount : Swift.Identifiable { @available(watchOS, obsoleted: 1) @objc(purchases:didReceiveUpdatedPurchaserInfo:) optional func purchases(_ purchases: RevenueCat.Purchases, didReceiveUpdated purchaserInfo: RevenueCat.CustomerInfo) @objc(purchases:receivedUpdatedCustomerInfo:) optional func purchases(_ purchases: RevenueCat.Purchases, receivedUpdated customerInfo: RevenueCat.CustomerInfo) - @objc optional func purchases(_ purchases: RevenueCat.Purchases, shouldPurchasePromoProduct product: RevenueCat.StoreProduct, defermentBlock makeDeferredPurchase: @escaping RevenueCat.DeferredPromotionalPurchaseBlock) + @objc optional func purchases(_ purchases: RevenueCat.Purchases, readyForPromotedProduct product: RevenueCat.StoreProduct, purchase startPurchase: @escaping RevenueCat.StartPurchaseBlock) + @available(iOS, obsoleted: 1, renamed: "purchases(_:readyForPromotedProduct:purchase:)") + @available(tvOS, obsoleted: 1, renamed: "purchases(_:readyForPromotedProduct:purchase:)") + @available(watchOS, obsoleted: 1, renamed: "purchases(_:readyForPromotedProduct:purchase:)") + @available(macOS, obsoleted: 1, renamed: "purchases(_:readyForPromotedProduct:purchase:)") + @available(macCatalyst, obsoleted: 1, renamed: "purchases(_:readyForPromotedProduct:purchase:)") + @objc optional func purchases(_ purchases: RevenueCat.Purchases, shouldPurchasePromoProduct product: RevenueCat.StoreProduct, defermentBlock makeDeferredPurchase: @escaping RevenueCat.StartPurchaseBlock) + @available(iOS 13.4, macCatalyst 13.4, *) + @available(macOS, unavailable) + @available(tvOS, unavailable) + @available(watchOS, unavailable) + @objc optional var shouldShowPriceConsent: Swift.Bool { get } } @objc(RCAttributionNetwork) public enum AttributionNetwork : Swift.Int { case appleSearchAds @@ -1342,7 +1733,7 @@ extension RevenueCat.StoreProduct { extension RevenueCat.StoreProduct { #if compiler(>=5.3) && $AsyncAwait - final public func getEligiblePromotionalOffers() async -> [RevenueCat.PromotionalOffer] + final public func eligiblePromotionalOffers() async -> [RevenueCat.PromotionalOffer] #endif } @@ -1399,18 +1790,21 @@ extension RevenueCat.PeriodType : Swift.RawRepresentable {} extension RevenueCat.LogLevel : Swift.Equatable {} extension RevenueCat.LogLevel : Swift.Hashable {} extension RevenueCat.LogLevel : Swift.RawRepresentable {} +extension RevenueCat.PackageType : Swift.Equatable {} +extension RevenueCat.PackageType : Swift.Hashable {} +extension RevenueCat.PackageType : Swift.RawRepresentable {} extension RevenueCat.SubscriptionPeriod.Unit : Swift.Equatable {} extension RevenueCat.SubscriptionPeriod.Unit : Swift.Hashable {} extension RevenueCat.SubscriptionPeriod.Unit : Swift.RawRepresentable {} extension RevenueCat.PurchaseOwnershipType : Swift.Equatable {} extension RevenueCat.PurchaseOwnershipType : Swift.Hashable {} extension RevenueCat.PurchaseOwnershipType : Swift.RawRepresentable {} -extension RevenueCat.PackageType : Swift.Equatable {} -extension RevenueCat.PackageType : Swift.Hashable {} -extension RevenueCat.PackageType : Swift.RawRepresentable {} extension RevenueCat.IntroEligibilityStatus : Swift.Equatable {} extension RevenueCat.IntroEligibilityStatus : Swift.Hashable {} extension RevenueCat.IntroEligibilityStatus : Swift.RawRepresentable {} +extension RevenueCat.CacheFetchPolicy : Swift.Equatable {} +extension RevenueCat.CacheFetchPolicy : Swift.Hashable {} +extension RevenueCat.CacheFetchPolicy : Swift.RawRepresentable {} extension RevenueCat.StoreProductDiscount.DiscountType : Swift.Equatable {} extension RevenueCat.StoreProductDiscount.DiscountType : Swift.Hashable {} extension RevenueCat.StoreProductDiscount.DiscountType : Swift.RawRepresentable {} diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftmodule b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftmodule index 20389fa..d7265b1 100644 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftmodule and b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64-apple-ios.swiftmodule differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64.swiftdoc b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64.swiftdoc deleted file mode 100644 index 018153a..0000000 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64.swiftdoc and /dev/null differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64.swiftinterface b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64.swiftinterface deleted file mode 100644 index 1e3745f..0000000 --- a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64.swiftinterface +++ /dev/null @@ -1,1419 +0,0 @@ -// swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30) -// swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name RevenueCat -import Foundation -@_exported import RevenueCat -import StoreKit -import Swift -import UIKit -import _Concurrency -@_hasMissingDesignatedInitializers @objc(RCOffering) public class Offering : ObjectiveC.NSObject { - @objc final public let identifier: Swift.String - @objc final public let serverDescription: Swift.String - @objc final public let availablePackages: [RevenueCat.Package] - @objc public var lifetime: RevenueCat.Package? { - get - } - @objc public var annual: RevenueCat.Package? { - get - } - @objc public var sixMonth: RevenueCat.Package? { - get - } - @objc public var threeMonth: RevenueCat.Package? { - get - } - @objc public var twoMonth: RevenueCat.Package? { - get - } - @objc public var monthly: RevenueCat.Package? { - get - } - @objc public var weekly: RevenueCat.Package? { - get - } - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc public func package(identifier: Swift.String?) -> RevenueCat.Package? - @objc public subscript(key: Swift.String) -> RevenueCat.Package? { - @objc get - } - @objc deinit -} -extension RevenueCat.Offering : Swift.Identifiable { - public var id: Swift.String { - get - } - public typealias ID = Swift.String -} -@_hasMissingDesignatedInitializers @objc(RCOfferings) public class Offerings : ObjectiveC.NSObject { - @objc final public let all: [Swift.String : RevenueCat.Offering] - @objc public var current: RevenueCat.Offering? { - @objc get - } - @objc public func offering(identifier: Swift.String?) -> RevenueCat.Offering? - @objc public subscript(key: Swift.String) -> RevenueCat.Offering? { - @objc get - } - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc deinit -} -extension RevenueCat.StoreProduct { - @objc(RCStoreProductCategory) public enum ProductCategory : Swift.Int { - case subscription - case nonSubscription - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } - } - @objc(RCStoreProductType) public enum ProductType : Swift.Int { - case consumable - case nonConsumable - case nonRenewableSubscription - case autoRenewableSubscription - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } - } -} -extension RevenueCat.Purchases { - @available(iOS, obsoleted: 1, renamed: "restorePurchases(completion:)") - @available(tvOS, obsoleted: 1, renamed: "restorePurchases(completion:)") - @available(watchOS, obsoleted: 1, renamed: "restorePurchases(completion:)") - @available(macOS, obsoleted: 1, renamed: "restorePurchases(completion:)") - @objc(restoreTransactionsWithCompletionBlock:) dynamic public func restoreTransactions(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)? = nil) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "restorePurchases()") - @available(tvOS, unavailable, introduced: 13.0, renamed: "restorePurchases()") - @available(watchOS, unavailable, introduced: 6.2, renamed: "restorePurchases()") - @available(macOS, unavailable, introduced: 10.15, renamed: "restorePurchases()") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "restorePurchases()") - public func restoreTransactions() async throws -> RevenueCat.CustomerInfo - #endif - - @available(iOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(tvOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(watchOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(macOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @objc dynamic public func customerInfo(completion: @escaping (RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void) - @available(iOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(tvOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(watchOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(macOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @objc(purchaserInfoWithCompletionBlock:) dynamic public func purchaserInfo(completion: @escaping (RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "customerInfo()") - @available(tvOS, unavailable, introduced: 13.0, renamed: "customerInfo()") - @available(watchOS, unavailable, introduced: 6.2, renamed: "customerInfo()") - @available(macOS, unavailable, introduced: 10.15, renamed: "customerInfo()") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "customerInfo()") - public func purchaserInfo() async throws -> RevenueCat.CustomerInfo - #endif - - @available(iOS, obsoleted: 1, renamed: "getProducts(_:completion:)") - @available(tvOS, obsoleted: 1, renamed: "getProducts(_:completion:)") - @available(watchOS, obsoleted: 1, renamed: "getProducts(_:completion:)") - @available(macOS, obsoleted: 1, renamed: "getProducts(_:completion:)") - @objc(productsWithIdentifiers:completionBlock:) dynamic public func products(_ productIdentifiers: [Swift.String], completion: @escaping ([StoreKit.SKProduct]) -> Swift.Void) - @available(iOS, obsoleted: 1, renamed: "getOfferings(completion:)") - @available(tvOS, obsoleted: 1, renamed: "getOfferings(completion:)") - @available(watchOS, obsoleted: 1, renamed: "getOfferings(completion:)") - @available(macOS, obsoleted: 1, renamed: "getOfferings(completion:)") - @objc(offeringsWithCompletionBlock:) dynamic public func offerings(completion: @escaping (RevenueCat.Offerings?, Swift.Error?) -> Swift.Void) - @available(iOS, obsoleted: 1, renamed: "purchase(package:completion:)") - @available(tvOS, obsoleted: 1, renamed: "purchase(package:completion:)") - @available(watchOS, obsoleted: 1, renamed: "purchase(package:completion:)") - @available(macOS, obsoleted: 1, renamed: "purchase(package:completion:)") - @objc(purchasePackage:withCompletionBlock:) dynamic public func purchasePackage(_ package: RevenueCat.Package, _ completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(package:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(package:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(package:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(package:)") - public func purchasePackage(_ package: RevenueCat.Package) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(tvOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macOS, unavailable, introduced: 10.14.4, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:completion:)") - @objc(purchasePackage:withDiscount:completionBlock:) dynamic public func purchasePackage(_ package: RevenueCat.Package, discount: StoreKit.SKPaymentDiscount, _ completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(package:promotionalOffer:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - public func purchasePackage(_ package: RevenueCat.Package, discount: StoreKit.SKPaymentDiscount) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS, obsoleted: 1, renamed: "purchase(product:_:)") - @available(tvOS, obsoleted: 1, renamed: "purchase(product:_:)") - @available(watchOS, obsoleted: 1, renamed: "purchase(product:_:)") - @available(macOS, obsoleted: 1, renamed: "purchase(product:_:)") - @objc(purchaseProduct:withCompletionBlock:) dynamic public func purchaseProduct(_ product: StoreKit.SKProduct, _ completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(product:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(product:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(product:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(product:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(product:)") - public func purchaseProduct(_ product: StoreKit.SKProduct) async throws - #endif - - @available(iOS, unavailable, introduced: 12.2, renamed: "purchase(product:promotionalOffer:completion:)") - @available(tvOS, unavailable, introduced: 12.2, renamed: "purchase(product:promotionalOffer:completion:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(product:promotionalOffer:completion:)") - @available(macOS, unavailable, introduced: 10.14.4, renamed: "purchase(product:promotionalOffer:completion:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(product:promotionalOffer:completion:)") - @objc(purchaseProduct:withDiscount:completionBlock:) dynamic public func purchaseProduct(_ product: StoreKit.SKProduct, discount: StoreKit.SKPaymentDiscount, _ completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(product:promotionalOffer:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(product:promotionalOffer:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(product:promotionalOffer:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(product:promotionalOffer:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(product:promotionalOffer:)") - public func purchaseProduct(_ product: StoreKit.SKProduct, discount: StoreKit.SKPaymentDiscount) async throws - #endif - - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(package:promotionalOffer:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - public func purchase(package: RevenueCat.Package, discount: RevenueCat.StoreProductDiscount) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(tvOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macOS, unavailable, introduced: 10.14.4, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macCatalyst, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - public func purchase(package: RevenueCat.Package, discount: RevenueCat.StoreProductDiscount, completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(package:promotionalOffer:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - public func purchase(product: RevenueCat.StoreProduct, discount: RevenueCat.StoreProductDiscount) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(tvOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macOS, unavailable, introduced: 10.14.4, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macCatalyst, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - public func purchase(product: RevenueCat.StoreProduct, discount: RevenueCat.StoreProductDiscount, completion: @escaping RevenueCat.PurchaseCompletedBlock) - @available(iOS, unavailable, introduced: 13.0, renamed: "getPromotionalOffer(forProductDiscount:product:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "getPromotionalOffer(forProductDiscount:product:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "getPromotionalOffer(forProductDiscount:product:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "getPromotionalOffer(forProductDiscount:product:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "getPromotionalOffer(forProductDiscount:product:)") - public func checkPromotionalDiscountEligibility(forProductDiscount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct) - @available(iOS, unavailable, introduced: 12.2, renamed: "getPromotionalOffer(forProductDiscount:product:completion:)") - @available(tvOS, unavailable, introduced: 12.2, renamed: "getPromotionalOffer(forProductDiscount:product:completion:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "getPromotionalOffer(forProductDiscount:product:completion:)") - @available(macOS, unavailable, introduced: 10.14.4, renamed: "getPromotionalOffer(forProductDiscount:product:completion:)") - @available(macCatalyst, unavailable, introduced: 12.2, renamed: "getPromotionalOffer(forProductDiscount:product:completion:)") - public func checkPromotionalDiscountEligibility(forProductDiscount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct, completion: @escaping (Swift.AnyObject, Swift.Error?) -> Swift.Void) - @available(iOS, obsoleted: 1, renamed: "invalidateCustomerInfoCache") - @available(tvOS, obsoleted: 1, renamed: "invalidateCustomerInfoCache") - @available(watchOS, obsoleted: 1, renamed: "invalidateCustomerInfoCache") - @available(macOS, obsoleted: 1, renamed: "invalidateCustomerInfoCache") - @available(macCatalyst, obsoleted: 1, renamed: "invalidateCustomerInfoCache") - @objc dynamic public func invalidatePurchaserInfoCache() - @available(iOS, obsoleted: 1, renamed: "checkTrialOrIntroDiscountEligibility(_:completion:)") - @available(tvOS, obsoleted: 1, renamed: "checkTrialOrIntroDiscountEligibility(_:completion:)") - @available(watchOS, obsoleted: 1, renamed: "checkTrialOrIntroDiscountEligibility(_:completion:)") - @available(macOS, obsoleted: 1, renamed: "checkTrialOrIntroDiscountEligibility(_:completion:)") - @available(macCatalyst, obsoleted: 1, renamed: "checkTrialOrIntroDiscountEligibility(_:completion:)") - @objc(checkTrialOrIntroductoryPriceEligibility:completion:) dynamic public func checkTrialOrIntroductoryPriceEligibility(_ productIdentifiers: [Swift.String], completion: @escaping ([Swift.String : RevenueCat.IntroEligibility]) -> Swift.Void) - @available(iOS, unavailable, introduced: 12.2, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(tvOS, unavailable, introduced: 12.2, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(watchOS, unavailable, introduced: 6.2, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(macOS, unavailable, introduced: 10.14.4, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(macCatalyst, unavailable, introduced: 13.0, message: "Check eligibility for a discount using getPromotionalOffer:") - @objc(paymentDiscountForProductDiscount:product:completion:) dynamic public func paymentDiscount(for discount: StoreKit.SKProductDiscount, product: StoreKit.SKProduct, completion: @escaping (StoreKit.SKPaymentDiscount?, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(tvOS, unavailable, introduced: 13.0, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(watchOS, unavailable, introduced: 6.2, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(macOS, unavailable, introduced: 10.15, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(macCatalyst, unavailable, introduced: 13.0, message: "Check eligibility for a discount using getPromotionalOffer:") - public func paymentDiscount(for discount: StoreKit.SKProductDiscount, product: StoreKit.SKProduct) async throws -> StoreKit.SKPaymentDiscount - #endif - - @available(iOS, obsoleted: 1, renamed: "logIn") - @available(tvOS, obsoleted: 1, renamed: "logIn") - @available(watchOS, obsoleted: 1, renamed: "logIn") - @available(macOS, obsoleted: 1, renamed: "logIn") - @objc(createAlias:completionBlock:) dynamic public func createAlias(_ alias: Swift.String, _ completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) - @available(iOS, obsoleted: 1, renamed: "logIn") - @available(tvOS, obsoleted: 1, renamed: "logIn") - @available(watchOS, obsoleted: 1, renamed: "logIn") - @available(macOS, obsoleted: 1, renamed: "logIn") - @objc(identify:completionBlock:) dynamic public func identify(_ appUserID: Swift.String, _ completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) - @available(iOS, obsoleted: 1, renamed: "logOut") - @available(tvOS, obsoleted: 1, renamed: "logOut") - @available(watchOS, obsoleted: 1, renamed: "logOut") - @available(macOS, obsoleted: 1, renamed: "logOut") - @objc(resetWithCompletionBlock:) dynamic public func reset(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) -} -@_inheritsConvenienceInitializers @available(iOS, obsoleted: 1, renamed: "CustomerInfo") -@available(tvOS, obsoleted: 1, renamed: "CustomerInfo") -@available(watchOS, obsoleted: 1, renamed: "CustomerInfo") -@available(macOS, obsoleted: 1, renamed: "CustomerInfo") -@objc(RCPurchaserInfo) public class PurchaserInfo : ObjectiveC.NSObject { - @objc override dynamic public init() - @objc deinit -} -@_inheritsConvenienceInitializers @available(iOS, obsoleted: 1, renamed: "StoreTransaction") -@available(tvOS, obsoleted: 1, renamed: "StoreTransaction") -@available(watchOS, obsoleted: 1, renamed: "StoreTransaction") -@available(macOS, obsoleted: 1, renamed: "StoreTransaction") -@objc(RCTransaction) public class Transaction : ObjectiveC.NSObject { - @objc override dynamic public init() - @objc deinit -} -extension RevenueCat.StoreTransaction { - @available(iOS, obsoleted: 1, renamed: "productIdentifier") - @available(tvOS, obsoleted: 1, renamed: "productIdentifier") - @available(watchOS, obsoleted: 1, renamed: "productIdentifier") - @available(macOS, obsoleted: 1, renamed: "productIdentifier") - @objc final public var productId: Swift.String { - @objc get - } - @available(iOS, obsoleted: 1, renamed: "transactionIdentifier") - @available(tvOS, obsoleted: 1, renamed: "transactionIdentifier") - @available(watchOS, obsoleted: 1, renamed: "transactionIdentifier") - @available(macOS, obsoleted: 1, renamed: "transactionIdentifier") - @objc final public var revenueCatId: Swift.String { - @objc get - } -} -extension RevenueCat.Package { - @available(iOS, obsoleted: 1, renamed: "storeProduct", message: "Use StoreProduct instead") - @available(tvOS, obsoleted: 1, renamed: "storeProduct", message: "Use StoreProduct instead") - @available(watchOS, obsoleted: 1, renamed: "storeProduct", message: "Use StoreProduct instead") - @available(macOS, obsoleted: 1, renamed: "storeProduct", message: "Use StoreProduct instead") - @available(macCatalyst, obsoleted: 1, renamed: "storeProduct", message: "Use StoreProduct instead") - @objc dynamic public var product: StoreKit.SKProduct { - @objc get - } -} -extension RevenueCat.StoreProductDiscount.PaymentMode { - @available(iOS, obsoleted: 1, message: "This option no longer exists. PaymentMode would be nil instead.") - @available(tvOS, obsoleted: 1, message: "This option no longer exists. PaymentMode would be nil instead.") - @available(watchOS, obsoleted: 1, message: "This option no longer exists. PaymentMode would be nil instead.") - @available(macOS, obsoleted: 1, message: "This option no longer exists. PaymentMode would be nil instead.") - @available(macCatalyst, obsoleted: 1, message: "This option no longer exists. PaymentMode would be nil instead.") - public static var none: RevenueCat.StoreProductDiscount.PaymentMode { - get - } -} -@available(iOS, obsoleted: 1, renamed: "StoreProductDiscount.PaymentMode") -@available(tvOS, obsoleted: 1, renamed: "StoreProductDiscount.PaymentMode") -@available(watchOS, obsoleted: 1, renamed: "StoreProductDiscount.PaymentMode") -@available(macOS, obsoleted: 1, renamed: "StoreProductDiscount.PaymentMode") -@available(macCatalyst, obsoleted: 1, renamed: "StoreProductDiscount.PaymentMode") -public enum RCPaymentMode { -} -@_inheritsConvenienceInitializers @available(iOS, obsoleted: 1, message: "Use PromotionalOffer instead") -@available(tvOS, obsoleted: 1, message: "Use PromotionalOffer instead") -@available(watchOS, obsoleted: 1, message: "Use PromotionalOffer instead") -@available(macOS, obsoleted: 1, message: "Use PromotionalOffer instead") -@available(macCatalyst, obsoleted: 1, message: "Use PromotionalOffer instead") -@objc(RCPromotionalOfferEligibility) public class PromotionalOfferEligibility : ObjectiveC.NSObject { - @objc override dynamic public init() - @objc deinit -} -@available(iOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(tvOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(watchOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(macOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(macCatalyst, obsoleted: 1, message: "Use ErrorCode instead") -public var ErrorDomain: Foundation.NSErrorDomain { - get -} -@available(iOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(tvOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(watchOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(macOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(macCatalyst, obsoleted: 1, message: "Use ErrorCode instead") -public enum RCBackendErrorCode { -} -@objc @_inheritsConvenienceInitializers @available(iOS, obsoleted: 1) -@available(tvOS, obsoleted: 1) -@available(watchOS, obsoleted: 1) -@available(macOS, obsoleted: 1) -@available(macCatalyst, obsoleted: 1) -public class RCPurchasesErrorUtils : ObjectiveC.NSObject { - @objc override dynamic public init() - @objc deinit -} -extension RevenueCat.Purchases { - @available(iOS, obsoleted: 1, renamed: "ErrorCode") - @available(tvOS, obsoleted: 1, renamed: "ErrorCode") - @available(watchOS, obsoleted: 1, renamed: "ErrorCode") - @available(macOS, obsoleted: 1, renamed: "ErrorCode") - @available(macCatalyst, obsoleted: 1, renamed: "ErrorCode") - public enum Errors { - } - @available(iOS, obsoleted: 1) - @available(tvOS, obsoleted: 1) - @available(watchOS, obsoleted: 1) - @available(macOS, obsoleted: 1) - @available(macCatalyst, obsoleted: 1) - public enum FinishableKey { - } - @available(iOS, obsoleted: 1) - @available(tvOS, obsoleted: 1) - @available(watchOS, obsoleted: 1) - @available(macOS, obsoleted: 1) - @available(macCatalyst, obsoleted: 1) - public enum ReadableErrorCodeKey { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum ErrorCode { - } - @available(iOS, obsoleted: 1) - @available(tvOS, obsoleted: 1) - @available(watchOS, obsoleted: 1) - @available(macOS, obsoleted: 1) - @available(macCatalyst, obsoleted: 1) - public enum RevenueCatBackendErrorCode { - } - @available(iOS, obsoleted: 1, renamed: "StoreTransaction") - @available(tvOS, obsoleted: 1, renamed: "StoreTransaction") - @available(watchOS, obsoleted: 1, renamed: "StoreTransaction") - @available(macOS, obsoleted: 1, renamed: "StoreTransaction") - @available(macCatalyst, obsoleted: 1, renamed: "StoreTransaction") - public enum Transaction { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum EntitlementInfo { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum EntitlementInfos { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum PackageType { - } - @available(iOS, obsoleted: 1, renamed: "CustomerInfo") - @available(tvOS, obsoleted: 1, renamed: "CustomerInfo") - @available(watchOS, obsoleted: 1, renamed: "CustomerInfo") - @available(macOS, obsoleted: 1, renamed: "CustomerInfo") - @available(macCatalyst, obsoleted: 1, renamed: "CustomerInfo") - public enum PurchaserInfo { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum Offering { - } - @available(iOS, obsoleted: 1) - @available(tvOS, obsoleted: 1) - @available(watchOS, obsoleted: 1) - @available(macOS, obsoleted: 1) - @available(macCatalyst, obsoleted: 1) - public enum ErrorUtils { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum Store { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum PeriodType { - } -} -@_hasMissingDesignatedInitializers @objc(RCPromotionalOffer) final public class PromotionalOffer : ObjectiveC.NSObject { - final public let discount: RevenueCat.StoreProductDiscount - @objc deinit -} -extension RevenueCat.Purchases { - @available(iOS, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(tvOS, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(watchOS, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(macOS, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(macCatalyst, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - public func checkTrialOrIntroDiscountEligibility(_ productIdentifiers: [Swift.String], completion: @escaping ([Swift.String : RevenueCat.IntroEligibility]) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, introduced: 13.0, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(tvOS, introduced: 13.0, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(watchOS, introduced: 6.2, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(macOS, introduced: 10.15, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(macCatalyst, introduced: 13.0, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - public func checkTrialOrIntroDiscountEligibility(_ productIdentifiers: [Swift.String]) async -> [Swift.String : RevenueCat.IntroEligibility] - #endif - -} -@objc(RCPurchasesErrorCode) public enum ErrorCode : Swift.Int, Swift.Error { - @objc(RCUnknownError) case unknownError = 0 - @objc(RCPurchaseCancelledError) case purchaseCancelledError = 1 - @objc(RCStoreProblemError) case storeProblemError = 2 - @objc(RCPurchaseNotAllowedError) case purchaseNotAllowedError = 3 - @objc(RCPurchaseInvalidError) case purchaseInvalidError = 4 - @objc(RCProductNotAvailableForPurchaseError) case productNotAvailableForPurchaseError = 5 - @objc(RCProductAlreadyPurchasedError) case productAlreadyPurchasedError = 6 - @objc(RCReceiptAlreadyInUseError) case receiptAlreadyInUseError = 7 - @objc(RCInvalidReceiptError) case invalidReceiptError = 8 - @objc(RCMissingReceiptFileError) case missingReceiptFileError = 9 - @objc(RCNetworkError) case networkError = 10 - @objc(RCInvalidCredentialsError) case invalidCredentialsError = 11 - @objc(RCUnexpectedBackendResponseError) case unexpectedBackendResponseError = 12 - @objc(RCReceiptInUseByOtherSubscriberError) case receiptInUseByOtherSubscriberError = 13 - @objc(RCInvalidAppUserIdError) case invalidAppUserIdError = 14 - @objc(RCOperationAlreadyInProgressForProductError) case operationAlreadyInProgressForProductError = 15 - @objc(RCUnknownBackendError) case unknownBackendError = 16 - @objc(RCInvalidAppleSubscriptionKeyError) case invalidAppleSubscriptionKeyError = 17 - @objc(RCIneligibleError) case ineligibleError = 18 - @objc(RCInsufficientPermissionsError) case insufficientPermissionsError = 19 - @objc(RCPaymentPendingError) case paymentPendingError = 20 - @objc(RCInvalidSubscriberAttributesError) case invalidSubscriberAttributesError = 21 - @objc(RCLogOutAnonymousUserError) case logOutAnonymousUserError = 22 - @objc(RCConfigurationError) case configurationError = 23 - @objc(RCUnsupportedError) case unsupportedError = 24 - @objc(RCEmptySubscriberAttributesError) case emptySubscriberAttributes = 25 - @objc(RCProductDiscountMissingIdentifierError) case productDiscountMissingIdentifierError = 26 - @objc(RCMissingAppUserIDForAliasCreationError) case missingAppUserIDForAliasCreationError = 27 - @objc(RCProductDiscountMissingSubscriptionGroupIdentifierError) case productDiscountMissingSubscriptionGroupIdentifierError = 28 - @objc(RCCustomerInfoError) case customerInfoError = 29 - @objc(RCSystemInfoError) case systemInfoError = 30 - @objc(RCBeginRefundRequestError) case beginRefundRequestError = 31 - @objc(RCProductRequestTimedOut) case productRequestTimedOut = 32 - @objc(RCAPIEndpointBlocked) case apiEndpointBlockedError = 33 - @objc(RCInvalidPromotionalOfferError) case invalidPromotionalOfferError = 34 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public static var _nsErrorDomain: Swift.String { - get - } - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.ErrorCode : Swift.CaseIterable { - public typealias AllCases = [RevenueCat.ErrorCode] - public static var allCases: [RevenueCat.ErrorCode] { - get - } -} -extension RevenueCat.ErrorCode { - public var description: Swift.String { - get - } -} -extension RevenueCat.ErrorCode : Foundation.CustomNSError { - public var errorUserInfo: [Swift.String : Any] { - get - } -} -@objc(RCRefundRequestStatus) public enum RefundRequestStatus : Swift.Int { - @objc(RCRefundRequestUserCancelled) case userCancelled = 0 - @objc(RCRefundRequestSuccess) case success - @objc(RCRefundRequestError) case error - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.Purchases { - @objc(RCPlatformInfo) final public class PlatformInfo : ObjectiveC.NSObject { - @objc public init(flavor: Swift.String, version: Swift.String) - @objc deinit - } - @objc public static var platformInfo: RevenueCat.Purchases.PlatformInfo? -} -@_inheritsConvenienceInitializers @objc(RCDangerousSettings) public class DangerousSettings : ObjectiveC.NSObject { - @objc final public let autoSyncPurchases: Swift.Bool - @objc override convenience dynamic public init() - @objc public init(autoSyncPurchases: Swift.Bool) - @objc deinit -} -@_hasMissingDesignatedInitializers @objc(RCCustomerInfo) public class CustomerInfo : ObjectiveC.NSObject { - @objc final public let entitlements: RevenueCat.EntitlementInfos - @objc public var activeSubscriptions: Swift.Set { - @objc get - } - @objc public var allPurchasedProductIdentifiers: Swift.Set { - @objc get - } - @objc public var latestExpirationDate: Foundation.Date? { - @objc get - } - @available(*, deprecated, message: "use nonSubscriptionTransactions") - @objc public var nonConsumablePurchases: Swift.Set { - @objc get - } - @objc final public let nonSubscriptionTransactions: [RevenueCat.StoreTransaction] - @objc final public let requestDate: Foundation.Date - @objc final public let firstSeen: Foundation.Date - @objc final public let originalAppUserId: Swift.String - @objc final public let managementURL: Foundation.URL? - @objc final public let originalPurchaseDate: Foundation.Date? - @objc final public let originalApplicationVersion: Swift.String? - @objc final public let rawData: [Swift.String : Any] - @objc public func expirationDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? - @objc public func purchaseDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? - @objc public func expirationDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? - @objc public func purchaseDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc override dynamic public var hash: Swift.Int { - @objc get - } - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc deinit -} -extension RevenueCat.CustomerInfo : RevenueCat.RawDataContainer { - public typealias Content = [Swift.String : Any] -} -@objc(RCStore) public enum Store : Swift.Int { - @objc(RCAppStore) case appStore = 0 - @objc(RCMacAppStore) case macAppStore = 1 - @objc(RCPlayStore) case playStore = 2 - @objc(RCStripe) case stripe = 3 - @objc(RCPromotional) case promotional = 4 - @objc(RCUnknownStore) case unknownStore = 5 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.Store : Swift.CaseIterable { - public typealias AllCases = [RevenueCat.Store] - public static var allCases: [RevenueCat.Store] { - get - } -} -@objc(RCPeriodType) public enum PeriodType : Swift.Int { - @objc(RCNormal) case normal = 0 - @objc(RCIntro) case intro = 1 - @objc(RCTrial) case trial = 2 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.PeriodType : Swift.CaseIterable { - public typealias AllCases = [RevenueCat.PeriodType] - public static var allCases: [RevenueCat.PeriodType] { - get - } -} -@_hasMissingDesignatedInitializers @objc(RCEntitlementInfo) public class EntitlementInfo : ObjectiveC.NSObject { - @objc final public let identifier: Swift.String - @objc final public let isActive: Swift.Bool - @objc final public let willRenew: Swift.Bool - @objc final public let periodType: RevenueCat.PeriodType - @objc final public let latestPurchaseDate: Foundation.Date? - @objc final public let originalPurchaseDate: Foundation.Date? - @objc final public let expirationDate: Foundation.Date? - @objc final public let store: RevenueCat.Store - @objc final public let productIdentifier: Swift.String - @objc final public let isSandbox: Swift.Bool - @objc final public let unsubscribeDetectedAt: Foundation.Date? - @objc final public let billingIssueDetectedAt: Foundation.Date? - @objc final public let ownershipType: RevenueCat.PurchaseOwnershipType - @objc final public let rawData: [Swift.String : Any] - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc override dynamic public var hash: Swift.Int { - @objc get - } - @objc deinit -} -extension RevenueCat.EntitlementInfo : RevenueCat.RawDataContainer { - public typealias Content = [Swift.String : Any] -} -extension RevenueCat.EntitlementInfo : Swift.Identifiable { - public var id: Swift.String { - get - } - public typealias ID = Swift.String -} -@objc(RCLogLevel) public enum LogLevel : Swift.Int, Swift.CustomStringConvertible { - case debug, info, warn, error - public var description: Swift.String { - get - } - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -public typealias VerboseLogHandler = (_ level: RevenueCat.LogLevel, _ message: Swift.String, _ file: Swift.String?, _ function: Swift.String?, _ line: Swift.UInt) -> Swift.Void -public typealias LogHandler = (_ level: RevenueCat.LogLevel, _ message: Swift.String) -> Swift.Void -public typealias SK1Transaction = StoreKit.SKPaymentTransaction -@available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) -public typealias SK2Transaction = StoreKit.Transaction -@_hasMissingDesignatedInitializers @objc(RCStoreTransaction) final public class StoreTransaction : ObjectiveC.NSObject { - @objc final public var productIdentifier: Swift.String { - @objc get - } - @objc final public var purchaseDate: Foundation.Date { - @objc get - } - @objc final public var transactionIdentifier: Swift.String { - @objc get - } - @objc final public var quantity: Swift.Int { - @objc get - } - @objc override final public func isEqual(_ object: Any?) -> Swift.Bool - @objc override final public var hash: Swift.Int { - @objc get - } - @objc deinit -} -extension RevenueCat.StoreTransaction { - @objc final public var sk1Transaction: RevenueCat.SK1Transaction? { - @objc get - } - @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) - final public var sk2Transaction: RevenueCat.SK2Transaction? { - get - } -} -extension RevenueCat.StoreTransaction : Swift.Identifiable { - final public var id: Swift.String { - get - } - public typealias ID = Swift.String -} -public protocol RawDataContainer { - associatedtype Content - var rawData: Self.Content { get } -} -public typealias PurchaseResultData = (transaction: RevenueCat.StoreTransaction?, customerInfo: RevenueCat.CustomerInfo, userCancelled: Swift.Bool) -public typealias PurchaseCompletedBlock = (RevenueCat.StoreTransaction?, RevenueCat.CustomerInfo?, Swift.Error?, Swift.Bool) -> Swift.Void -public typealias DeferredPromotionalPurchaseBlock = (@escaping RevenueCat.PurchaseCompletedBlock) -> Swift.Void -@_hasMissingDesignatedInitializers @objc(RCPurchases) public class Purchases : ObjectiveC.NSObject { - @objc(sharedPurchases) public static var shared: RevenueCat.Purchases { - @objc get - } - @objc public static var isConfigured: Swift.Bool { - @objc get - } - @objc public var delegate: RevenueCat.PurchasesDelegate? { - @objc get - @objc set - } - @objc public static var automaticAppleSearchAdsAttributionCollection: Swift.Bool - @objc public static var logLevel: RevenueCat.LogLevel { - @objc get - @objc set - } - @objc public static var proxyURL: Foundation.URL? { - @objc get - @objc set - } - @objc public static var forceUniversalAppStore: Swift.Bool { - @objc get - @objc set - } - @available(iOS 8.0, macOS 10.14, watchOS 6.2, macCatalyst 13.0, *) - @objc public static var simulatesAskToBuyInSandbox: Swift.Bool { - @objc get - @objc set - } - @objc public static func canMakePayments() -> Swift.Bool - @objc public static var logHandler: RevenueCat.LogHandler { - @objc get - @objc set - } - @objc public static var verboseLogHandler: RevenueCat.VerboseLogHandler { - @objc get - @objc set - } - @objc public static var verboseLogs: Swift.Bool { - @objc get - @objc set - } - @objc public static var frameworkVersion: Swift.String { - @objc get - } - @objc public var finishTransactions: Swift.Bool { - @objc get - @objc set - } - @objc public func collectDeviceIdentifiers() - @objc deinit -} -extension RevenueCat.Purchases { - @objc dynamic public func setAttributes(_ attributes: [Swift.String : Swift.String]) - @objc dynamic public func setEmail(_ email: Swift.String?) - @objc dynamic public func setPhoneNumber(_ phoneNumber: Swift.String?) - @objc dynamic public func setDisplayName(_ displayName: Swift.String?) - @objc dynamic public func setPushToken(_ pushToken: Foundation.Data?) - @objc dynamic public func setAdjustID(_ adjustID: Swift.String?) - @objc dynamic public func setAppsflyerID(_ appsflyerID: Swift.String?) - @objc dynamic public func setFBAnonymousID(_ fbAnonymousID: Swift.String?) - @objc dynamic public func setMparticleID(_ mparticleID: Swift.String?) - @objc dynamic public func setOnesignalID(_ onesignalID: Swift.String?) - @objc dynamic public func setAirshipChannelID(_ airshipChannelID: Swift.String?) - @objc dynamic public func setCleverTapID(_ cleverTapID: Swift.String?) - @objc dynamic public func setMediaSource(_ mediaSource: Swift.String?) - @objc dynamic public func setCampaign(_ campaign: Swift.String?) - @objc dynamic public func setAdGroup(_ adGroup: Swift.String?) - @objc dynamic public func setAd(_ installAd: Swift.String?) - @objc dynamic public func setKeyword(_ keyword: Swift.String?) - @objc dynamic public func setCreative(_ creative: Swift.String?) -} -extension RevenueCat.Purchases { - @objc dynamic public var appUserID: Swift.String { - @objc get - } - @objc dynamic public var isAnonymous: Swift.Bool { - @objc get - } - @objc(logIn:completion:) dynamic public func logIn(_ appUserID: Swift.String, completion: @escaping (RevenueCat.CustomerInfo?, Swift.Bool, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func logIn(_ appUserID: Swift.String) async throws -> (customerInfo: RevenueCat.CustomerInfo, created: Swift.Bool) - #endif - - @objc dynamic public func logOut(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func logOut() async throws -> RevenueCat.CustomerInfo - #endif - - @objc dynamic public func getOfferings(completion: @escaping (RevenueCat.Offerings?, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func offerings() async throws -> RevenueCat.Offerings - #endif - -} -extension RevenueCat.Purchases { - @objc dynamic public func getCustomerInfo(completion: @escaping (RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func customerInfo() async throws -> RevenueCat.CustomerInfo - #endif - - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public var customerInfoStream: _Concurrency.AsyncStream { - get - } - @objc(getProductsWithIdentifiers:completion:) dynamic public func getProducts(_ productIdentifiers: [Swift.String], completion: @escaping ([RevenueCat.StoreProduct]) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func products(_ productIdentifiers: [Swift.String]) async -> [RevenueCat.StoreProduct] - #endif - - @objc(purchaseProduct:withCompletion:) dynamic public func purchase(product: RevenueCat.StoreProduct, completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func purchase(product: RevenueCat.StoreProduct) async throws -> RevenueCat.PurchaseResultData - #endif - - @objc(purchasePackage:withCompletion:) dynamic public func purchase(package: RevenueCat.Package, completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func purchase(package: RevenueCat.Package) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS 12.2, macOS 10.14.4, watchOS 6.2, macCatalyst 13.0, tvOS 12.2, *) - @objc(purchaseProduct:withPromotionalOffer:completion:) dynamic public func purchase(product: RevenueCat.StoreProduct, promotionalOffer: RevenueCat.PromotionalOffer, completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func purchase(product: RevenueCat.StoreProduct, promotionalOffer: RevenueCat.PromotionalOffer) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS 12.2, macOS 10.14.4, watchOS 6.2, macCatalyst 13.0, tvOS 12.2, *) - @objc(purchasePackage:withPromotionalOffer:completion:) dynamic public func purchase(package: RevenueCat.Package, promotionalOffer: RevenueCat.PromotionalOffer, completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func purchase(package: RevenueCat.Package, promotionalOffer: RevenueCat.PromotionalOffer) async throws -> RevenueCat.PurchaseResultData - #endif - - @objc dynamic public func syncPurchases(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func syncPurchases() async throws -> RevenueCat.CustomerInfo - #endif - - @objc dynamic public func restorePurchases(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)? = nil) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func restorePurchases() async throws -> RevenueCat.CustomerInfo - #endif - - @objc(checkTrialOrIntroDiscountEligibility:completion:) dynamic public func checkTrialOrIntroDiscountEligibility(productIdentifiers: [Swift.String], completion: @escaping ([Swift.String : RevenueCat.IntroEligibility]) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, tvOS 13.0, macOS 10.15, watchOS 6.2, *) - public func checkTrialOrIntroDiscountEligibility(productIdentifiers: [Swift.String]) async -> [Swift.String : RevenueCat.IntroEligibility] - #endif - - @objc(checkTrialOrIntroDiscountEligibilityForProduct:completion:) dynamic public func checkTrialOrIntroDiscountEligibility(product: RevenueCat.StoreProduct, completion: @escaping (RevenueCat.IntroEligibilityStatus) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, tvOS 13.0, macOS 10.15, watchOS 6.2, *) - public func checkTrialOrIntroDiscountEligibility(product: RevenueCat.StoreProduct) async -> RevenueCat.IntroEligibilityStatus - #endif - - @objc dynamic public func invalidateCustomerInfoCache() - @available(iOS 14.0, *) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - @available(macOS, unavailable) - @available(macCatalyst, unavailable) - @objc dynamic public func presentCodeRedemptionSheet() - @available(iOS 12.2, macOS 10.14.4, macCatalyst 13.0, tvOS 12.2, watchOS 6.2, *) - @objc(getPromotionalOfferForProductDiscount:withProduct:withCompletion:) dynamic public func getPromotionalOffer(forProductDiscount discount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct, completion: @escaping (RevenueCat.PromotionalOffer?, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func getPromotionalOffer(forProductDiscount discount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct) async throws -> RevenueCat.PromotionalOffer - #endif - - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func getEligiblePromotionalOffers(forProduct product: RevenueCat.StoreProduct) async -> [RevenueCat.PromotionalOffer] - #endif - - @available(iOS 13.0, macOS 10.15, *) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - @objc dynamic public func showManageSubscriptions(completion: @escaping (Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, *) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - public func showManageSubscriptions() async throws - #endif - - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 15.0, *) - @available(macOS, unavailable) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - @objc(beginRefundRequestForProduct:completion:) dynamic public func beginRefundRequest(forProduct productID: Swift.String) async throws -> RevenueCat.RefundRequestStatus - #endif - - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 15.0, *) - @available(macOS, unavailable) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - @objc(beginRefundRequestForEntitlement:completion:) dynamic public func beginRefundRequest(forEntitlement entitlementID: Swift.String) async throws -> RevenueCat.RefundRequestStatus - #endif - - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 15.0, *) - @available(macOS, unavailable) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - @objc(beginRefundRequestForActiveEntitlementWithCompletion:) dynamic public func beginRefundRequestForActiveEntitlement() async throws -> RevenueCat.RefundRequestStatus - #endif - -} -extension RevenueCat.Purchases { - @discardableResult - @objc(configureWithAPIKey:) public static func configure(withAPIKey apiKey: Swift.String) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:dangerousSettings:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool, dangerousSettings: RevenueCat.DangerousSettings?) -> RevenueCat.Purchases -} -extension RevenueCat.Purchases { - @objc dynamic public func shouldPurchasePromoProduct(_ product: RevenueCat.StoreProduct, defermentBlock: @escaping RevenueCat.DeferredPromotionalPurchaseBlock) -} -extension RevenueCat.Purchases { - @available(*, deprecated, message: "use Purchases.logLevel instead") - @objc public static var debugLogsEnabled: Swift.Bool { - @objc get - @objc set - } - @available(*, deprecated, message: "Configure behavior through the RevenueCat dashboard instead") - @objc dynamic public var allowSharingAppStoreAccount: Swift.Bool { - @objc get - @objc set - } - @available(*, deprecated, message: "Use the set functions instead") - @objc public static func addAttributionData(_ data: [Swift.String : Any], fromNetwork network: RevenueCat.AttributionNetwork) - @available(*, deprecated, message: "Use the set functions instead") - @objc(addAttributionData:fromNetwork:forNetworkUserId:) public static func addAttributionData(_ data: [Swift.String : Any], from network: RevenueCat.AttributionNetwork, forNetworkUserId networkUserId: Swift.String?) -} -@objc(RCSubscriptionPeriod) public class SubscriptionPeriod : ObjectiveC.NSObject { - @objc final public let value: Swift.Int - @objc final public let unit: RevenueCat.SubscriptionPeriod.Unit - public init(value: Swift.Int, unit: RevenueCat.SubscriptionPeriod.Unit) - @objc(RCSubscriptionPeriodUnit) public enum Unit : Swift.Int { - case day = 0 - case week = 1 - case month = 2 - case year = 3 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } - } - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc override dynamic public var hash: Swift.Int { - @objc get - } - @objc deinit -} -extension RevenueCat.SubscriptionPeriod { - @available(iOS, unavailable, renamed: "value") - @available(tvOS, unavailable, renamed: "value") - @available(watchOS, unavailable, renamed: "value") - @available(macOS, unavailable, renamed: "value") - @objc dynamic public var numberOfUnits: Swift.Int { - @objc get - } -} -extension RevenueCat.SubscriptionPeriod.Unit : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { - get - } -} -extension RevenueCat.SubscriptionPeriod { - @objc override dynamic public var debugDescription: Swift.String { - @objc get - } -} -extension RevenueCat.SubscriptionPeriod.Unit : Swift.Encodable { -} -extension RevenueCat.SubscriptionPeriod : Swift.Encodable { - public func encode(to encoder: Swift.Encoder) throws -} -@objc(RCPurchaseOwnershipType) public enum PurchaseOwnershipType : Swift.Int { - case purchased = 0 - case familyShared = 1 - case unknown = 2 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.PurchaseOwnershipType : Swift.CaseIterable { - public typealias AllCases = [RevenueCat.PurchaseOwnershipType] - public static var allCases: [RevenueCat.PurchaseOwnershipType] { - get - } -} -extension RevenueCat.PurchaseOwnershipType : Swift.Decodable { - public init(from decoder: Swift.Decoder) throws -} -extension RevenueCat.PeriodType : Swift.Decodable { - public init(from decoder: Swift.Decoder) throws -} -extension RevenueCat.Store : Swift.Decodable { - public init(from decoder: Swift.Decoder) throws -} -@_hasMissingDesignatedInitializers @objc(RCEntitlementInfos) public class EntitlementInfos : ObjectiveC.NSObject { - @objc final public let all: [Swift.String : RevenueCat.EntitlementInfo] - @objc public var active: [Swift.String : RevenueCat.EntitlementInfo] { - @objc get - } - @objc public subscript(key: Swift.String) -> RevenueCat.EntitlementInfo? { - @objc get - } - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc deinit -} -@objc(RCPackageType) public enum PackageType : Swift.Int { - case unknown = -2, custom, lifetime, annual, sixMonth, threeMonth, twoMonth, monthly, weekly - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -@_hasMissingDesignatedInitializers @objc(RCPackage) public class Package : ObjectiveC.NSObject { - @objc final public let identifier: Swift.String - @objc final public let packageType: RevenueCat.PackageType - @objc final public let storeProduct: RevenueCat.StoreProduct - @objc final public let offeringIdentifier: Swift.String - @objc public var localizedPriceString: Swift.String { - @objc get - } - @objc public var localizedIntroductoryPriceString: Swift.String? { - @objc get - } - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc override dynamic public var hash: Swift.Int { - @objc get - } - @objc deinit -} -@objc extension RevenueCat.Package { - @objc public static func string(from packageType: RevenueCat.PackageType) -> Swift.String? - @objc dynamic public class func packageType(from string: Swift.String) -> RevenueCat.PackageType -} -extension RevenueCat.Package : Swift.Identifiable { - public var id: Swift.String { - get - } - public typealias ID = Swift.String -} -@objc(RCIntroEligibilityStatus) public enum IntroEligibilityStatus : Swift.Int { - case unknown = 0 - case ineligible - case eligible - case noIntroOfferExists - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.IntroEligibilityStatus : Swift.CaseIterable { - public typealias AllCases = [RevenueCat.IntroEligibilityStatus] - public static var allCases: [RevenueCat.IntroEligibilityStatus] { - get - } -} -@_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objc(RCIntroEligibility) public class IntroEligibility : ObjectiveC.NSObject { - @objc final public let status: RevenueCat.IntroEligibilityStatus - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc deinit -} -@available(iOS 11.2, macOS 10.13.2, tvOS 11.2, watchOS 6.2, *) -public typealias SK1ProductDiscount = StoreKit.SKProductDiscount -@available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) -public typealias SK2ProductDiscount = StoreKit.Product.SubscriptionOffer -@_hasMissingDesignatedInitializers @objc(RCStoreProductDiscount) final public class StoreProductDiscount : ObjectiveC.NSObject { - @objc(RCPaymentMode) public enum PaymentMode : Swift.Int { - case payAsYouGo = 0 - case payUpFront = 1 - case freeTrial = 2 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } - } - @objc(RCDiscountType) public enum DiscountType : Swift.Int { - case introductory = 0 - case promotional = 1 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } - } - @objc final public var offerIdentifier: Swift.String? { - @objc get - } - @objc final public var currencyCode: Swift.String? { - @objc get - } - final public var price: Foundation.Decimal { - get - } - @objc final public var localizedPriceString: Swift.String { - @objc get - } - @objc final public var paymentMode: RevenueCat.StoreProductDiscount.PaymentMode { - @objc get - } - @objc final public var subscriptionPeriod: RevenueCat.SubscriptionPeriod { - @objc get - } - @objc final public var type: RevenueCat.StoreProductDiscount.DiscountType { - @objc get - } - @objc override final public func isEqual(_ object: Any?) -> Swift.Bool - @objc override final public var hash: Swift.Int { - @objc get - } - @objc deinit -} -extension RevenueCat.StoreProductDiscount { - @objc(price) final public var priceDecimalNumber: Foundation.NSDecimalNumber { - @objc get - } -} -extension RevenueCat.StoreProductDiscount { - public struct Data : Swift.Hashable { - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: RevenueCat.StoreProductDiscount.Data, b: RevenueCat.StoreProductDiscount.Data) -> Swift.Bool - public var hashValue: Swift.Int { - get - } - } -} -extension RevenueCat.StoreProductDiscount { - @available(iOS 12.2, macOS 10.14.4, tvOS 12.2, watchOS 6.2, *) - @objc final public var sk1Discount: RevenueCat.SK1ProductDiscount? { - @objc get - } - @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) - final public var sk2Discount: RevenueCat.SK2ProductDiscount? { - get - } -} -extension RevenueCat.StoreProductDiscount : Swift.Encodable { - final public func encode(to encoder: Swift.Encoder) throws -} -extension RevenueCat.StoreProductDiscount.PaymentMode : Swift.Encodable { -} -extension RevenueCat.StoreProductDiscount : Swift.Identifiable { - final public var id: RevenueCat.StoreProductDiscount.Data { - get - } - public typealias ID = RevenueCat.StoreProductDiscount.Data -} -@objc(RCPurchasesDelegate) public protocol PurchasesDelegate : ObjectiveC.NSObjectProtocol { - @available(swift, obsoleted: 1, renamed: "purchases(_:receivedUpdated:)") - @available(iOS, obsoleted: 1) - @available(macOS, obsoleted: 1) - @available(tvOS, obsoleted: 1) - @available(watchOS, obsoleted: 1) - @objc(purchases:didReceiveUpdatedPurchaserInfo:) optional func purchases(_ purchases: RevenueCat.Purchases, didReceiveUpdated purchaserInfo: RevenueCat.CustomerInfo) - @objc(purchases:receivedUpdatedCustomerInfo:) optional func purchases(_ purchases: RevenueCat.Purchases, receivedUpdated customerInfo: RevenueCat.CustomerInfo) - @objc optional func purchases(_ purchases: RevenueCat.Purchases, shouldPurchasePromoProduct product: RevenueCat.StoreProduct, defermentBlock makeDeferredPurchase: @escaping RevenueCat.DeferredPromotionalPurchaseBlock) -} -@objc(RCAttributionNetwork) public enum AttributionNetwork : Swift.Int { - case appleSearchAds - case adjust - case appsFlyer - case branch - case tenjin - case facebook - case mParticle - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.AttributionNetwork : Swift.Encodable { - public func encode(to encoder: Swift.Encoder) throws -} -public typealias SK1Product = StoreKit.SKProduct -@available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) -public typealias SK2Product = StoreKit.Product -@_hasMissingDesignatedInitializers @objc(RCStoreProduct) final public class StoreProduct : ObjectiveC.NSObject { - @objc override final public func isEqual(_ object: Any?) -> Swift.Bool - @objc override final public var hash: Swift.Int { - @objc get - } - @objc final public var productType: RevenueCat.StoreProduct.ProductType { - @objc get - } - @objc final public var productCategory: RevenueCat.StoreProduct.ProductCategory { - @objc get - } - @objc final public var localizedDescription: Swift.String { - @objc get - } - @objc final public var localizedTitle: Swift.String { - @objc get - } - @objc final public var currencyCode: Swift.String? { - @objc get - } - final public var price: Foundation.Decimal { - get - } - @objc final public var localizedPriceString: Swift.String { - @objc get - } - @objc final public var productIdentifier: Swift.String { - @objc get - } - @available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 8.0, *) - @objc final public var isFamilyShareable: Swift.Bool { - @objc get - } - @available(iOS 12.0, macCatalyst 13.0, tvOS 12.0, macOS 10.14, watchOS 6.2, *) - @objc final public var subscriptionGroupIdentifier: Swift.String? { - @objc get - } - @objc final public var priceFormatter: Foundation.NumberFormatter? { - @objc get - } - @available(iOS 11.2, macOS 10.13.2, tvOS 11.2, watchOS 6.2, *) - @objc final public var subscriptionPeriod: RevenueCat.SubscriptionPeriod? { - @objc get - } - @available(iOS 11.2, macOS 10.13.2, tvOS 11.2, watchOS 6.2, *) - @objc final public var introductoryDiscount: RevenueCat.StoreProductDiscount? { - @objc get - } - @available(iOS 12.2, macOS 10.14.4, tvOS 12.2, watchOS 6.2, *) - @objc final public var discounts: [RevenueCat.StoreProductDiscount] { - @objc get - } - @objc deinit -} -extension RevenueCat.StoreProduct { - @objc(price) final public var priceDecimalNumber: Foundation.NSDecimalNumber { - @objc get - } - @available(iOS 11.2, macOS 10.13.2, tvOS 11.2, watchOS 6.2, *) - @objc final public var pricePerMonth: Foundation.NSDecimalNumber? { - @objc get - } - @objc final public var localizedIntroductoryPriceString: Swift.String? { - @objc get - } -} -@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) -extension RevenueCat.StoreProduct { - - #if compiler(>=5.3) && $AsyncAwait - final public func getEligiblePromotionalOffers() async -> [RevenueCat.PromotionalOffer] - #endif - -} -extension RevenueCat.StoreProduct { - @objc convenience dynamic public init(sk1Product: RevenueCat.SK1Product) - @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) - convenience public init(sk2Product: RevenueCat.SK2Product) - @objc final public var sk1Product: RevenueCat.SK1Product? { - @objc get - } - @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) - final public var sk2Product: RevenueCat.SK2Product? { - get - } -} -extension RevenueCat.StoreProduct { - @available(iOS, unavailable, introduced: 11.2, renamed: "introductoryDiscount", message: "Use StoreProductDiscount instead") - @available(tvOS, unavailable, introduced: 11.2, renamed: "introductoryDiscount", message: "Use StoreProductDiscount instead") - @available(watchOS, unavailable, introduced: 6.2, renamed: "introductoryDiscount", message: "Use StoreProductDiscount instead") - @available(macOS, unavailable, introduced: 10.13.2, renamed: "introductoryDiscount", message: "Use StoreProductDiscount instead") - @objc final public var introductoryPrice: StoreKit.SKProductDiscount? { - @objc get - } - @available(iOS, unavailable, message: "Use localizedPriceString instead") - @available(tvOS, unavailable, message: "Use localizedPriceString instead") - @available(watchOS, unavailable, message: "Use localizedPriceString instead") - @available(macOS, unavailable, message: "Use localizedPriceString instead") - @objc final public var priceLocale: Foundation.Locale { - @objc get - } -} -extension RevenueCat.StoreProduct.ProductCategory : Swift.Equatable {} -extension RevenueCat.StoreProduct.ProductCategory : Swift.Hashable {} -extension RevenueCat.StoreProduct.ProductCategory : Swift.RawRepresentable {} -extension RevenueCat.StoreProduct.ProductType : Swift.Equatable {} -extension RevenueCat.StoreProduct.ProductType : Swift.Hashable {} -extension RevenueCat.StoreProduct.ProductType : Swift.RawRepresentable {} -extension RevenueCat.StoreProductDiscount.PaymentMode : Swift.Equatable {} -extension RevenueCat.StoreProductDiscount.PaymentMode : Swift.Hashable {} -extension RevenueCat.StoreProductDiscount.PaymentMode : Swift.RawRepresentable {} -extension RevenueCat.ErrorCode : Swift.Equatable {} -extension RevenueCat.ErrorCode : Swift.Hashable {} -extension RevenueCat.ErrorCode : Swift.RawRepresentable {} -extension RevenueCat.ErrorCode : Swift.CustomStringConvertible {} -extension RevenueCat.RefundRequestStatus : Swift.Equatable {} -extension RevenueCat.RefundRequestStatus : Swift.Hashable {} -extension RevenueCat.RefundRequestStatus : Swift.RawRepresentable {} -extension RevenueCat.Store : Swift.Equatable {} -extension RevenueCat.Store : Swift.Hashable {} -extension RevenueCat.Store : Swift.RawRepresentable {} -extension RevenueCat.PeriodType : Swift.Equatable {} -extension RevenueCat.PeriodType : Swift.Hashable {} -extension RevenueCat.PeriodType : Swift.RawRepresentable {} -extension RevenueCat.LogLevel : Swift.Equatable {} -extension RevenueCat.LogLevel : Swift.Hashable {} -extension RevenueCat.LogLevel : Swift.RawRepresentable {} -extension RevenueCat.SubscriptionPeriod.Unit : Swift.Equatable {} -extension RevenueCat.SubscriptionPeriod.Unit : Swift.Hashable {} -extension RevenueCat.SubscriptionPeriod.Unit : Swift.RawRepresentable {} -extension RevenueCat.PurchaseOwnershipType : Swift.Equatable {} -extension RevenueCat.PurchaseOwnershipType : Swift.Hashable {} -extension RevenueCat.PurchaseOwnershipType : Swift.RawRepresentable {} -extension RevenueCat.PackageType : Swift.Equatable {} -extension RevenueCat.PackageType : Swift.Hashable {} -extension RevenueCat.PackageType : Swift.RawRepresentable {} -extension RevenueCat.IntroEligibilityStatus : Swift.Equatable {} -extension RevenueCat.IntroEligibilityStatus : Swift.Hashable {} -extension RevenueCat.IntroEligibilityStatus : Swift.RawRepresentable {} -extension RevenueCat.StoreProductDiscount.DiscountType : Swift.Equatable {} -extension RevenueCat.StoreProductDiscount.DiscountType : Swift.Hashable {} -extension RevenueCat.StoreProductDiscount.DiscountType : Swift.RawRepresentable {} -extension RevenueCat.AttributionNetwork : Swift.Equatable {} -extension RevenueCat.AttributionNetwork : Swift.Hashable {} -extension RevenueCat.AttributionNetwork : Swift.RawRepresentable {} diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64.swiftmodule b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64.swiftmodule deleted file mode 100644 index 20389fa..0000000 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/arm64.swiftmodule and /dev/null differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftdoc index afa84cb..d324314 100644 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftdoc and b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftinterface index 504a7d2..2a1590e 100644 --- a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +++ b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -1,5 +1,5 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30) +// swift-compiler-version: Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8) // swift-module-flags: -target x86_64-apple-ios11.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name RevenueCat import Foundation @_exported import RevenueCat @@ -47,6 +47,7 @@ extension RevenueCat.Offering : Swift.Identifiable { } public typealias ID = Swift.String } +infix operator ??? : DefaultPrecedence @_hasMissingDesignatedInitializers @objc(RCOfferings) public class Offerings : ObjectiveC.NSObject { @objc final public let all: [Swift.String : RevenueCat.Offering] @objc public var current: RevenueCat.Offering? { @@ -61,6 +62,74 @@ extension RevenueCat.Offering : Swift.Identifiable { } @objc deinit } +@_hasMissingDesignatedInitializers @objc(RCStorefront) public class Storefront : ObjectiveC.NSObject { + @objc public var countryCode: Swift.String { + @objc get + } + @objc public var identifier: Swift.String { + @objc get + } + @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool + @objc override dynamic public var hash: Swift.Int { + @objc get + } + @objc override dynamic public var description: Swift.String { + @objc get + } + @objc deinit +} +extension RevenueCat.Storefront { + + #if compiler(>=5.3) && $EffectfulProp + @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, macCatalyst 13.1, *) + public static var currentStorefront: RevenueCat.Storefront? { + get async + } + #endif + + @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, macCatalyst 13.1, *) + @available(swift, obsoleted: 0.0.1, renamed: "currentStorefront") + @objc public static var sk1CurrentStorefront: RevenueCat.Storefront? { + @objc get + } +} +extension RevenueCat.Storefront { + @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, macCatalyst 13.1, *) + @objc dynamic public var sk1Storefront: StoreKit.SKStorefront? { + @objc get + } + @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) + public var sk2Storefront: StoreKit.Storefront? { + get + } +} +@_hasMissingDesignatedInitializers @objc(RCAttribution) public class Attribution : ObjectiveC.NSObject { + @objc deinit +} +extension RevenueCat.Attribution { + @objc dynamic public func collectDeviceIdentifiers() + @objc dynamic public func setAttributes(_ attributes: [Swift.String : Swift.String]) + @objc dynamic public func setEmail(_ email: Swift.String?) + @objc dynamic public func setPhoneNumber(_ phoneNumber: Swift.String?) + @objc dynamic public func setDisplayName(_ displayName: Swift.String?) + @objc dynamic public func setPushToken(_ pushToken: Foundation.Data?) + @objc dynamic public func setPushTokenString(_ pushToken: Swift.String?) + @objc dynamic public func setAdjustID(_ adjustID: Swift.String?) + @objc dynamic public func setAppsflyerID(_ appsflyerID: Swift.String?) + @objc dynamic public func setFBAnonymousID(_ fbAnonymousID: Swift.String?) + @objc dynamic public func setMparticleID(_ mparticleID: Swift.String?) + @objc dynamic public func setOnesignalID(_ onesignalID: Swift.String?) + @objc dynamic public func setAirshipChannelID(_ airshipChannelID: Swift.String?) + @objc dynamic public func setCleverTapID(_ cleverTapID: Swift.String?) + @objc dynamic public func setMixpanelDistinctID(_ mixpanelDistinctID: Swift.String?) + @objc dynamic public func setFirebaseAppInstanceID(_ firebaseAppInstanceID: Swift.String?) + @objc dynamic public func setMediaSource(_ mediaSource: Swift.String?) + @objc dynamic public func setCampaign(_ campaign: Swift.String?) + @objc dynamic public func setAdGroup(_ adGroup: Swift.String?) + @objc dynamic public func setAd(_ installAd: Swift.String?) + @objc dynamic public func setKeyword(_ keyword: Swift.String?) + @objc dynamic public func setCreative(_ creative: Swift.String?) +} extension RevenueCat.StoreProduct { @objc(RCStoreProductCategory) public enum ProductCategory : Swift.Int { case subscription @@ -263,6 +332,12 @@ extension RevenueCat.Purchases { public func paymentDiscount(for discount: StoreKit.SKProductDiscount, product: StoreKit.SKProduct) async throws -> StoreKit.SKPaymentDiscount #endif + @available(iOS, obsoleted: 1, message: "This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") + @available(tvOS, obsoleted: 1, message: "This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") + @available(watchOS, obsoleted: 1, message: "This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") + @available(macOS, obsoleted: 1, message: "This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") + @available(macCatalyst, obsoleted: 1, message: "This was never meant to be public. Use `PurchasesDelegate.purchases(_:readyForPromotedProduct:purchase:)`") + @objc dynamic public func shouldPurchasePromoProduct(_ product: RevenueCat.StoreProduct, defermentBlock: @escaping RevenueCat.StartPurchaseBlock) @available(iOS, obsoleted: 1, renamed: "logIn") @available(tvOS, obsoleted: 1, renamed: "logIn") @available(watchOS, obsoleted: 1, renamed: "logIn") @@ -279,6 +354,11 @@ extension RevenueCat.Purchases { @available(macOS, obsoleted: 1, renamed: "logOut") @objc(resetWithCompletionBlock:) dynamic public func reset(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) } +@available(iOS, obsoleted: 1, renamed: "StartPurchaseBlock") +@available(tvOS, obsoleted: 1, renamed: "StartPurchaseBlock") +@available(watchOS, obsoleted: 1, renamed: "StartPurchaseBlock") +@available(macOS, obsoleted: 1, renamed: "StartPurchaseBlock") +public typealias DeferredPromotionalPurchaseBlock = RevenueCat.StartPurchaseBlock @_inheritsConvenienceInitializers @available(iOS, obsoleted: 1, renamed: "CustomerInfo") @available(tvOS, obsoleted: 1, renamed: "CustomerInfo") @available(watchOS, obsoleted: 1, renamed: "CustomerInfo") @@ -472,7 +552,24 @@ extension RevenueCat.Purchases { } } @_hasMissingDesignatedInitializers @objc(RCPromotionalOffer) final public class PromotionalOffer : ObjectiveC.NSObject { - final public let discount: RevenueCat.StoreProductDiscount + @objc final public let discount: RevenueCat.StoreProductDiscount + @objc final public let signedData: RevenueCat.PromotionalOffer.SignedData + @objc deinit +} +@objc extension RevenueCat.PromotionalOffer { + @_hasMissingDesignatedInitializers @objc(RCPromotionalOfferSignedData) public class SignedData : ObjectiveC.NSObject { + @objc final public let identifier: Swift.String + @objc final public let keyIdentifier: Swift.String + @objc final public let nonce: Foundation.UUID + @objc final public let signature: Swift.String + @objc final public let timestamp: Swift.Int + @objc deinit + } +} +@_hasMissingDesignatedInitializers @objc(RCNonSubscriptionTransaction) final public class NonSubscriptionTransaction : ObjectiveC.NSObject { + @objc final public let productIdentifier: Swift.String + @objc final public let purchaseDate: Foundation.Date + @objc final public let transactionIdentifier: Swift.String @objc deinit } extension RevenueCat.Purchases { @@ -492,6 +589,217 @@ extension RevenueCat.Purchases { public func checkTrialOrIntroDiscountEligibility(_ productIdentifiers: [Swift.String]) async -> [Swift.String : RevenueCat.IntroEligibility] #endif + + #if compiler(>=5.3) && $AsyncAwait + @available(iOS, deprecated, introduced: 13.0, renamed: "promotionalOffer(forProductDiscount:product:)") + @available(tvOS, deprecated, introduced: 13.0, renamed: "promotionalOffer(forProductDiscount:product:)") + @available(watchOS, deprecated, introduced: 6.2, renamed: "promotionalOffer(forProductDiscount:product:)") + @available(macOS, deprecated, introduced: 10.15, renamed: "promotionalOffer(forProductDiscount:product:)") + @available(macCatalyst, deprecated, introduced: 13.0, renamed: "promotionalOffer(forProductDiscount:product:)") + public func getPromotionalOffer(forProductDiscount discount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct) async throws -> RevenueCat.PromotionalOffer + #endif + + + #if compiler(>=5.3) && $AsyncAwait + @available(iOS, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers(forProduct:)") + @available(tvOS, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers(forProduct:)") + @available(watchOS, deprecated, introduced: 6.2, renamed: "eligiblePromotionalOffers(forProduct:)") + @available(macOS, deprecated, introduced: 10.15, renamed: "eligiblePromotionalOffers(forProduct:)") + @available(macCatalyst, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers(forProduct:)") + public func getEligiblePromotionalOffers(forProduct product: RevenueCat.StoreProduct) async -> [RevenueCat.PromotionalOffer] + #endif + + @available(iOS, deprecated: 1, renamed: "configure(with:)") + @available(tvOS, deprecated: 1, renamed: "configure(with:)") + @available(watchOS, deprecated: 1, renamed: "configure(with:)") + @available(macOS, deprecated: 1, renamed: "configure(with:)") + @available(macCatalyst, deprecated: 1, renamed: "configure(with:)") + @discardableResult + @objc(configureWithAPIKey:appUserID:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?) -> RevenueCat.Purchases + @available(iOS, deprecated: 1, renamed: "configure(with:)") + @available(tvOS, deprecated: 1, renamed: "configure(with:)") + @available(watchOS, deprecated: 1, renamed: "configure(with:)") + @available(macOS, deprecated: 1, renamed: "configure(with:)") + @available(macCatalyst, deprecated: 1, renamed: "configure(with:)") + @discardableResult + @objc(configureWithAPIKey:appUserID:observerMode:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool) -> RevenueCat.Purchases + @available(iOS, deprecated: 1, renamed: "configure(with:)") + @available(tvOS, deprecated: 1, renamed: "configure(with:)") + @available(watchOS, deprecated: 1, renamed: "configure(with:)") + @available(macOS, deprecated: 1, renamed: "configure(with:)") + @available(macCatalyst, deprecated: 1, renamed: "configure(with:)") + @discardableResult + @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?) -> RevenueCat.Purchases + @available(iOS, deprecated: 1, renamed: "configure(with:)") + @available(tvOS, deprecated: 1, renamed: "configure(with:)") + @available(watchOS, deprecated: 1, renamed: "configure(with:)") + @available(macOS, deprecated: 1, renamed: "configure(with:)") + @available(macCatalyst, deprecated: 1, renamed: "configure(with:)") + @discardableResult + @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool) -> RevenueCat.Purchases + @available(iOS, deprecated: 1, renamed: "configure(with:)") + @available(tvOS, deprecated: 1, renamed: "configure(with:)") + @available(watchOS, deprecated: 1, renamed: "configure(with:)") + @available(macOS, deprecated: 1, renamed: "configure(with:)") + @available(macCatalyst, deprecated: 1, renamed: "configure(with:)") + @discardableResult + @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:dangerousSettings:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool, dangerousSettings: RevenueCat.DangerousSettings?) -> RevenueCat.Purchases +} +extension RevenueCat.Purchases { + @available(iOS, deprecated, renamed: "attribution.collectDeviceIdentifiers()") + @available(tvOS, deprecated, renamed: "attribution.collectDeviceIdentifiers()") + @available(watchOS, deprecated, renamed: "attribution.collectDeviceIdentifiers()") + @available(macOS, deprecated, renamed: "attribution.collectDeviceIdentifiers()") + @available(macCatalyst, deprecated, renamed: "attribution.collectDeviceIdentifiers()") + @objc dynamic public func collectDeviceIdentifiers() + @available(iOS, deprecated, renamed: "attribution.setAttributes(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAttributes(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAttributes(_:)") + @available(macOS, deprecated, renamed: "attribution.setAttributes(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAttributes(_:)") + @objc dynamic public func setAttributes(_ attributes: [Swift.String : Swift.String]) + @available(iOS, deprecated, renamed: "attribution.setEmail(_:)") + @available(tvOS, deprecated, renamed: "attribution.setEmail(_:)") + @available(watchOS, deprecated, renamed: "attribution.setEmail(_:)") + @available(macOS, deprecated, renamed: "attribution.setEmail(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setEmail(_:)") + @objc dynamic public func setEmail(_ email: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setPhoneNumber(_:)") + @available(tvOS, deprecated, renamed: "attribution.setPhoneNumber(_:)") + @available(watchOS, deprecated, renamed: "attribution.setPhoneNumber(_:)") + @available(macOS, deprecated, renamed: "attribution.setPhoneNumber(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setPhoneNumber(_:)") + @objc dynamic public func setPhoneNumber(_ phoneNumber: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setDisplayName(_:)") + @available(tvOS, deprecated, renamed: "attribution.setDisplayName(_:)") + @available(watchOS, deprecated, renamed: "attribution.setDisplayName(_:)") + @available(macOS, deprecated, renamed: "attribution.setDisplayName(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setDisplayName(_:)") + @objc dynamic public func setDisplayName(_ displayName: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setPushToken(_:)") + @available(tvOS, deprecated, renamed: "attribution.setPushToken(_:)") + @available(watchOS, deprecated, renamed: "attribution.setPushToken(_:)") + @available(macOS, deprecated, renamed: "attribution.setPushToken(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setPushToken(_:)") + @objc dynamic public func setPushToken(_ pushToken: Foundation.Data?) + @available(iOS, deprecated, renamed: "attribution.setPushTokenString(_:)") + @available(tvOS, deprecated, renamed: "attribution.setPushTokenString(_:)") + @available(watchOS, deprecated, renamed: "attribution.setPushTokenString(_:)") + @available(macOS, deprecated, renamed: "attribution.setPushTokenString(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setPushTokenString(_:)") + @objc dynamic public func setPushTokenString(_ pushToken: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setAdjustID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAdjustID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAdjustID(_:)") + @available(macOS, deprecated, renamed: "attribution.setAdjustID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAdjustID(_:)") + @objc dynamic public func setAdjustID(_ adjustID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setAppsflyerID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAppsflyerID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAppsflyerID(_:)") + @available(macOS, deprecated, renamed: "attribution.setAppsflyerID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAppsflyerID(_:)") + @objc dynamic public func setAppsflyerID(_ appsflyerID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setFBAnonymousID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setFBAnonymousID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setFBAnonymousID(_:)") + @available(macOS, deprecated, renamed: "attribution.setFBAnonymousID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setFBAnonymousID(_:)") + @objc dynamic public func setFBAnonymousID(_ fbAnonymousID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setMparticleID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setMparticleID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setMparticleID(_:)") + @available(macOS, deprecated, renamed: "attribution.setMparticleID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setMparticleID(_:)") + @objc dynamic public func setMparticleID(_ mparticleID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setOnesignalID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setOnesignalID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setOnesignalID(_:)") + @available(macOS, deprecated, renamed: "attribution.setOnesignalID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setOnesignalID(_:)") + @objc dynamic public func setOnesignalID(_ onesignalID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setAirshipChannelID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAirshipChannelID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAirshipChannelID(_:)") + @available(macOS, deprecated, renamed: "attribution.setAirshipChannelID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAirshipChannelID(_:)") + @objc dynamic public func setAirshipChannelID(_ airshipChannelID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setCleverTapID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setCleverTapID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setCleverTapID(_:)") + @available(macOS, deprecated, renamed: "attribution.setCleverTapID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setCleverTapID(_:)") + @objc dynamic public func setCleverTapID(_ cleverTapID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setMixpanelDistinctID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setMixpanelDistinctID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setMixpanelDistinctID(_:)") + @available(macOS, deprecated, renamed: "attribution.setMixpanelDistinctID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setMixpanelDistinctID(_:)") + @objc dynamic public func setMixpanelDistinctID(_ mixpanelDistinctID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setFirebaseAppInstanceID(_:)") + @available(tvOS, deprecated, renamed: "attribution.setFirebaseAppInstanceID(_:)") + @available(watchOS, deprecated, renamed: "attribution.setFirebaseAppInstanceID(_:)") + @available(macOS, deprecated, renamed: "attribution.setFirebaseAppInstanceID(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setFirebaseAppInstanceID(_:)") + @objc dynamic public func setFirebaseAppInstanceID(_ firebaseAppInstanceID: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setMediaSource(_:)") + @available(tvOS, deprecated, renamed: "attribution.setMediaSource(_:)") + @available(watchOS, deprecated, renamed: "attribution.setMediaSource(_:)") + @available(macOS, deprecated, renamed: "attribution.setMediaSource(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setMediaSource(_:)") + @objc dynamic public func setMediaSource(_ mediaSource: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setCampaign(_:)") + @available(tvOS, deprecated, renamed: "attribution.setCampaign(_:)") + @available(watchOS, deprecated, renamed: "attribution.setCampaign(_:)") + @available(macOS, deprecated, renamed: "attribution.setCampaign(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setCampaign(_:)") + @objc dynamic public func setCampaign(_ campaign: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setAdGroup(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAdGroup(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAdGroup(_:)") + @available(macOS, deprecated, renamed: "attribution.setAdGroup(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAdGroup(_:)") + @objc dynamic public func setAdGroup(_ adGroup: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setAd(_:)") + @available(tvOS, deprecated, renamed: "attribution.setAd(_:)") + @available(watchOS, deprecated, renamed: "attribution.setAd(_:)") + @available(macOS, deprecated, renamed: "attribution.setAd(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setAd(_:)") + @objc dynamic public func setAd(_ installAd: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setKeyword(_:)") + @available(tvOS, deprecated, renamed: "attribution.setKeyword(_:)") + @available(watchOS, deprecated, renamed: "attribution.setKeyword(_:)") + @available(macOS, deprecated, renamed: "attribution.setKeyword(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setKeyword(_:)") + @objc dynamic public func setKeyword(_ keyword: Swift.String?) + @available(iOS, deprecated, renamed: "attribution.setCreative(_:)") + @available(tvOS, deprecated, renamed: "attribution.setCreative(_:)") + @available(watchOS, deprecated, renamed: "attribution.setCreative(_:)") + @available(macOS, deprecated, renamed: "attribution.setCreative(_:)") + @available(macCatalyst, deprecated, renamed: "attribution.setCreative(_:)") + @objc dynamic public func setCreative(_ creative: Swift.String?) +} +extension RevenueCat.StoreProduct { + + #if compiler(>=5.3) && $AsyncAwait + @available(iOS, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers()") + @available(tvOS, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers()") + @available(watchOS, deprecated, introduced: 6.2, renamed: "eligiblePromotionalOffers()") + @available(macOS, deprecated, introduced: 10.15, renamed: "eligiblePromotionalOffers()") + @available(macCatalyst, deprecated, introduced: 13.0, renamed: "eligiblePromotionalOffers()") + final public func getEligiblePromotionalOffers() async -> [RevenueCat.PromotionalOffer] + #endif + +} +extension RevenueCat.CustomerInfo { + @available(*, deprecated, message: "use nonSubscriptionTransactions") + @objc final public var nonConsumablePurchases: Swift.Set { + @objc get + } + @available(*, deprecated, renamed: "nonSubscriptions") + @objc final public var nonSubscriptionTransactions: [RevenueCat.StoreTransaction] { + @objc get + } } @objc(RCPurchasesErrorCode) public enum ErrorCode : Swift.Int, Swift.Error { @objc(RCUnknownError) case unknownError = 0 @@ -521,7 +829,6 @@ extension RevenueCat.Purchases { @objc(RCUnsupportedError) case unsupportedError = 24 @objc(RCEmptySubscriberAttributesError) case emptySubscriberAttributes = 25 @objc(RCProductDiscountMissingIdentifierError) case productDiscountMissingIdentifierError = 26 - @objc(RCMissingAppUserIDForAliasCreationError) case missingAppUserIDForAliasCreationError = 27 @objc(RCProductDiscountMissingSubscriptionGroupIdentifierError) case productDiscountMissingSubscriptionGroupIdentifierError = 28 @objc(RCCustomerInfoError) case customerInfoError = 29 @objc(RCSystemInfoError) case systemInfoError = 30 @@ -529,6 +836,7 @@ extension RevenueCat.Purchases { @objc(RCProductRequestTimedOut) case productRequestTimedOut = 32 @objc(RCAPIEndpointBlocked) case apiEndpointBlockedError = 33 @objc(RCInvalidPromotionalOfferError) case invalidPromotionalOfferError = 34 + @objc(RCOfflineConnectionError) case offlineConnectionError = 35 public init?(rawValue: Swift.Int) public typealias RawValue = Swift.Int public static var _nsErrorDomain: Swift.String { @@ -577,45 +885,47 @@ extension RevenueCat.Purchases { @objc public init(autoSyncPurchases: Swift.Bool) @objc deinit } -@_hasMissingDesignatedInitializers @objc(RCCustomerInfo) public class CustomerInfo : ObjectiveC.NSObject { +@_hasMissingDesignatedInitializers @objc(RCCustomerInfo) final public class CustomerInfo : ObjectiveC.NSObject { @objc final public let entitlements: RevenueCat.EntitlementInfos - @objc public var activeSubscriptions: Swift.Set { - @objc get - } - @objc public var allPurchasedProductIdentifiers: Swift.Set { + @objc final public var activeSubscriptions: Swift.Set { @objc get } - @objc public var latestExpirationDate: Foundation.Date? { + @objc final public var allPurchasedProductIdentifiers: Swift.Set { @objc get } - @available(*, deprecated, message: "use nonSubscriptionTransactions") - @objc public var nonConsumablePurchases: Swift.Set { + @objc final public var latestExpirationDate: Foundation.Date? { @objc get } - @objc final public let nonSubscriptionTransactions: [RevenueCat.StoreTransaction] + @objc final public let nonSubscriptions: [RevenueCat.NonSubscriptionTransaction] @objc final public let requestDate: Foundation.Date @objc final public let firstSeen: Foundation.Date @objc final public let originalAppUserId: Swift.String @objc final public let managementURL: Foundation.URL? @objc final public let originalPurchaseDate: Foundation.Date? @objc final public let originalApplicationVersion: Swift.String? - @objc final public let rawData: [Swift.String : Any] - @objc public func expirationDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? - @objc public func purchaseDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? - @objc public func expirationDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? - @objc public func purchaseDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc override dynamic public var hash: Swift.Int { + @objc final public func expirationDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? + @objc final public func purchaseDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? + @objc final public func expirationDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? + @objc final public func purchaseDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? + @objc override final public func isEqual(_ object: Any?) -> Swift.Bool + @objc override final public var hash: Swift.Int { @objc get } - @objc override dynamic public var description: Swift.String { + @objc override final public var description: Swift.String { @objc get } @objc deinit } extension RevenueCat.CustomerInfo : RevenueCat.RawDataContainer { + @objc final public var rawData: [Swift.String : Any] { + @objc get + } public typealias Content = [Swift.String : Any] } +extension RevenueCat.CustomerInfo : Swift.Codable { + convenience public init(from decoder: Swift.Decoder) throws + final public func encode(to encoder: Swift.Encoder) throws +} @objc(RCStore) public enum Store : Swift.Int { @objc(RCAppStore) case appStore = 0 @objc(RCMacAppStore) case macAppStore = 1 @@ -623,6 +933,7 @@ extension RevenueCat.CustomerInfo : RevenueCat.RawDataContainer { @objc(RCStripe) case stripe = 3 @objc(RCPromotional) case promotional = 4 @objc(RCUnknownStore) case unknownStore = 5 + @objc(RCAmazon) case amazon = 6 public init?(rawValue: Swift.Int) public typealias RawValue = Swift.Int public var rawValue: Swift.Int { @@ -652,19 +963,45 @@ extension RevenueCat.PeriodType : Swift.CaseIterable { } } @_hasMissingDesignatedInitializers @objc(RCEntitlementInfo) public class EntitlementInfo : ObjectiveC.NSObject { - @objc final public let identifier: Swift.String - @objc final public let isActive: Swift.Bool - @objc final public let willRenew: Swift.Bool - @objc final public let periodType: RevenueCat.PeriodType - @objc final public let latestPurchaseDate: Foundation.Date? - @objc final public let originalPurchaseDate: Foundation.Date? - @objc final public let expirationDate: Foundation.Date? - @objc final public let store: RevenueCat.Store - @objc final public let productIdentifier: Swift.String - @objc final public let isSandbox: Swift.Bool - @objc final public let unsubscribeDetectedAt: Foundation.Date? - @objc final public let billingIssueDetectedAt: Foundation.Date? - @objc final public let ownershipType: RevenueCat.PurchaseOwnershipType + @objc public var identifier: Swift.String { + @objc get + } + @objc public var isActive: Swift.Bool { + @objc get + } + @objc public var willRenew: Swift.Bool { + @objc get + } + @objc public var periodType: RevenueCat.PeriodType { + @objc get + } + @objc public var latestPurchaseDate: Foundation.Date? { + @objc get + } + @objc public var originalPurchaseDate: Foundation.Date? { + @objc get + } + @objc public var expirationDate: Foundation.Date? { + @objc get + } + @objc public var store: RevenueCat.Store { + @objc get + } + @objc public var productIdentifier: Swift.String { + @objc get + } + @objc public var isSandbox: Swift.Bool { + @objc get + } + @objc public var unsubscribeDetectedAt: Foundation.Date? { + @objc get + } + @objc public var billingIssueDetectedAt: Foundation.Date? { + @objc get + } + @objc public var ownershipType: RevenueCat.PurchaseOwnershipType { + @objc get + } @objc final public let rawData: [Swift.String : Any] @objc override dynamic public var description: Swift.String { @objc get @@ -678,6 +1015,14 @@ extension RevenueCat.PeriodType : Swift.CaseIterable { extension RevenueCat.EntitlementInfo : RevenueCat.RawDataContainer { public typealias Content = [Swift.String : Any] } +extension RevenueCat.EntitlementInfo { + @objc dynamic public var isActiveInCurrentEnvironment: Swift.Bool { + @objc get + } + @objc dynamic public var isActiveInAnyEnvironment: Swift.Bool { + @objc get + } +} extension RevenueCat.EntitlementInfo : Swift.Identifiable { public var id: Swift.String { get @@ -697,6 +1042,25 @@ extension RevenueCat.EntitlementInfo : Swift.Identifiable { } public typealias VerboseLogHandler = (_ level: RevenueCat.LogLevel, _ message: Swift.String, _ file: Swift.String?, _ function: Swift.String?, _ line: Swift.UInt) -> Swift.Void public typealias LogHandler = (_ level: RevenueCat.LogLevel, _ message: Swift.String) -> Swift.Void +@objc(RCPackageType) public enum PackageType : Swift.Int { + case unknown = -2, custom, lifetime, annual, sixMonth, threeMonth, twoMonth, monthly, weekly + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} +extension RevenueCat.PackageType : Swift.CaseIterable { + public typealias AllCases = [RevenueCat.PackageType] + public static var allCases: [RevenueCat.PackageType] { + get + } +} +extension RevenueCat.PackageType : Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + get + } +} public typealias SK1Transaction = StoreKit.SKPaymentTransaction @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) public typealias SK2Transaction = StoreKit.Transaction @@ -740,7 +1104,7 @@ public protocol RawDataContainer { } public typealias PurchaseResultData = (transaction: RevenueCat.StoreTransaction?, customerInfo: RevenueCat.CustomerInfo, userCancelled: Swift.Bool) public typealias PurchaseCompletedBlock = (RevenueCat.StoreTransaction?, RevenueCat.CustomerInfo?, Swift.Error?, Swift.Bool) -> Swift.Void -public typealias DeferredPromotionalPurchaseBlock = (@escaping RevenueCat.PurchaseCompletedBlock) -> Swift.Void +public typealias StartPurchaseBlock = (@escaping RevenueCat.PurchaseCompletedBlock) -> Swift.Void @_hasMissingDesignatedInitializers @objc(RCPurchases) public class Purchases : ObjectiveC.NSObject { @objc(sharedPurchases) public static var shared: RevenueCat.Purchases { @objc get @@ -786,33 +1150,13 @@ public typealias DeferredPromotionalPurchaseBlock = (@escaping RevenueCat.Purcha @objc public static var frameworkVersion: Swift.String { @objc get } + @objc final public let attribution: RevenueCat.Attribution @objc public var finishTransactions: Swift.Bool { @objc get @objc set } - @objc public func collectDeviceIdentifiers() @objc deinit } -extension RevenueCat.Purchases { - @objc dynamic public func setAttributes(_ attributes: [Swift.String : Swift.String]) - @objc dynamic public func setEmail(_ email: Swift.String?) - @objc dynamic public func setPhoneNumber(_ phoneNumber: Swift.String?) - @objc dynamic public func setDisplayName(_ displayName: Swift.String?) - @objc dynamic public func setPushToken(_ pushToken: Foundation.Data?) - @objc dynamic public func setAdjustID(_ adjustID: Swift.String?) - @objc dynamic public func setAppsflyerID(_ appsflyerID: Swift.String?) - @objc dynamic public func setFBAnonymousID(_ fbAnonymousID: Swift.String?) - @objc dynamic public func setMparticleID(_ mparticleID: Swift.String?) - @objc dynamic public func setOnesignalID(_ onesignalID: Swift.String?) - @objc dynamic public func setAirshipChannelID(_ airshipChannelID: Swift.String?) - @objc dynamic public func setCleverTapID(_ cleverTapID: Swift.String?) - @objc dynamic public func setMediaSource(_ mediaSource: Swift.String?) - @objc dynamic public func setCampaign(_ campaign: Swift.String?) - @objc dynamic public func setAdGroup(_ adGroup: Swift.String?) - @objc dynamic public func setAd(_ installAd: Swift.String?) - @objc dynamic public func setKeyword(_ keyword: Swift.String?) - @objc dynamic public func setCreative(_ creative: Swift.String?) -} extension RevenueCat.Purchases { @objc dynamic public var appUserID: Swift.String { @objc get @@ -844,10 +1188,11 @@ extension RevenueCat.Purchases { } extension RevenueCat.Purchases { @objc dynamic public func getCustomerInfo(completion: @escaping (RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void) + @objc dynamic public func getCustomerInfo(fetchPolicy: RevenueCat.CacheFetchPolicy, completion: @escaping (RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void) #if compiler(>=5.3) && $AsyncAwait @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func customerInfo() async throws -> RevenueCat.CustomerInfo + public func customerInfo(fetchPolicy: RevenueCat.CacheFetchPolicy = .default) async throws -> RevenueCat.CustomerInfo #endif @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) @@ -919,6 +1264,8 @@ extension RevenueCat.Purchases { public func checkTrialOrIntroDiscountEligibility(product: RevenueCat.StoreProduct) async -> RevenueCat.IntroEligibilityStatus #endif + @available(iOS 13.4, macCatalyst 13.4, *) + @objc dynamic public func showPriceConsentIfNeeded() @objc dynamic public func invalidateCustomerInfoCache() @available(iOS 14.0, *) @available(watchOS, unavailable) @@ -931,13 +1278,13 @@ extension RevenueCat.Purchases { #if compiler(>=5.3) && $AsyncAwait @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func getPromotionalOffer(forProductDiscount discount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct) async throws -> RevenueCat.PromotionalOffer + public func promotionalOffer(forProductDiscount discount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct) async throws -> RevenueCat.PromotionalOffer #endif #if compiler(>=5.3) && $AsyncAwait @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func getEligiblePromotionalOffers(forProduct product: RevenueCat.StoreProduct) async -> [RevenueCat.PromotionalOffer] + public func eligiblePromotionalOffers(forProduct product: RevenueCat.StoreProduct) async -> [RevenueCat.PromotionalOffer] #endif @available(iOS 13.0, macOS 10.15, *) @@ -982,20 +1329,11 @@ extension RevenueCat.Purchases { } extension RevenueCat.Purchases { @discardableResult - @objc(configureWithAPIKey:) public static func configure(withAPIKey apiKey: Swift.String) -> RevenueCat.Purchases + @objc(configureWithConfiguration:) public static func configure(with configuration: RevenueCat.Configuration) -> RevenueCat.Purchases @discardableResult - @objc(configureWithAPIKey:appUserID:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool) -> RevenueCat.Purchases + @objc(configureWithConfigurationBuilder:) public static func configure(with builder: RevenueCat.Configuration.Builder) -> RevenueCat.Purchases @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:dangerousSettings:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool, dangerousSettings: RevenueCat.DangerousSettings?) -> RevenueCat.Purchases -} -extension RevenueCat.Purchases { - @objc dynamic public func shouldPurchasePromoProduct(_ product: RevenueCat.StoreProduct, defermentBlock: @escaping RevenueCat.DeferredPromotionalPurchaseBlock) + @objc(configureWithAPIKey:) public static func configure(withAPIKey apiKey: Swift.String) -> RevenueCat.Purchases } extension RevenueCat.Purchases { @available(*, deprecated, message: "use Purchases.logLevel instead") @@ -1077,17 +1415,23 @@ extension RevenueCat.PurchaseOwnershipType : Swift.CaseIterable { extension RevenueCat.PurchaseOwnershipType : Swift.Decodable { public init(from decoder: Swift.Decoder) throws } +extension RevenueCat.PurchaseOwnershipType : Swift.Encodable { + public func encode(to encoder: Swift.Encoder) throws +} extension RevenueCat.PeriodType : Swift.Decodable { public init(from decoder: Swift.Decoder) throws } +extension RevenueCat.PeriodType : Swift.Encodable { + public func encode(to encoder: Swift.Encoder) throws +} extension RevenueCat.Store : Swift.Decodable { public init(from decoder: Swift.Decoder) throws } +extension RevenueCat.Store : Swift.Encodable { + public func encode(to encoder: Swift.Encoder) throws +} @_hasMissingDesignatedInitializers @objc(RCEntitlementInfos) public class EntitlementInfos : ObjectiveC.NSObject { @objc final public let all: [Swift.String : RevenueCat.EntitlementInfo] - @objc public var active: [Swift.String : RevenueCat.EntitlementInfo] { - @objc get - } @objc public subscript(key: Swift.String) -> RevenueCat.EntitlementInfo? { @objc get } @@ -1097,12 +1441,15 @@ extension RevenueCat.Store : Swift.Decodable { @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool @objc deinit } -@objc(RCPackageType) public enum PackageType : Swift.Int { - case unknown = -2, custom, lifetime, annual, sixMonth, threeMonth, twoMonth, monthly, weekly - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get +extension RevenueCat.EntitlementInfos { + @objc dynamic public var active: [Swift.String : RevenueCat.EntitlementInfo] { + @objc get + } + @objc dynamic public var activeInCurrentEnvironment: [Swift.String : RevenueCat.EntitlementInfo] { + @objc get + } + @objc dynamic public var activeInAnyEnvironment: [Swift.String : RevenueCat.EntitlementInfo] { + @objc get } } @_hasMissingDesignatedInitializers @objc(RCPackage) public class Package : ObjectiveC.NSObject { @@ -1124,7 +1471,7 @@ extension RevenueCat.Store : Swift.Decodable { } @objc extension RevenueCat.Package { @objc public static func string(from packageType: RevenueCat.PackageType) -> Swift.String? - @objc dynamic public class func packageType(from string: Swift.String) -> RevenueCat.PackageType + @objc public static func packageType(from string: Swift.String) -> RevenueCat.PackageType } extension RevenueCat.Package : Swift.Identifiable { public var id: Swift.String { @@ -1132,6 +1479,24 @@ extension RevenueCat.Package : Swift.Identifiable { } public typealias ID = Swift.String } +@_hasMissingDesignatedInitializers @objc(RCConfiguration) public class Configuration : ObjectiveC.NSObject { + @objc public static func builder(withAPIKey apiKey: Swift.String) -> RevenueCat.Configuration.Builder + @objc(RCConfigurationBuilder) public class Builder : ObjectiveC.NSObject { + @objc public init(withAPIKey apiKey: Swift.String) + @objc public func with(apiKey: Swift.String) -> RevenueCat.Configuration.Builder + @objc public func with(appUserID: Swift.String) -> RevenueCat.Configuration.Builder + @objc public func with(observerMode: Swift.Bool) -> RevenueCat.Configuration.Builder + @objc public func with(userDefaults: Foundation.UserDefaults) -> RevenueCat.Configuration.Builder + @objc public func with(usesStoreKit2IfAvailable: Swift.Bool) -> RevenueCat.Configuration.Builder + @objc public func with(dangerousSettings: RevenueCat.DangerousSettings) -> RevenueCat.Configuration.Builder + @objc public func with(networkTimeout: Foundation.TimeInterval) -> RevenueCat.Configuration.Builder + @objc public func with(storeKit1Timeout: Foundation.TimeInterval) -> RevenueCat.Configuration.Builder + @objc public func with(platformInfo: RevenueCat.Purchases.PlatformInfo) -> RevenueCat.Configuration.Builder + @objc public func build() -> RevenueCat.Configuration + @objc deinit + } + @objc deinit +} @objc(RCIntroEligibilityStatus) public enum IntroEligibilityStatus : Swift.Int { case unknown = 0 case ineligible @@ -1156,6 +1521,18 @@ extension RevenueCat.IntroEligibilityStatus : Swift.CaseIterable { } @objc deinit } +@objc(RCCacheFetchPolicy) public enum CacheFetchPolicy : Swift.Int { + case fromCacheOnly + case fetchCurrent + case notStaleCachedOrFetched + case cachedOrFetched + public static let `default`: RevenueCat.CacheFetchPolicy + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } +} @available(iOS 11.2, macOS 10.13.2, tvOS 11.2, watchOS 6.2, *) public typealias SK1ProductDiscount = StoreKit.SKProductDiscount @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) @@ -1198,6 +1575,9 @@ public typealias SK2ProductDiscount = StoreKit.Product.SubscriptionOffer @objc final public var subscriptionPeriod: RevenueCat.SubscriptionPeriod { @objc get } + @objc final public var numberOfPeriods: Swift.Int { + @objc get + } @objc final public var type: RevenueCat.StoreProductDiscount.DiscountType { @objc get } @@ -1250,7 +1630,18 @@ extension RevenueCat.StoreProductDiscount : Swift.Identifiable { @available(watchOS, obsoleted: 1) @objc(purchases:didReceiveUpdatedPurchaserInfo:) optional func purchases(_ purchases: RevenueCat.Purchases, didReceiveUpdated purchaserInfo: RevenueCat.CustomerInfo) @objc(purchases:receivedUpdatedCustomerInfo:) optional func purchases(_ purchases: RevenueCat.Purchases, receivedUpdated customerInfo: RevenueCat.CustomerInfo) - @objc optional func purchases(_ purchases: RevenueCat.Purchases, shouldPurchasePromoProduct product: RevenueCat.StoreProduct, defermentBlock makeDeferredPurchase: @escaping RevenueCat.DeferredPromotionalPurchaseBlock) + @objc optional func purchases(_ purchases: RevenueCat.Purchases, readyForPromotedProduct product: RevenueCat.StoreProduct, purchase startPurchase: @escaping RevenueCat.StartPurchaseBlock) + @available(iOS, obsoleted: 1, renamed: "purchases(_:readyForPromotedProduct:purchase:)") + @available(tvOS, obsoleted: 1, renamed: "purchases(_:readyForPromotedProduct:purchase:)") + @available(watchOS, obsoleted: 1, renamed: "purchases(_:readyForPromotedProduct:purchase:)") + @available(macOS, obsoleted: 1, renamed: "purchases(_:readyForPromotedProduct:purchase:)") + @available(macCatalyst, obsoleted: 1, renamed: "purchases(_:readyForPromotedProduct:purchase:)") + @objc optional func purchases(_ purchases: RevenueCat.Purchases, shouldPurchasePromoProduct product: RevenueCat.StoreProduct, defermentBlock makeDeferredPurchase: @escaping RevenueCat.StartPurchaseBlock) + @available(iOS 13.4, macCatalyst 13.4, *) + @available(macOS, unavailable) + @available(tvOS, unavailable) + @available(watchOS, unavailable) + @objc optional var shouldShowPriceConsent: Swift.Bool { get } } @objc(RCAttributionNetwork) public enum AttributionNetwork : Swift.Int { case appleSearchAds @@ -1342,7 +1733,7 @@ extension RevenueCat.StoreProduct { extension RevenueCat.StoreProduct { #if compiler(>=5.3) && $AsyncAwait - final public func getEligiblePromotionalOffers() async -> [RevenueCat.PromotionalOffer] + final public func eligiblePromotionalOffers() async -> [RevenueCat.PromotionalOffer] #endif } @@ -1399,18 +1790,21 @@ extension RevenueCat.PeriodType : Swift.RawRepresentable {} extension RevenueCat.LogLevel : Swift.Equatable {} extension RevenueCat.LogLevel : Swift.Hashable {} extension RevenueCat.LogLevel : Swift.RawRepresentable {} +extension RevenueCat.PackageType : Swift.Equatable {} +extension RevenueCat.PackageType : Swift.Hashable {} +extension RevenueCat.PackageType : Swift.RawRepresentable {} extension RevenueCat.SubscriptionPeriod.Unit : Swift.Equatable {} extension RevenueCat.SubscriptionPeriod.Unit : Swift.Hashable {} extension RevenueCat.SubscriptionPeriod.Unit : Swift.RawRepresentable {} extension RevenueCat.PurchaseOwnershipType : Swift.Equatable {} extension RevenueCat.PurchaseOwnershipType : Swift.Hashable {} extension RevenueCat.PurchaseOwnershipType : Swift.RawRepresentable {} -extension RevenueCat.PackageType : Swift.Equatable {} -extension RevenueCat.PackageType : Swift.Hashable {} -extension RevenueCat.PackageType : Swift.RawRepresentable {} extension RevenueCat.IntroEligibilityStatus : Swift.Equatable {} extension RevenueCat.IntroEligibilityStatus : Swift.Hashable {} extension RevenueCat.IntroEligibilityStatus : Swift.RawRepresentable {} +extension RevenueCat.CacheFetchPolicy : Swift.Equatable {} +extension RevenueCat.CacheFetchPolicy : Swift.Hashable {} +extension RevenueCat.CacheFetchPolicy : Swift.RawRepresentable {} extension RevenueCat.StoreProductDiscount.DiscountType : Swift.Equatable {} extension RevenueCat.StoreProductDiscount.DiscountType : Swift.Hashable {} extension RevenueCat.StoreProductDiscount.DiscountType : Swift.RawRepresentable {} diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftmodule b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftmodule index 874125e..d3e108d 100644 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftmodule and b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64-apple-ios-simulator.swiftmodule differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64.swiftdoc b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64.swiftdoc deleted file mode 100644 index afa84cb..0000000 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64.swiftdoc and /dev/null differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64.swiftinterface b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64.swiftinterface deleted file mode 100644 index 504a7d2..0000000 --- a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64.swiftinterface +++ /dev/null @@ -1,1419 +0,0 @@ -// swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30) -// swift-module-flags: -target x86_64-apple-ios11.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name RevenueCat -import Foundation -@_exported import RevenueCat -import StoreKit -import Swift -import UIKit -import _Concurrency -@_hasMissingDesignatedInitializers @objc(RCOffering) public class Offering : ObjectiveC.NSObject { - @objc final public let identifier: Swift.String - @objc final public let serverDescription: Swift.String - @objc final public let availablePackages: [RevenueCat.Package] - @objc public var lifetime: RevenueCat.Package? { - get - } - @objc public var annual: RevenueCat.Package? { - get - } - @objc public var sixMonth: RevenueCat.Package? { - get - } - @objc public var threeMonth: RevenueCat.Package? { - get - } - @objc public var twoMonth: RevenueCat.Package? { - get - } - @objc public var monthly: RevenueCat.Package? { - get - } - @objc public var weekly: RevenueCat.Package? { - get - } - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc public func package(identifier: Swift.String?) -> RevenueCat.Package? - @objc public subscript(key: Swift.String) -> RevenueCat.Package? { - @objc get - } - @objc deinit -} -extension RevenueCat.Offering : Swift.Identifiable { - public var id: Swift.String { - get - } - public typealias ID = Swift.String -} -@_hasMissingDesignatedInitializers @objc(RCOfferings) public class Offerings : ObjectiveC.NSObject { - @objc final public let all: [Swift.String : RevenueCat.Offering] - @objc public var current: RevenueCat.Offering? { - @objc get - } - @objc public func offering(identifier: Swift.String?) -> RevenueCat.Offering? - @objc public subscript(key: Swift.String) -> RevenueCat.Offering? { - @objc get - } - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc deinit -} -extension RevenueCat.StoreProduct { - @objc(RCStoreProductCategory) public enum ProductCategory : Swift.Int { - case subscription - case nonSubscription - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } - } - @objc(RCStoreProductType) public enum ProductType : Swift.Int { - case consumable - case nonConsumable - case nonRenewableSubscription - case autoRenewableSubscription - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } - } -} -extension RevenueCat.Purchases { - @available(iOS, obsoleted: 1, renamed: "restorePurchases(completion:)") - @available(tvOS, obsoleted: 1, renamed: "restorePurchases(completion:)") - @available(watchOS, obsoleted: 1, renamed: "restorePurchases(completion:)") - @available(macOS, obsoleted: 1, renamed: "restorePurchases(completion:)") - @objc(restoreTransactionsWithCompletionBlock:) dynamic public func restoreTransactions(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)? = nil) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "restorePurchases()") - @available(tvOS, unavailable, introduced: 13.0, renamed: "restorePurchases()") - @available(watchOS, unavailable, introduced: 6.2, renamed: "restorePurchases()") - @available(macOS, unavailable, introduced: 10.15, renamed: "restorePurchases()") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "restorePurchases()") - public func restoreTransactions() async throws -> RevenueCat.CustomerInfo - #endif - - @available(iOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(tvOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(watchOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(macOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @objc dynamic public func customerInfo(completion: @escaping (RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void) - @available(iOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(tvOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(watchOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @available(macOS, obsoleted: 1, renamed: "getCustomerInfo(completion:)") - @objc(purchaserInfoWithCompletionBlock:) dynamic public func purchaserInfo(completion: @escaping (RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "customerInfo()") - @available(tvOS, unavailable, introduced: 13.0, renamed: "customerInfo()") - @available(watchOS, unavailable, introduced: 6.2, renamed: "customerInfo()") - @available(macOS, unavailable, introduced: 10.15, renamed: "customerInfo()") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "customerInfo()") - public func purchaserInfo() async throws -> RevenueCat.CustomerInfo - #endif - - @available(iOS, obsoleted: 1, renamed: "getProducts(_:completion:)") - @available(tvOS, obsoleted: 1, renamed: "getProducts(_:completion:)") - @available(watchOS, obsoleted: 1, renamed: "getProducts(_:completion:)") - @available(macOS, obsoleted: 1, renamed: "getProducts(_:completion:)") - @objc(productsWithIdentifiers:completionBlock:) dynamic public func products(_ productIdentifiers: [Swift.String], completion: @escaping ([StoreKit.SKProduct]) -> Swift.Void) - @available(iOS, obsoleted: 1, renamed: "getOfferings(completion:)") - @available(tvOS, obsoleted: 1, renamed: "getOfferings(completion:)") - @available(watchOS, obsoleted: 1, renamed: "getOfferings(completion:)") - @available(macOS, obsoleted: 1, renamed: "getOfferings(completion:)") - @objc(offeringsWithCompletionBlock:) dynamic public func offerings(completion: @escaping (RevenueCat.Offerings?, Swift.Error?) -> Swift.Void) - @available(iOS, obsoleted: 1, renamed: "purchase(package:completion:)") - @available(tvOS, obsoleted: 1, renamed: "purchase(package:completion:)") - @available(watchOS, obsoleted: 1, renamed: "purchase(package:completion:)") - @available(macOS, obsoleted: 1, renamed: "purchase(package:completion:)") - @objc(purchasePackage:withCompletionBlock:) dynamic public func purchasePackage(_ package: RevenueCat.Package, _ completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(package:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(package:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(package:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(package:)") - public func purchasePackage(_ package: RevenueCat.Package) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(tvOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macOS, unavailable, introduced: 10.14.4, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:completion:)") - @objc(purchasePackage:withDiscount:completionBlock:) dynamic public func purchasePackage(_ package: RevenueCat.Package, discount: StoreKit.SKPaymentDiscount, _ completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(package:promotionalOffer:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - public func purchasePackage(_ package: RevenueCat.Package, discount: StoreKit.SKPaymentDiscount) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS, obsoleted: 1, renamed: "purchase(product:_:)") - @available(tvOS, obsoleted: 1, renamed: "purchase(product:_:)") - @available(watchOS, obsoleted: 1, renamed: "purchase(product:_:)") - @available(macOS, obsoleted: 1, renamed: "purchase(product:_:)") - @objc(purchaseProduct:withCompletionBlock:) dynamic public func purchaseProduct(_ product: StoreKit.SKProduct, _ completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(product:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(product:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(product:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(product:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(product:)") - public func purchaseProduct(_ product: StoreKit.SKProduct) async throws - #endif - - @available(iOS, unavailable, introduced: 12.2, renamed: "purchase(product:promotionalOffer:completion:)") - @available(tvOS, unavailable, introduced: 12.2, renamed: "purchase(product:promotionalOffer:completion:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(product:promotionalOffer:completion:)") - @available(macOS, unavailable, introduced: 10.14.4, renamed: "purchase(product:promotionalOffer:completion:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(product:promotionalOffer:completion:)") - @objc(purchaseProduct:withDiscount:completionBlock:) dynamic public func purchaseProduct(_ product: StoreKit.SKProduct, discount: StoreKit.SKPaymentDiscount, _ completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(product:promotionalOffer:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(product:promotionalOffer:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(product:promotionalOffer:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(product:promotionalOffer:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(product:promotionalOffer:)") - public func purchaseProduct(_ product: StoreKit.SKProduct, discount: StoreKit.SKPaymentDiscount) async throws - #endif - - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(package:promotionalOffer:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - public func purchase(package: RevenueCat.Package, discount: RevenueCat.StoreProductDiscount) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(tvOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macOS, unavailable, introduced: 10.14.4, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macCatalyst, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - public func purchase(package: RevenueCat.Package, discount: RevenueCat.StoreProductDiscount, completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "purchase(package:promotionalOffer:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "purchase(package:promotionalOffer:)") - public func purchase(product: RevenueCat.StoreProduct, discount: RevenueCat.StoreProductDiscount) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(tvOS, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macOS, unavailable, introduced: 10.14.4, renamed: "purchase(package:promotionalOffer:completion:)") - @available(macCatalyst, unavailable, introduced: 12.2, renamed: "purchase(package:promotionalOffer:completion:)") - public func purchase(product: RevenueCat.StoreProduct, discount: RevenueCat.StoreProductDiscount, completion: @escaping RevenueCat.PurchaseCompletedBlock) - @available(iOS, unavailable, introduced: 13.0, renamed: "getPromotionalOffer(forProductDiscount:product:)") - @available(tvOS, unavailable, introduced: 13.0, renamed: "getPromotionalOffer(forProductDiscount:product:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "getPromotionalOffer(forProductDiscount:product:)") - @available(macOS, unavailable, introduced: 10.15, renamed: "getPromotionalOffer(forProductDiscount:product:)") - @available(macCatalyst, unavailable, introduced: 13.0, renamed: "getPromotionalOffer(forProductDiscount:product:)") - public func checkPromotionalDiscountEligibility(forProductDiscount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct) - @available(iOS, unavailable, introduced: 12.2, renamed: "getPromotionalOffer(forProductDiscount:product:completion:)") - @available(tvOS, unavailable, introduced: 12.2, renamed: "getPromotionalOffer(forProductDiscount:product:completion:)") - @available(watchOS, unavailable, introduced: 6.2, renamed: "getPromotionalOffer(forProductDiscount:product:completion:)") - @available(macOS, unavailable, introduced: 10.14.4, renamed: "getPromotionalOffer(forProductDiscount:product:completion:)") - @available(macCatalyst, unavailable, introduced: 12.2, renamed: "getPromotionalOffer(forProductDiscount:product:completion:)") - public func checkPromotionalDiscountEligibility(forProductDiscount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct, completion: @escaping (Swift.AnyObject, Swift.Error?) -> Swift.Void) - @available(iOS, obsoleted: 1, renamed: "invalidateCustomerInfoCache") - @available(tvOS, obsoleted: 1, renamed: "invalidateCustomerInfoCache") - @available(watchOS, obsoleted: 1, renamed: "invalidateCustomerInfoCache") - @available(macOS, obsoleted: 1, renamed: "invalidateCustomerInfoCache") - @available(macCatalyst, obsoleted: 1, renamed: "invalidateCustomerInfoCache") - @objc dynamic public func invalidatePurchaserInfoCache() - @available(iOS, obsoleted: 1, renamed: "checkTrialOrIntroDiscountEligibility(_:completion:)") - @available(tvOS, obsoleted: 1, renamed: "checkTrialOrIntroDiscountEligibility(_:completion:)") - @available(watchOS, obsoleted: 1, renamed: "checkTrialOrIntroDiscountEligibility(_:completion:)") - @available(macOS, obsoleted: 1, renamed: "checkTrialOrIntroDiscountEligibility(_:completion:)") - @available(macCatalyst, obsoleted: 1, renamed: "checkTrialOrIntroDiscountEligibility(_:completion:)") - @objc(checkTrialOrIntroductoryPriceEligibility:completion:) dynamic public func checkTrialOrIntroductoryPriceEligibility(_ productIdentifiers: [Swift.String], completion: @escaping ([Swift.String : RevenueCat.IntroEligibility]) -> Swift.Void) - @available(iOS, unavailable, introduced: 12.2, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(tvOS, unavailable, introduced: 12.2, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(watchOS, unavailable, introduced: 6.2, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(macOS, unavailable, introduced: 10.14.4, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(macCatalyst, unavailable, introduced: 13.0, message: "Check eligibility for a discount using getPromotionalOffer:") - @objc(paymentDiscountForProductDiscount:product:completion:) dynamic public func paymentDiscount(for discount: StoreKit.SKProductDiscount, product: StoreKit.SKProduct, completion: @escaping (StoreKit.SKPaymentDiscount?, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, unavailable, introduced: 13.0, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(tvOS, unavailable, introduced: 13.0, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(watchOS, unavailable, introduced: 6.2, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(macOS, unavailable, introduced: 10.15, message: "Check eligibility for a discount using getPromotionalOffer:") - @available(macCatalyst, unavailable, introduced: 13.0, message: "Check eligibility for a discount using getPromotionalOffer:") - public func paymentDiscount(for discount: StoreKit.SKProductDiscount, product: StoreKit.SKProduct) async throws -> StoreKit.SKPaymentDiscount - #endif - - @available(iOS, obsoleted: 1, renamed: "logIn") - @available(tvOS, obsoleted: 1, renamed: "logIn") - @available(watchOS, obsoleted: 1, renamed: "logIn") - @available(macOS, obsoleted: 1, renamed: "logIn") - @objc(createAlias:completionBlock:) dynamic public func createAlias(_ alias: Swift.String, _ completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) - @available(iOS, obsoleted: 1, renamed: "logIn") - @available(tvOS, obsoleted: 1, renamed: "logIn") - @available(watchOS, obsoleted: 1, renamed: "logIn") - @available(macOS, obsoleted: 1, renamed: "logIn") - @objc(identify:completionBlock:) dynamic public func identify(_ appUserID: Swift.String, _ completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) - @available(iOS, obsoleted: 1, renamed: "logOut") - @available(tvOS, obsoleted: 1, renamed: "logOut") - @available(watchOS, obsoleted: 1, renamed: "logOut") - @available(macOS, obsoleted: 1, renamed: "logOut") - @objc(resetWithCompletionBlock:) dynamic public func reset(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) -} -@_inheritsConvenienceInitializers @available(iOS, obsoleted: 1, renamed: "CustomerInfo") -@available(tvOS, obsoleted: 1, renamed: "CustomerInfo") -@available(watchOS, obsoleted: 1, renamed: "CustomerInfo") -@available(macOS, obsoleted: 1, renamed: "CustomerInfo") -@objc(RCPurchaserInfo) public class PurchaserInfo : ObjectiveC.NSObject { - @objc override dynamic public init() - @objc deinit -} -@_inheritsConvenienceInitializers @available(iOS, obsoleted: 1, renamed: "StoreTransaction") -@available(tvOS, obsoleted: 1, renamed: "StoreTransaction") -@available(watchOS, obsoleted: 1, renamed: "StoreTransaction") -@available(macOS, obsoleted: 1, renamed: "StoreTransaction") -@objc(RCTransaction) public class Transaction : ObjectiveC.NSObject { - @objc override dynamic public init() - @objc deinit -} -extension RevenueCat.StoreTransaction { - @available(iOS, obsoleted: 1, renamed: "productIdentifier") - @available(tvOS, obsoleted: 1, renamed: "productIdentifier") - @available(watchOS, obsoleted: 1, renamed: "productIdentifier") - @available(macOS, obsoleted: 1, renamed: "productIdentifier") - @objc final public var productId: Swift.String { - @objc get - } - @available(iOS, obsoleted: 1, renamed: "transactionIdentifier") - @available(tvOS, obsoleted: 1, renamed: "transactionIdentifier") - @available(watchOS, obsoleted: 1, renamed: "transactionIdentifier") - @available(macOS, obsoleted: 1, renamed: "transactionIdentifier") - @objc final public var revenueCatId: Swift.String { - @objc get - } -} -extension RevenueCat.Package { - @available(iOS, obsoleted: 1, renamed: "storeProduct", message: "Use StoreProduct instead") - @available(tvOS, obsoleted: 1, renamed: "storeProduct", message: "Use StoreProduct instead") - @available(watchOS, obsoleted: 1, renamed: "storeProduct", message: "Use StoreProduct instead") - @available(macOS, obsoleted: 1, renamed: "storeProduct", message: "Use StoreProduct instead") - @available(macCatalyst, obsoleted: 1, renamed: "storeProduct", message: "Use StoreProduct instead") - @objc dynamic public var product: StoreKit.SKProduct { - @objc get - } -} -extension RevenueCat.StoreProductDiscount.PaymentMode { - @available(iOS, obsoleted: 1, message: "This option no longer exists. PaymentMode would be nil instead.") - @available(tvOS, obsoleted: 1, message: "This option no longer exists. PaymentMode would be nil instead.") - @available(watchOS, obsoleted: 1, message: "This option no longer exists. PaymentMode would be nil instead.") - @available(macOS, obsoleted: 1, message: "This option no longer exists. PaymentMode would be nil instead.") - @available(macCatalyst, obsoleted: 1, message: "This option no longer exists. PaymentMode would be nil instead.") - public static var none: RevenueCat.StoreProductDiscount.PaymentMode { - get - } -} -@available(iOS, obsoleted: 1, renamed: "StoreProductDiscount.PaymentMode") -@available(tvOS, obsoleted: 1, renamed: "StoreProductDiscount.PaymentMode") -@available(watchOS, obsoleted: 1, renamed: "StoreProductDiscount.PaymentMode") -@available(macOS, obsoleted: 1, renamed: "StoreProductDiscount.PaymentMode") -@available(macCatalyst, obsoleted: 1, renamed: "StoreProductDiscount.PaymentMode") -public enum RCPaymentMode { -} -@_inheritsConvenienceInitializers @available(iOS, obsoleted: 1, message: "Use PromotionalOffer instead") -@available(tvOS, obsoleted: 1, message: "Use PromotionalOffer instead") -@available(watchOS, obsoleted: 1, message: "Use PromotionalOffer instead") -@available(macOS, obsoleted: 1, message: "Use PromotionalOffer instead") -@available(macCatalyst, obsoleted: 1, message: "Use PromotionalOffer instead") -@objc(RCPromotionalOfferEligibility) public class PromotionalOfferEligibility : ObjectiveC.NSObject { - @objc override dynamic public init() - @objc deinit -} -@available(iOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(tvOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(watchOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(macOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(macCatalyst, obsoleted: 1, message: "Use ErrorCode instead") -public var ErrorDomain: Foundation.NSErrorDomain { - get -} -@available(iOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(tvOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(watchOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(macOS, obsoleted: 1, message: "Use ErrorCode instead") -@available(macCatalyst, obsoleted: 1, message: "Use ErrorCode instead") -public enum RCBackendErrorCode { -} -@objc @_inheritsConvenienceInitializers @available(iOS, obsoleted: 1) -@available(tvOS, obsoleted: 1) -@available(watchOS, obsoleted: 1) -@available(macOS, obsoleted: 1) -@available(macCatalyst, obsoleted: 1) -public class RCPurchasesErrorUtils : ObjectiveC.NSObject { - @objc override dynamic public init() - @objc deinit -} -extension RevenueCat.Purchases { - @available(iOS, obsoleted: 1, renamed: "ErrorCode") - @available(tvOS, obsoleted: 1, renamed: "ErrorCode") - @available(watchOS, obsoleted: 1, renamed: "ErrorCode") - @available(macOS, obsoleted: 1, renamed: "ErrorCode") - @available(macCatalyst, obsoleted: 1, renamed: "ErrorCode") - public enum Errors { - } - @available(iOS, obsoleted: 1) - @available(tvOS, obsoleted: 1) - @available(watchOS, obsoleted: 1) - @available(macOS, obsoleted: 1) - @available(macCatalyst, obsoleted: 1) - public enum FinishableKey { - } - @available(iOS, obsoleted: 1) - @available(tvOS, obsoleted: 1) - @available(watchOS, obsoleted: 1) - @available(macOS, obsoleted: 1) - @available(macCatalyst, obsoleted: 1) - public enum ReadableErrorCodeKey { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum ErrorCode { - } - @available(iOS, obsoleted: 1) - @available(tvOS, obsoleted: 1) - @available(watchOS, obsoleted: 1) - @available(macOS, obsoleted: 1) - @available(macCatalyst, obsoleted: 1) - public enum RevenueCatBackendErrorCode { - } - @available(iOS, obsoleted: 1, renamed: "StoreTransaction") - @available(tvOS, obsoleted: 1, renamed: "StoreTransaction") - @available(watchOS, obsoleted: 1, renamed: "StoreTransaction") - @available(macOS, obsoleted: 1, renamed: "StoreTransaction") - @available(macCatalyst, obsoleted: 1, renamed: "StoreTransaction") - public enum Transaction { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum EntitlementInfo { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum EntitlementInfos { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum PackageType { - } - @available(iOS, obsoleted: 1, renamed: "CustomerInfo") - @available(tvOS, obsoleted: 1, renamed: "CustomerInfo") - @available(watchOS, obsoleted: 1, renamed: "CustomerInfo") - @available(macOS, obsoleted: 1, renamed: "CustomerInfo") - @available(macCatalyst, obsoleted: 1, renamed: "CustomerInfo") - public enum PurchaserInfo { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum Offering { - } - @available(iOS, obsoleted: 1) - @available(tvOS, obsoleted: 1) - @available(watchOS, obsoleted: 1) - @available(macOS, obsoleted: 1) - @available(macCatalyst, obsoleted: 1) - public enum ErrorUtils { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum Store { - } - @available(iOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(tvOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(watchOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macOS, obsoleted: 1, message: "Remove `Purchases.`") - @available(macCatalyst, obsoleted: 1, message: "Remove `Purchases.`") - public enum PeriodType { - } -} -@_hasMissingDesignatedInitializers @objc(RCPromotionalOffer) final public class PromotionalOffer : ObjectiveC.NSObject { - final public let discount: RevenueCat.StoreProductDiscount - @objc deinit -} -extension RevenueCat.Purchases { - @available(iOS, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(tvOS, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(watchOS, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(macOS, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(macCatalyst, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - public func checkTrialOrIntroDiscountEligibility(_ productIdentifiers: [Swift.String], completion: @escaping ([Swift.String : RevenueCat.IntroEligibility]) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS, introduced: 13.0, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(tvOS, introduced: 13.0, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(watchOS, introduced: 6.2, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(macOS, introduced: 10.15, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - @available(macCatalyst, introduced: 13.0, deprecated: 1, renamed: "checkTrialOrIntroDiscountEligibility(productIdentifiers:)") - public func checkTrialOrIntroDiscountEligibility(_ productIdentifiers: [Swift.String]) async -> [Swift.String : RevenueCat.IntroEligibility] - #endif - -} -@objc(RCPurchasesErrorCode) public enum ErrorCode : Swift.Int, Swift.Error { - @objc(RCUnknownError) case unknownError = 0 - @objc(RCPurchaseCancelledError) case purchaseCancelledError = 1 - @objc(RCStoreProblemError) case storeProblemError = 2 - @objc(RCPurchaseNotAllowedError) case purchaseNotAllowedError = 3 - @objc(RCPurchaseInvalidError) case purchaseInvalidError = 4 - @objc(RCProductNotAvailableForPurchaseError) case productNotAvailableForPurchaseError = 5 - @objc(RCProductAlreadyPurchasedError) case productAlreadyPurchasedError = 6 - @objc(RCReceiptAlreadyInUseError) case receiptAlreadyInUseError = 7 - @objc(RCInvalidReceiptError) case invalidReceiptError = 8 - @objc(RCMissingReceiptFileError) case missingReceiptFileError = 9 - @objc(RCNetworkError) case networkError = 10 - @objc(RCInvalidCredentialsError) case invalidCredentialsError = 11 - @objc(RCUnexpectedBackendResponseError) case unexpectedBackendResponseError = 12 - @objc(RCReceiptInUseByOtherSubscriberError) case receiptInUseByOtherSubscriberError = 13 - @objc(RCInvalidAppUserIdError) case invalidAppUserIdError = 14 - @objc(RCOperationAlreadyInProgressForProductError) case operationAlreadyInProgressForProductError = 15 - @objc(RCUnknownBackendError) case unknownBackendError = 16 - @objc(RCInvalidAppleSubscriptionKeyError) case invalidAppleSubscriptionKeyError = 17 - @objc(RCIneligibleError) case ineligibleError = 18 - @objc(RCInsufficientPermissionsError) case insufficientPermissionsError = 19 - @objc(RCPaymentPendingError) case paymentPendingError = 20 - @objc(RCInvalidSubscriberAttributesError) case invalidSubscriberAttributesError = 21 - @objc(RCLogOutAnonymousUserError) case logOutAnonymousUserError = 22 - @objc(RCConfigurationError) case configurationError = 23 - @objc(RCUnsupportedError) case unsupportedError = 24 - @objc(RCEmptySubscriberAttributesError) case emptySubscriberAttributes = 25 - @objc(RCProductDiscountMissingIdentifierError) case productDiscountMissingIdentifierError = 26 - @objc(RCMissingAppUserIDForAliasCreationError) case missingAppUserIDForAliasCreationError = 27 - @objc(RCProductDiscountMissingSubscriptionGroupIdentifierError) case productDiscountMissingSubscriptionGroupIdentifierError = 28 - @objc(RCCustomerInfoError) case customerInfoError = 29 - @objc(RCSystemInfoError) case systemInfoError = 30 - @objc(RCBeginRefundRequestError) case beginRefundRequestError = 31 - @objc(RCProductRequestTimedOut) case productRequestTimedOut = 32 - @objc(RCAPIEndpointBlocked) case apiEndpointBlockedError = 33 - @objc(RCInvalidPromotionalOfferError) case invalidPromotionalOfferError = 34 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public static var _nsErrorDomain: Swift.String { - get - } - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.ErrorCode : Swift.CaseIterable { - public typealias AllCases = [RevenueCat.ErrorCode] - public static var allCases: [RevenueCat.ErrorCode] { - get - } -} -extension RevenueCat.ErrorCode { - public var description: Swift.String { - get - } -} -extension RevenueCat.ErrorCode : Foundation.CustomNSError { - public var errorUserInfo: [Swift.String : Any] { - get - } -} -@objc(RCRefundRequestStatus) public enum RefundRequestStatus : Swift.Int { - @objc(RCRefundRequestUserCancelled) case userCancelled = 0 - @objc(RCRefundRequestSuccess) case success - @objc(RCRefundRequestError) case error - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.Purchases { - @objc(RCPlatformInfo) final public class PlatformInfo : ObjectiveC.NSObject { - @objc public init(flavor: Swift.String, version: Swift.String) - @objc deinit - } - @objc public static var platformInfo: RevenueCat.Purchases.PlatformInfo? -} -@_inheritsConvenienceInitializers @objc(RCDangerousSettings) public class DangerousSettings : ObjectiveC.NSObject { - @objc final public let autoSyncPurchases: Swift.Bool - @objc override convenience dynamic public init() - @objc public init(autoSyncPurchases: Swift.Bool) - @objc deinit -} -@_hasMissingDesignatedInitializers @objc(RCCustomerInfo) public class CustomerInfo : ObjectiveC.NSObject { - @objc final public let entitlements: RevenueCat.EntitlementInfos - @objc public var activeSubscriptions: Swift.Set { - @objc get - } - @objc public var allPurchasedProductIdentifiers: Swift.Set { - @objc get - } - @objc public var latestExpirationDate: Foundation.Date? { - @objc get - } - @available(*, deprecated, message: "use nonSubscriptionTransactions") - @objc public var nonConsumablePurchases: Swift.Set { - @objc get - } - @objc final public let nonSubscriptionTransactions: [RevenueCat.StoreTransaction] - @objc final public let requestDate: Foundation.Date - @objc final public let firstSeen: Foundation.Date - @objc final public let originalAppUserId: Swift.String - @objc final public let managementURL: Foundation.URL? - @objc final public let originalPurchaseDate: Foundation.Date? - @objc final public let originalApplicationVersion: Swift.String? - @objc final public let rawData: [Swift.String : Any] - @objc public func expirationDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? - @objc public func purchaseDate(forProductIdentifier productIdentifier: Swift.String) -> Foundation.Date? - @objc public func expirationDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? - @objc public func purchaseDate(forEntitlement entitlementIdentifier: Swift.String) -> Foundation.Date? - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc override dynamic public var hash: Swift.Int { - @objc get - } - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc deinit -} -extension RevenueCat.CustomerInfo : RevenueCat.RawDataContainer { - public typealias Content = [Swift.String : Any] -} -@objc(RCStore) public enum Store : Swift.Int { - @objc(RCAppStore) case appStore = 0 - @objc(RCMacAppStore) case macAppStore = 1 - @objc(RCPlayStore) case playStore = 2 - @objc(RCStripe) case stripe = 3 - @objc(RCPromotional) case promotional = 4 - @objc(RCUnknownStore) case unknownStore = 5 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.Store : Swift.CaseIterable { - public typealias AllCases = [RevenueCat.Store] - public static var allCases: [RevenueCat.Store] { - get - } -} -@objc(RCPeriodType) public enum PeriodType : Swift.Int { - @objc(RCNormal) case normal = 0 - @objc(RCIntro) case intro = 1 - @objc(RCTrial) case trial = 2 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.PeriodType : Swift.CaseIterable { - public typealias AllCases = [RevenueCat.PeriodType] - public static var allCases: [RevenueCat.PeriodType] { - get - } -} -@_hasMissingDesignatedInitializers @objc(RCEntitlementInfo) public class EntitlementInfo : ObjectiveC.NSObject { - @objc final public let identifier: Swift.String - @objc final public let isActive: Swift.Bool - @objc final public let willRenew: Swift.Bool - @objc final public let periodType: RevenueCat.PeriodType - @objc final public let latestPurchaseDate: Foundation.Date? - @objc final public let originalPurchaseDate: Foundation.Date? - @objc final public let expirationDate: Foundation.Date? - @objc final public let store: RevenueCat.Store - @objc final public let productIdentifier: Swift.String - @objc final public let isSandbox: Swift.Bool - @objc final public let unsubscribeDetectedAt: Foundation.Date? - @objc final public let billingIssueDetectedAt: Foundation.Date? - @objc final public let ownershipType: RevenueCat.PurchaseOwnershipType - @objc final public let rawData: [Swift.String : Any] - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc override dynamic public var hash: Swift.Int { - @objc get - } - @objc deinit -} -extension RevenueCat.EntitlementInfo : RevenueCat.RawDataContainer { - public typealias Content = [Swift.String : Any] -} -extension RevenueCat.EntitlementInfo : Swift.Identifiable { - public var id: Swift.String { - get - } - public typealias ID = Swift.String -} -@objc(RCLogLevel) public enum LogLevel : Swift.Int, Swift.CustomStringConvertible { - case debug, info, warn, error - public var description: Swift.String { - get - } - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -public typealias VerboseLogHandler = (_ level: RevenueCat.LogLevel, _ message: Swift.String, _ file: Swift.String?, _ function: Swift.String?, _ line: Swift.UInt) -> Swift.Void -public typealias LogHandler = (_ level: RevenueCat.LogLevel, _ message: Swift.String) -> Swift.Void -public typealias SK1Transaction = StoreKit.SKPaymentTransaction -@available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) -public typealias SK2Transaction = StoreKit.Transaction -@_hasMissingDesignatedInitializers @objc(RCStoreTransaction) final public class StoreTransaction : ObjectiveC.NSObject { - @objc final public var productIdentifier: Swift.String { - @objc get - } - @objc final public var purchaseDate: Foundation.Date { - @objc get - } - @objc final public var transactionIdentifier: Swift.String { - @objc get - } - @objc final public var quantity: Swift.Int { - @objc get - } - @objc override final public func isEqual(_ object: Any?) -> Swift.Bool - @objc override final public var hash: Swift.Int { - @objc get - } - @objc deinit -} -extension RevenueCat.StoreTransaction { - @objc final public var sk1Transaction: RevenueCat.SK1Transaction? { - @objc get - } - @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) - final public var sk2Transaction: RevenueCat.SK2Transaction? { - get - } -} -extension RevenueCat.StoreTransaction : Swift.Identifiable { - final public var id: Swift.String { - get - } - public typealias ID = Swift.String -} -public protocol RawDataContainer { - associatedtype Content - var rawData: Self.Content { get } -} -public typealias PurchaseResultData = (transaction: RevenueCat.StoreTransaction?, customerInfo: RevenueCat.CustomerInfo, userCancelled: Swift.Bool) -public typealias PurchaseCompletedBlock = (RevenueCat.StoreTransaction?, RevenueCat.CustomerInfo?, Swift.Error?, Swift.Bool) -> Swift.Void -public typealias DeferredPromotionalPurchaseBlock = (@escaping RevenueCat.PurchaseCompletedBlock) -> Swift.Void -@_hasMissingDesignatedInitializers @objc(RCPurchases) public class Purchases : ObjectiveC.NSObject { - @objc(sharedPurchases) public static var shared: RevenueCat.Purchases { - @objc get - } - @objc public static var isConfigured: Swift.Bool { - @objc get - } - @objc public var delegate: RevenueCat.PurchasesDelegate? { - @objc get - @objc set - } - @objc public static var automaticAppleSearchAdsAttributionCollection: Swift.Bool - @objc public static var logLevel: RevenueCat.LogLevel { - @objc get - @objc set - } - @objc public static var proxyURL: Foundation.URL? { - @objc get - @objc set - } - @objc public static var forceUniversalAppStore: Swift.Bool { - @objc get - @objc set - } - @available(iOS 8.0, macOS 10.14, watchOS 6.2, macCatalyst 13.0, *) - @objc public static var simulatesAskToBuyInSandbox: Swift.Bool { - @objc get - @objc set - } - @objc public static func canMakePayments() -> Swift.Bool - @objc public static var logHandler: RevenueCat.LogHandler { - @objc get - @objc set - } - @objc public static var verboseLogHandler: RevenueCat.VerboseLogHandler { - @objc get - @objc set - } - @objc public static var verboseLogs: Swift.Bool { - @objc get - @objc set - } - @objc public static var frameworkVersion: Swift.String { - @objc get - } - @objc public var finishTransactions: Swift.Bool { - @objc get - @objc set - } - @objc public func collectDeviceIdentifiers() - @objc deinit -} -extension RevenueCat.Purchases { - @objc dynamic public func setAttributes(_ attributes: [Swift.String : Swift.String]) - @objc dynamic public func setEmail(_ email: Swift.String?) - @objc dynamic public func setPhoneNumber(_ phoneNumber: Swift.String?) - @objc dynamic public func setDisplayName(_ displayName: Swift.String?) - @objc dynamic public func setPushToken(_ pushToken: Foundation.Data?) - @objc dynamic public func setAdjustID(_ adjustID: Swift.String?) - @objc dynamic public func setAppsflyerID(_ appsflyerID: Swift.String?) - @objc dynamic public func setFBAnonymousID(_ fbAnonymousID: Swift.String?) - @objc dynamic public func setMparticleID(_ mparticleID: Swift.String?) - @objc dynamic public func setOnesignalID(_ onesignalID: Swift.String?) - @objc dynamic public func setAirshipChannelID(_ airshipChannelID: Swift.String?) - @objc dynamic public func setCleverTapID(_ cleverTapID: Swift.String?) - @objc dynamic public func setMediaSource(_ mediaSource: Swift.String?) - @objc dynamic public func setCampaign(_ campaign: Swift.String?) - @objc dynamic public func setAdGroup(_ adGroup: Swift.String?) - @objc dynamic public func setAd(_ installAd: Swift.String?) - @objc dynamic public func setKeyword(_ keyword: Swift.String?) - @objc dynamic public func setCreative(_ creative: Swift.String?) -} -extension RevenueCat.Purchases { - @objc dynamic public var appUserID: Swift.String { - @objc get - } - @objc dynamic public var isAnonymous: Swift.Bool { - @objc get - } - @objc(logIn:completion:) dynamic public func logIn(_ appUserID: Swift.String, completion: @escaping (RevenueCat.CustomerInfo?, Swift.Bool, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func logIn(_ appUserID: Swift.String) async throws -> (customerInfo: RevenueCat.CustomerInfo, created: Swift.Bool) - #endif - - @objc dynamic public func logOut(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func logOut() async throws -> RevenueCat.CustomerInfo - #endif - - @objc dynamic public func getOfferings(completion: @escaping (RevenueCat.Offerings?, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func offerings() async throws -> RevenueCat.Offerings - #endif - -} -extension RevenueCat.Purchases { - @objc dynamic public func getCustomerInfo(completion: @escaping (RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func customerInfo() async throws -> RevenueCat.CustomerInfo - #endif - - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public var customerInfoStream: _Concurrency.AsyncStream { - get - } - @objc(getProductsWithIdentifiers:completion:) dynamic public func getProducts(_ productIdentifiers: [Swift.String], completion: @escaping ([RevenueCat.StoreProduct]) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func products(_ productIdentifiers: [Swift.String]) async -> [RevenueCat.StoreProduct] - #endif - - @objc(purchaseProduct:withCompletion:) dynamic public func purchase(product: RevenueCat.StoreProduct, completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func purchase(product: RevenueCat.StoreProduct) async throws -> RevenueCat.PurchaseResultData - #endif - - @objc(purchasePackage:withCompletion:) dynamic public func purchase(package: RevenueCat.Package, completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func purchase(package: RevenueCat.Package) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS 12.2, macOS 10.14.4, watchOS 6.2, macCatalyst 13.0, tvOS 12.2, *) - @objc(purchaseProduct:withPromotionalOffer:completion:) dynamic public func purchase(product: RevenueCat.StoreProduct, promotionalOffer: RevenueCat.PromotionalOffer, completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func purchase(product: RevenueCat.StoreProduct, promotionalOffer: RevenueCat.PromotionalOffer) async throws -> RevenueCat.PurchaseResultData - #endif - - @available(iOS 12.2, macOS 10.14.4, watchOS 6.2, macCatalyst 13.0, tvOS 12.2, *) - @objc(purchasePackage:withPromotionalOffer:completion:) dynamic public func purchase(package: RevenueCat.Package, promotionalOffer: RevenueCat.PromotionalOffer, completion: @escaping RevenueCat.PurchaseCompletedBlock) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func purchase(package: RevenueCat.Package, promotionalOffer: RevenueCat.PromotionalOffer) async throws -> RevenueCat.PurchaseResultData - #endif - - @objc dynamic public func syncPurchases(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)?) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func syncPurchases() async throws -> RevenueCat.CustomerInfo - #endif - - @objc dynamic public func restorePurchases(completion: ((RevenueCat.CustomerInfo?, Swift.Error?) -> Swift.Void)? = nil) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func restorePurchases() async throws -> RevenueCat.CustomerInfo - #endif - - @objc(checkTrialOrIntroDiscountEligibility:completion:) dynamic public func checkTrialOrIntroDiscountEligibility(productIdentifiers: [Swift.String], completion: @escaping ([Swift.String : RevenueCat.IntroEligibility]) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, tvOS 13.0, macOS 10.15, watchOS 6.2, *) - public func checkTrialOrIntroDiscountEligibility(productIdentifiers: [Swift.String]) async -> [Swift.String : RevenueCat.IntroEligibility] - #endif - - @objc(checkTrialOrIntroDiscountEligibilityForProduct:completion:) dynamic public func checkTrialOrIntroDiscountEligibility(product: RevenueCat.StoreProduct, completion: @escaping (RevenueCat.IntroEligibilityStatus) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, tvOS 13.0, macOS 10.15, watchOS 6.2, *) - public func checkTrialOrIntroDiscountEligibility(product: RevenueCat.StoreProduct) async -> RevenueCat.IntroEligibilityStatus - #endif - - @objc dynamic public func invalidateCustomerInfoCache() - @available(iOS 14.0, *) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - @available(macOS, unavailable) - @available(macCatalyst, unavailable) - @objc dynamic public func presentCodeRedemptionSheet() - @available(iOS 12.2, macOS 10.14.4, macCatalyst 13.0, tvOS 12.2, watchOS 6.2, *) - @objc(getPromotionalOfferForProductDiscount:withProduct:withCompletion:) dynamic public func getPromotionalOffer(forProductDiscount discount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct, completion: @escaping (RevenueCat.PromotionalOffer?, Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func getPromotionalOffer(forProductDiscount discount: RevenueCat.StoreProductDiscount, product: RevenueCat.StoreProduct) async throws -> RevenueCat.PromotionalOffer - #endif - - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) - public func getEligiblePromotionalOffers(forProduct product: RevenueCat.StoreProduct) async -> [RevenueCat.PromotionalOffer] - #endif - - @available(iOS 13.0, macOS 10.15, *) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - @objc dynamic public func showManageSubscriptions(completion: @escaping (Swift.Error?) -> Swift.Void) - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 13.0, macOS 10.15, *) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - public func showManageSubscriptions() async throws - #endif - - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 15.0, *) - @available(macOS, unavailable) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - @objc(beginRefundRequestForProduct:completion:) dynamic public func beginRefundRequest(forProduct productID: Swift.String) async throws -> RevenueCat.RefundRequestStatus - #endif - - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 15.0, *) - @available(macOS, unavailable) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - @objc(beginRefundRequestForEntitlement:completion:) dynamic public func beginRefundRequest(forEntitlement entitlementID: Swift.String) async throws -> RevenueCat.RefundRequestStatus - #endif - - - #if compiler(>=5.3) && $AsyncAwait - @available(iOS 15.0, *) - @available(macOS, unavailable) - @available(watchOS, unavailable) - @available(tvOS, unavailable) - @objc(beginRefundRequestForActiveEntitlementWithCompletion:) dynamic public func beginRefundRequestForActiveEntitlement() async throws -> RevenueCat.RefundRequestStatus - #endif - -} -extension RevenueCat.Purchases { - @discardableResult - @objc(configureWithAPIKey:) public static func configure(withAPIKey apiKey: Swift.String) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool) -> RevenueCat.Purchases - @discardableResult - @objc(configureWithAPIKey:appUserID:observerMode:userDefaults:useStoreKit2IfAvailable:dangerousSettings:) public static func configure(withAPIKey apiKey: Swift.String, appUserID: Swift.String?, observerMode: Swift.Bool, userDefaults: Foundation.UserDefaults?, useStoreKit2IfAvailable: Swift.Bool, dangerousSettings: RevenueCat.DangerousSettings?) -> RevenueCat.Purchases -} -extension RevenueCat.Purchases { - @objc dynamic public func shouldPurchasePromoProduct(_ product: RevenueCat.StoreProduct, defermentBlock: @escaping RevenueCat.DeferredPromotionalPurchaseBlock) -} -extension RevenueCat.Purchases { - @available(*, deprecated, message: "use Purchases.logLevel instead") - @objc public static var debugLogsEnabled: Swift.Bool { - @objc get - @objc set - } - @available(*, deprecated, message: "Configure behavior through the RevenueCat dashboard instead") - @objc dynamic public var allowSharingAppStoreAccount: Swift.Bool { - @objc get - @objc set - } - @available(*, deprecated, message: "Use the set functions instead") - @objc public static func addAttributionData(_ data: [Swift.String : Any], fromNetwork network: RevenueCat.AttributionNetwork) - @available(*, deprecated, message: "Use the set functions instead") - @objc(addAttributionData:fromNetwork:forNetworkUserId:) public static func addAttributionData(_ data: [Swift.String : Any], from network: RevenueCat.AttributionNetwork, forNetworkUserId networkUserId: Swift.String?) -} -@objc(RCSubscriptionPeriod) public class SubscriptionPeriod : ObjectiveC.NSObject { - @objc final public let value: Swift.Int - @objc final public let unit: RevenueCat.SubscriptionPeriod.Unit - public init(value: Swift.Int, unit: RevenueCat.SubscriptionPeriod.Unit) - @objc(RCSubscriptionPeriodUnit) public enum Unit : Swift.Int { - case day = 0 - case week = 1 - case month = 2 - case year = 3 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } - } - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc override dynamic public var hash: Swift.Int { - @objc get - } - @objc deinit -} -extension RevenueCat.SubscriptionPeriod { - @available(iOS, unavailable, renamed: "value") - @available(tvOS, unavailable, renamed: "value") - @available(watchOS, unavailable, renamed: "value") - @available(macOS, unavailable, renamed: "value") - @objc dynamic public var numberOfUnits: Swift.Int { - @objc get - } -} -extension RevenueCat.SubscriptionPeriod.Unit : Swift.CustomDebugStringConvertible { - public var debugDescription: Swift.String { - get - } -} -extension RevenueCat.SubscriptionPeriod { - @objc override dynamic public var debugDescription: Swift.String { - @objc get - } -} -extension RevenueCat.SubscriptionPeriod.Unit : Swift.Encodable { -} -extension RevenueCat.SubscriptionPeriod : Swift.Encodable { - public func encode(to encoder: Swift.Encoder) throws -} -@objc(RCPurchaseOwnershipType) public enum PurchaseOwnershipType : Swift.Int { - case purchased = 0 - case familyShared = 1 - case unknown = 2 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.PurchaseOwnershipType : Swift.CaseIterable { - public typealias AllCases = [RevenueCat.PurchaseOwnershipType] - public static var allCases: [RevenueCat.PurchaseOwnershipType] { - get - } -} -extension RevenueCat.PurchaseOwnershipType : Swift.Decodable { - public init(from decoder: Swift.Decoder) throws -} -extension RevenueCat.PeriodType : Swift.Decodable { - public init(from decoder: Swift.Decoder) throws -} -extension RevenueCat.Store : Swift.Decodable { - public init(from decoder: Swift.Decoder) throws -} -@_hasMissingDesignatedInitializers @objc(RCEntitlementInfos) public class EntitlementInfos : ObjectiveC.NSObject { - @objc final public let all: [Swift.String : RevenueCat.EntitlementInfo] - @objc public var active: [Swift.String : RevenueCat.EntitlementInfo] { - @objc get - } - @objc public subscript(key: Swift.String) -> RevenueCat.EntitlementInfo? { - @objc get - } - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc deinit -} -@objc(RCPackageType) public enum PackageType : Swift.Int { - case unknown = -2, custom, lifetime, annual, sixMonth, threeMonth, twoMonth, monthly, weekly - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -@_hasMissingDesignatedInitializers @objc(RCPackage) public class Package : ObjectiveC.NSObject { - @objc final public let identifier: Swift.String - @objc final public let packageType: RevenueCat.PackageType - @objc final public let storeProduct: RevenueCat.StoreProduct - @objc final public let offeringIdentifier: Swift.String - @objc public var localizedPriceString: Swift.String { - @objc get - } - @objc public var localizedIntroductoryPriceString: Swift.String? { - @objc get - } - @objc override dynamic public func isEqual(_ object: Any?) -> Swift.Bool - @objc override dynamic public var hash: Swift.Int { - @objc get - } - @objc deinit -} -@objc extension RevenueCat.Package { - @objc public static func string(from packageType: RevenueCat.PackageType) -> Swift.String? - @objc dynamic public class func packageType(from string: Swift.String) -> RevenueCat.PackageType -} -extension RevenueCat.Package : Swift.Identifiable { - public var id: Swift.String { - get - } - public typealias ID = Swift.String -} -@objc(RCIntroEligibilityStatus) public enum IntroEligibilityStatus : Swift.Int { - case unknown = 0 - case ineligible - case eligible - case noIntroOfferExists - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.IntroEligibilityStatus : Swift.CaseIterable { - public typealias AllCases = [RevenueCat.IntroEligibilityStatus] - public static var allCases: [RevenueCat.IntroEligibilityStatus] { - get - } -} -@_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objc(RCIntroEligibility) public class IntroEligibility : ObjectiveC.NSObject { - @objc final public let status: RevenueCat.IntroEligibilityStatus - @objc override dynamic public var description: Swift.String { - @objc get - } - @objc deinit -} -@available(iOS 11.2, macOS 10.13.2, tvOS 11.2, watchOS 6.2, *) -public typealias SK1ProductDiscount = StoreKit.SKProductDiscount -@available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) -public typealias SK2ProductDiscount = StoreKit.Product.SubscriptionOffer -@_hasMissingDesignatedInitializers @objc(RCStoreProductDiscount) final public class StoreProductDiscount : ObjectiveC.NSObject { - @objc(RCPaymentMode) public enum PaymentMode : Swift.Int { - case payAsYouGo = 0 - case payUpFront = 1 - case freeTrial = 2 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } - } - @objc(RCDiscountType) public enum DiscountType : Swift.Int { - case introductory = 0 - case promotional = 1 - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } - } - @objc final public var offerIdentifier: Swift.String? { - @objc get - } - @objc final public var currencyCode: Swift.String? { - @objc get - } - final public var price: Foundation.Decimal { - get - } - @objc final public var localizedPriceString: Swift.String { - @objc get - } - @objc final public var paymentMode: RevenueCat.StoreProductDiscount.PaymentMode { - @objc get - } - @objc final public var subscriptionPeriod: RevenueCat.SubscriptionPeriod { - @objc get - } - @objc final public var type: RevenueCat.StoreProductDiscount.DiscountType { - @objc get - } - @objc override final public func isEqual(_ object: Any?) -> Swift.Bool - @objc override final public var hash: Swift.Int { - @objc get - } - @objc deinit -} -extension RevenueCat.StoreProductDiscount { - @objc(price) final public var priceDecimalNumber: Foundation.NSDecimalNumber { - @objc get - } -} -extension RevenueCat.StoreProductDiscount { - public struct Data : Swift.Hashable { - public func hash(into hasher: inout Swift.Hasher) - public static func == (a: RevenueCat.StoreProductDiscount.Data, b: RevenueCat.StoreProductDiscount.Data) -> Swift.Bool - public var hashValue: Swift.Int { - get - } - } -} -extension RevenueCat.StoreProductDiscount { - @available(iOS 12.2, macOS 10.14.4, tvOS 12.2, watchOS 6.2, *) - @objc final public var sk1Discount: RevenueCat.SK1ProductDiscount? { - @objc get - } - @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) - final public var sk2Discount: RevenueCat.SK2ProductDiscount? { - get - } -} -extension RevenueCat.StoreProductDiscount : Swift.Encodable { - final public func encode(to encoder: Swift.Encoder) throws -} -extension RevenueCat.StoreProductDiscount.PaymentMode : Swift.Encodable { -} -extension RevenueCat.StoreProductDiscount : Swift.Identifiable { - final public var id: RevenueCat.StoreProductDiscount.Data { - get - } - public typealias ID = RevenueCat.StoreProductDiscount.Data -} -@objc(RCPurchasesDelegate) public protocol PurchasesDelegate : ObjectiveC.NSObjectProtocol { - @available(swift, obsoleted: 1, renamed: "purchases(_:receivedUpdated:)") - @available(iOS, obsoleted: 1) - @available(macOS, obsoleted: 1) - @available(tvOS, obsoleted: 1) - @available(watchOS, obsoleted: 1) - @objc(purchases:didReceiveUpdatedPurchaserInfo:) optional func purchases(_ purchases: RevenueCat.Purchases, didReceiveUpdated purchaserInfo: RevenueCat.CustomerInfo) - @objc(purchases:receivedUpdatedCustomerInfo:) optional func purchases(_ purchases: RevenueCat.Purchases, receivedUpdated customerInfo: RevenueCat.CustomerInfo) - @objc optional func purchases(_ purchases: RevenueCat.Purchases, shouldPurchasePromoProduct product: RevenueCat.StoreProduct, defermentBlock makeDeferredPurchase: @escaping RevenueCat.DeferredPromotionalPurchaseBlock) -} -@objc(RCAttributionNetwork) public enum AttributionNetwork : Swift.Int { - case appleSearchAds - case adjust - case appsFlyer - case branch - case tenjin - case facebook - case mParticle - public init?(rawValue: Swift.Int) - public typealias RawValue = Swift.Int - public var rawValue: Swift.Int { - get - } -} -extension RevenueCat.AttributionNetwork : Swift.Encodable { - public func encode(to encoder: Swift.Encoder) throws -} -public typealias SK1Product = StoreKit.SKProduct -@available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) -public typealias SK2Product = StoreKit.Product -@_hasMissingDesignatedInitializers @objc(RCStoreProduct) final public class StoreProduct : ObjectiveC.NSObject { - @objc override final public func isEqual(_ object: Any?) -> Swift.Bool - @objc override final public var hash: Swift.Int { - @objc get - } - @objc final public var productType: RevenueCat.StoreProduct.ProductType { - @objc get - } - @objc final public var productCategory: RevenueCat.StoreProduct.ProductCategory { - @objc get - } - @objc final public var localizedDescription: Swift.String { - @objc get - } - @objc final public var localizedTitle: Swift.String { - @objc get - } - @objc final public var currencyCode: Swift.String? { - @objc get - } - final public var price: Foundation.Decimal { - get - } - @objc final public var localizedPriceString: Swift.String { - @objc get - } - @objc final public var productIdentifier: Swift.String { - @objc get - } - @available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 8.0, *) - @objc final public var isFamilyShareable: Swift.Bool { - @objc get - } - @available(iOS 12.0, macCatalyst 13.0, tvOS 12.0, macOS 10.14, watchOS 6.2, *) - @objc final public var subscriptionGroupIdentifier: Swift.String? { - @objc get - } - @objc final public var priceFormatter: Foundation.NumberFormatter? { - @objc get - } - @available(iOS 11.2, macOS 10.13.2, tvOS 11.2, watchOS 6.2, *) - @objc final public var subscriptionPeriod: RevenueCat.SubscriptionPeriod? { - @objc get - } - @available(iOS 11.2, macOS 10.13.2, tvOS 11.2, watchOS 6.2, *) - @objc final public var introductoryDiscount: RevenueCat.StoreProductDiscount? { - @objc get - } - @available(iOS 12.2, macOS 10.14.4, tvOS 12.2, watchOS 6.2, *) - @objc final public var discounts: [RevenueCat.StoreProductDiscount] { - @objc get - } - @objc deinit -} -extension RevenueCat.StoreProduct { - @objc(price) final public var priceDecimalNumber: Foundation.NSDecimalNumber { - @objc get - } - @available(iOS 11.2, macOS 10.13.2, tvOS 11.2, watchOS 6.2, *) - @objc final public var pricePerMonth: Foundation.NSDecimalNumber? { - @objc get - } - @objc final public var localizedIntroductoryPriceString: Swift.String? { - @objc get - } -} -@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.2, *) -extension RevenueCat.StoreProduct { - - #if compiler(>=5.3) && $AsyncAwait - final public func getEligiblePromotionalOffers() async -> [RevenueCat.PromotionalOffer] - #endif - -} -extension RevenueCat.StoreProduct { - @objc convenience dynamic public init(sk1Product: RevenueCat.SK1Product) - @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) - convenience public init(sk2Product: RevenueCat.SK2Product) - @objc final public var sk1Product: RevenueCat.SK1Product? { - @objc get - } - @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12.0, *) - final public var sk2Product: RevenueCat.SK2Product? { - get - } -} -extension RevenueCat.StoreProduct { - @available(iOS, unavailable, introduced: 11.2, renamed: "introductoryDiscount", message: "Use StoreProductDiscount instead") - @available(tvOS, unavailable, introduced: 11.2, renamed: "introductoryDiscount", message: "Use StoreProductDiscount instead") - @available(watchOS, unavailable, introduced: 6.2, renamed: "introductoryDiscount", message: "Use StoreProductDiscount instead") - @available(macOS, unavailable, introduced: 10.13.2, renamed: "introductoryDiscount", message: "Use StoreProductDiscount instead") - @objc final public var introductoryPrice: StoreKit.SKProductDiscount? { - @objc get - } - @available(iOS, unavailable, message: "Use localizedPriceString instead") - @available(tvOS, unavailable, message: "Use localizedPriceString instead") - @available(watchOS, unavailable, message: "Use localizedPriceString instead") - @available(macOS, unavailable, message: "Use localizedPriceString instead") - @objc final public var priceLocale: Foundation.Locale { - @objc get - } -} -extension RevenueCat.StoreProduct.ProductCategory : Swift.Equatable {} -extension RevenueCat.StoreProduct.ProductCategory : Swift.Hashable {} -extension RevenueCat.StoreProduct.ProductCategory : Swift.RawRepresentable {} -extension RevenueCat.StoreProduct.ProductType : Swift.Equatable {} -extension RevenueCat.StoreProduct.ProductType : Swift.Hashable {} -extension RevenueCat.StoreProduct.ProductType : Swift.RawRepresentable {} -extension RevenueCat.StoreProductDiscount.PaymentMode : Swift.Equatable {} -extension RevenueCat.StoreProductDiscount.PaymentMode : Swift.Hashable {} -extension RevenueCat.StoreProductDiscount.PaymentMode : Swift.RawRepresentable {} -extension RevenueCat.ErrorCode : Swift.Equatable {} -extension RevenueCat.ErrorCode : Swift.Hashable {} -extension RevenueCat.ErrorCode : Swift.RawRepresentable {} -extension RevenueCat.ErrorCode : Swift.CustomStringConvertible {} -extension RevenueCat.RefundRequestStatus : Swift.Equatable {} -extension RevenueCat.RefundRequestStatus : Swift.Hashable {} -extension RevenueCat.RefundRequestStatus : Swift.RawRepresentable {} -extension RevenueCat.Store : Swift.Equatable {} -extension RevenueCat.Store : Swift.Hashable {} -extension RevenueCat.Store : Swift.RawRepresentable {} -extension RevenueCat.PeriodType : Swift.Equatable {} -extension RevenueCat.PeriodType : Swift.Hashable {} -extension RevenueCat.PeriodType : Swift.RawRepresentable {} -extension RevenueCat.LogLevel : Swift.Equatable {} -extension RevenueCat.LogLevel : Swift.Hashable {} -extension RevenueCat.LogLevel : Swift.RawRepresentable {} -extension RevenueCat.SubscriptionPeriod.Unit : Swift.Equatable {} -extension RevenueCat.SubscriptionPeriod.Unit : Swift.Hashable {} -extension RevenueCat.SubscriptionPeriod.Unit : Swift.RawRepresentable {} -extension RevenueCat.PurchaseOwnershipType : Swift.Equatable {} -extension RevenueCat.PurchaseOwnershipType : Swift.Hashable {} -extension RevenueCat.PurchaseOwnershipType : Swift.RawRepresentable {} -extension RevenueCat.PackageType : Swift.Equatable {} -extension RevenueCat.PackageType : Swift.Hashable {} -extension RevenueCat.PackageType : Swift.RawRepresentable {} -extension RevenueCat.IntroEligibilityStatus : Swift.Equatable {} -extension RevenueCat.IntroEligibilityStatus : Swift.Hashable {} -extension RevenueCat.IntroEligibilityStatus : Swift.RawRepresentable {} -extension RevenueCat.StoreProductDiscount.DiscountType : Swift.Equatable {} -extension RevenueCat.StoreProductDiscount.DiscountType : Swift.Hashable {} -extension RevenueCat.StoreProductDiscount.DiscountType : Swift.RawRepresentable {} -extension RevenueCat.AttributionNetwork : Swift.Equatable {} -extension RevenueCat.AttributionNetwork : Swift.Hashable {} -extension RevenueCat.AttributionNetwork : Swift.RawRepresentable {} diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64.swiftmodule b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64.swiftmodule deleted file mode 100644 index 874125e..0000000 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/Modules/RevenueCat.swiftmodule/x86_64.swiftmodule and /dev/null differ diff --git a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/RevenueCat b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/RevenueCat index 2fcbb09..7af1474 100755 Binary files a/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/RevenueCat and b/Xamarin.RevenueCat.iOS/nativelib/RevenueCat.framework/RevenueCat differ