Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AUTOMATIC] Release/5.13.0 #4536

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.13.0-SNAPSHOT
5.13.0
20 changes: 19 additions & 1 deletion CHANGELOG.latest.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
## RevenueCat SDK
### ✨ New Features
* Adds `subscriptions` to `CustomerInfo` (#4508) via Cesar de la Vega (@vegaro)
### 🐞 Bugfixes
* Paywalls: Update Finnish "restore" localization (#4493) via Jeffrey Bunn (@Jethro87)

## RevenueCatUI SDK
### 🐞 Bugfixes
* Fix PaywallEvents failing to deserialize (#4520) via Cesar de la Vega (@vegaro)
* Fix build for app extensions (#4531) via Cesar de la Vega (@vegaro)
### Customer Center
#### 🐞 Bugfixes
* Customer Center deeplinks should always be opened externally (#4533) via Cesar de la Vega (@vegaro)
* Use `ManageSubscriptionsView` for users without active subscriptions (#4530) via Cesar de la Vega (@vegaro)

### πŸ”„ Other Changes
* Update Package.resolved (#4534) via Cesar de la Vega (@vegaro)
* Add repo name (#4532) via Noah Martin (@noahsmartin)
* [Paywalls] Add Emerge Snapshot Tests (#4529) via Mark Villacampa (@MarkVillacampa)
* Adds API Test for `jwsRepresentation` in obj-c (#4526) via Andy Boedo (@aboedo)
* Create `CustomerCenterEvent` (#4392) via Cesar de la Vega (@vegaro)
* [Paywalls] Add support for gradient backgrounds (#4522) via Mark Villacampa (@MarkVillacampa)
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
## 5.13.0
## RevenueCat SDK
### ✨ New Features
* Adds `subscriptions` to `CustomerInfo` (#4508) via Cesar de la Vega (@vegaro)
### 🐞 Bugfixes
* Paywalls: Update Finnish "restore" localization (#4493) via Jeffrey Bunn (@Jethro87)

## RevenueCatUI SDK
### 🐞 Bugfixes
* Fix build for app extensions (#4531) via Cesar de la Vega (@vegaro)
### Customer Center
#### 🐞 Bugfixes
* Customer Center deeplinks should always be opened externally (#4533) via Cesar de la Vega (@vegaro)
* Use `ManageSubscriptionsView` for users without active subscriptions (#4530) via Cesar de la Vega (@vegaro)

### πŸ”„ Other Changes
* Update Package.resolved (#4534) via Cesar de la Vega (@vegaro)
* Add repo name (#4532) via Noah Martin (@noahsmartin)
* [Paywalls] Add Emerge Snapshot Tests (#4529) via Mark Villacampa (@MarkVillacampa)
* Adds API Test for `jwsRepresentation` in obj-c (#4526) via Andy Boedo (@aboedo)
* Create `CustomerCenterEvent` (#4392) via Cesar de la Vega (@vegaro)
* [Paywalls] Add support for gradient backgrounds (#4522) via Mark Villacampa (@MarkVillacampa)

## 5.12.1
## RevenueCatUI SDK
### 🐞 Bugfixes
Expand Down
2 changes: 1 addition & 1 deletion RevenueCat.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "RevenueCat"
s.version = "5.13.0-SNAPSHOT"
s.version = "5.13.0"
s.summary = "Subscription and in-app-purchase backend service."

s.description = <<-DESC
Expand Down
2 changes: 1 addition & 1 deletion RevenueCatUI.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "RevenueCatUI"
s.version = "5.13.0-SNAPSHOT"
s.version = "5.13.0"
s.summary = "UI library for RevenueCat paywalls."

s.description = <<-DESC
Expand Down
2 changes: 1 addition & 1 deletion Sources/Misc/SystemInfo.swift
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ class SystemInfo {
}

static var frameworkVersion: String {
return "5.13.0-SNAPSHOT"
return "5.13.0"
}

static var systemVersion: String {
Expand Down
91 changes: 81 additions & 10 deletions Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h
Original file line number Diff line number Diff line change
Expand Up @@ -726,12 +726,12 @@ SWIFT_CLASS_NAMED("Builder")


@interface RCConfigurationBuilder (SWIFT_EXTENSION(RevenueCat))
- (RCConfigurationBuilder * _Nonnull)withUsesStoreKit2IfAvailable:(BOOL)usesStoreKit2IfAvailable SWIFT_WARN_UNUSED_RESULT SWIFT_DEPRECATED_MSG("Use .with(storeKitVersion:) to enable StoreKit 2");
- (RCConfigurationBuilder * _Nonnull)withObserverMode:(BOOL)observerMode SWIFT_WARN_UNUSED_RESULT SWIFT_AVAILABILITY(macos,obsoleted=1,message="'with' has been renamed to 'withPurchasesAreCompletedBy:storeKitVersion:': Observer Mode is now named PurchasesAreCompletedBy.") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'with' has been renamed to 'withPurchasesAreCompletedBy:storeKitVersion:': Observer Mode is now named PurchasesAreCompletedBy.") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'with' has been renamed to 'withPurchasesAreCompletedBy:storeKitVersion:': Observer Mode is now named PurchasesAreCompletedBy.") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'with' has been renamed to 'withPurchasesAreCompletedBy:storeKitVersion:': Observer Mode is now named PurchasesAreCompletedBy.");
@end


@interface RCConfigurationBuilder (SWIFT_EXTENSION(RevenueCat))
- (RCConfigurationBuilder * _Nonnull)withObserverMode:(BOOL)observerMode SWIFT_WARN_UNUSED_RESULT SWIFT_AVAILABILITY(macos,obsoleted=1,message="'with' has been renamed to 'withPurchasesAreCompletedBy:storeKitVersion:': Observer Mode is now named PurchasesAreCompletedBy.") SWIFT_AVAILABILITY(watchos,obsoleted=1,message="'with' has been renamed to 'withPurchasesAreCompletedBy:storeKitVersion:': Observer Mode is now named PurchasesAreCompletedBy.") SWIFT_AVAILABILITY(tvos,obsoleted=1,message="'with' has been renamed to 'withPurchasesAreCompletedBy:storeKitVersion:': Observer Mode is now named PurchasesAreCompletedBy.") SWIFT_AVAILABILITY(ios,obsoleted=1,message="'with' has been renamed to 'withPurchasesAreCompletedBy:storeKitVersion:': Observer Mode is now named PurchasesAreCompletedBy.");
- (RCConfigurationBuilder * _Nonnull)withUsesStoreKit2IfAvailable:(BOOL)usesStoreKit2IfAvailable SWIFT_WARN_UNUSED_RESULT SWIFT_DEPRECATED_MSG("Use .with(storeKitVersion:) to enable StoreKit 2");
@end

/// Specifies the behavior for a caching API.
Expand Down Expand Up @@ -807,7 +807,6 @@ SWIFT_CLASS_NAMED("Configuration")




@interface RCConfiguration (SWIFT_EXTENSION(RevenueCat))
@end

Expand Down Expand Up @@ -845,10 +844,12 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCEntitlementVerificationMode, "EntitlementV
};



@class RCEntitlementInfos;
@class NSDate;
@class RCNonSubscriptionTransaction;
@class NSURL;
@class RCSubscriptionInfo;

/// A container for the most recent customer info returned from <code>Purchases</code>.
/// These objects are non-mutable and do not update automatically.
Expand Down Expand Up @@ -911,6 +912,8 @@ SWIFT_CLASS_NAMED("CustomerInfo")
/// note:
/// This can be nil, see -<code>Purchases.restorePurchases(completion:)</code>
@property (nonatomic, readonly, copy) NSString * _Nullable originalApplicationVersion;
/// Dictionary of all subscription product identifiers and their subscription info
@property (nonatomic, readonly, copy) NSDictionary<NSString *, RCSubscriptionInfo *> * _Nonnull subscriptionsByProductIdentifier;
/// Get the expiration date for a given product identifier. You should use Entitlements though!
/// \param productIdentifier Product identifier for product
///
Expand Down Expand Up @@ -958,11 +961,11 @@ SWIFT_CLASS_NAMED("CustomerInfo")




@interface RCCustomerInfo (SWIFT_EXTENSION(RevenueCat))
@property (nonatomic, readonly, copy) NSDictionary<NSString *, id> * _Nonnull rawData;
@end


@class RCStoreTransaction;

@interface RCCustomerInfo (SWIFT_EXTENSION(RevenueCat))
Expand Down Expand Up @@ -1411,6 +1414,8 @@ SWIFT_CLASS_NAMED("NonSubscriptionTransaction")
@property (nonatomic, readonly, copy) NSString * _Nonnull transactionIdentifier;
/// The unique identifier for the transaction created by the Store.
@property (nonatomic, readonly, copy) NSString * _Nonnull storeTransactionIdentifier;
/// The <code>Store</code> where this transaction was performed.
@property (nonatomic, readonly) enum RCStore store;
@property (nonatomic, readonly, copy) NSString * _Nonnull description;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
Expand Down Expand Up @@ -2855,7 +2860,6 @@ SWIFT_CLASS_NAMED("PlatformInfo")




SWIFT_AVAILABILITY(visionos,introduced=2.0) SWIFT_AVAILABILITY(watchos,introduced=11.0) SWIFT_AVAILABILITY(tvos,introduced=18.0) SWIFT_AVAILABILITY(macos,introduced=15.0) SWIFT_AVAILABILITY(ios,introduced=18.0)
@interface RCPurchases (SWIFT_EXTENSION(RevenueCat))
/// Returns the win-back offers that the subscriber is eligible for on the provided product.
Expand All @@ -2881,6 +2885,7 @@ SWIFT_AVAILABILITY(visionos,introduced=2.0) SWIFT_AVAILABILITY(watchos,introduce




@interface RCPurchases (SWIFT_EXTENSION(RevenueCat))
- (void)logIn:(NSString * _Nonnull)appUserID completion:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, BOOL, NSError * _Nullable))completion;
- (void)logIn:(NSString * _Nonnull)appUserID completionHandler:(void (^ _Nonnull)(RCCustomerInfo * _Nullable, BOOL, NSError * _Nullable))completionHandler;
Expand Down Expand Up @@ -3017,13 +3022,15 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE
@end



@interface RCPurchases (SWIFT_EXTENSION(RevenueCat))
/// Parses a deep link URL to verify it’s a RevenueCat web purchase redemption link
/// seealso:
/// <code>Purchases/redeemWebPurchase(_:)</code>
+ (RCWebPurchaseRedemption * _Nullable)parseAsWebPurchaseRedemption:(NSURL * _Nonnull)url SWIFT_WARN_UNUSED_RESULT;
@property (nonatomic, readonly, copy) NSString * _Nonnull appUserID;
@property (nonatomic, readonly) BOOL isAnonymous;
@property (nonatomic, readonly) BOOL isSandbox;
- (void)getOfferingsWithCompletion:(void (^ _Nonnull)(RCOfferings * _Nullable, NSError * _Nullable))completion;
- (void)offeringsWithCompletionHandler:(void (^ _Nonnull)(RCOfferings * _Nullable, NSError * _Nullable))completionHandler;
@property (nonatomic, readonly, strong) RCOfferings * _Nullable cachedOfferings;
Expand All @@ -3032,7 +3039,6 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE




@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<NSString *, NSString *> * _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(_:)'");
Expand Down Expand Up @@ -3413,7 +3419,6 @@ SWIFT_CLASS("_TtC10RevenueCat22PurchasesReceiptParser")




@interface PurchasesReceiptParser (SWIFT_EXTENSION(RevenueCat))
/// A default instance of <code>PurchasesReceiptParser</code>
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong, getter=default) PurchasesReceiptParser * _Nonnull default_;)
Expand All @@ -3422,6 +3427,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong, getter=defau




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;
Expand Down Expand Up @@ -3848,6 +3854,71 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) RCStorefront
+ (RCStorefront * _Nullable)sk1CurrentStorefront SWIFT_WARN_UNUSED_RESULT;
@end


/// Subscription purchases of the Customer
SWIFT_CLASS_NAMED("SubscriptionInfo")
@interface RCSubscriptionInfo : NSObject
/// The product identifier.
@property (nonatomic, readonly, copy) NSString * _Nonnull productIdentifier;
/// Date when the last subscription period started.
@property (nonatomic, readonly, copy) NSDate * _Nonnull purchaseDate;
/// Date when this subscription first started. This property does not update with renewals.
/// This property also does not update for product changes within a subscription group or
/// resubscriptions by lapsed subscribers.
@property (nonatomic, readonly, copy) NSDate * _Nullable originalPurchaseDate;
/// Date when the subscription expires/expired
@property (nonatomic, readonly, copy) NSDate * _Nullable expiresDate;
/// Store where the subscription was purchased.
@property (nonatomic, readonly) enum RCStore store;
/// Whether or not the purchase was made in sandbox mode.
@property (nonatomic, readonly) BOOL isSandbox;
/// Date when RevenueCat detected that auto-renewal was turned off for this subsription.
/// Note the subscription may still be active, check the <code>expiresDate</code> attribute.
@property (nonatomic, readonly, copy) NSDate * _Nullable unsubscribeDetectedAt;
/// Date when RevenueCat detected any billing issues with this subscription.
/// If and when the billing issue gets resolved, this field is set to nil.
/// Note the subscription may still be active, check the <code>expiresDate</code> attribute.
@property (nonatomic, readonly, copy) NSDate * _Nullable billingIssuesDetectedAt;
/// Date when any grace period for this subscription expires/expired.
/// nil if the customer has never been in a grace period.
@property (nonatomic, readonly, copy) NSDate * _Nullable gracePeriodExpiresDate;
/// How the Customer received access to this subscription:
/// <ul>
/// <li>
/// <code>PurchaseOwnershipType/purchased</code>: The customer bought the subscription.
/// </li>
/// <li>
/// <code>PurchaseOwnershipType/familyShared</code>: The Customer has access to the product via their family.
/// </li>
/// </ul>
@property (nonatomic, readonly) enum RCPurchaseOwnershipType ownershipType;
/// Type of the current subscription period:
/// <ul>
/// <li>
/// <code>PeriodType/normal</code>: The product is in a normal period (default)
/// </li>
/// <li>
/// <code>PeriodType/trial</code>: The product is in a free trial period
/// </li>
/// <li>
/// <code>PeriodType/intro</code>: The product is in an introductory pricing period
/// </li>
/// </ul>
@property (nonatomic, readonly) enum RCPeriodType periodType;
/// Date when RevenueCat detected a refund of this subscription.
@property (nonatomic, readonly, copy) NSDate * _Nullable refundedAt;
/// The transaction id in the store of the subscription.
@property (nonatomic, readonly, copy) NSString * _Nullable storeTransactionId;
/// Whether the subscription is currently active.
@property (nonatomic, readonly) BOOL isActive;
/// Whether the subscription will renew at the next billing period.
@property (nonatomic, readonly) BOOL willRenew;
@property (nonatomic, readonly, copy) NSString * _Nonnull description;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
@end


enum RCSubscriptionPeriodUnit : NSInteger;

/// The duration of time between subscription renewals.
Expand Down Expand Up @@ -3883,13 +3954,13 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCSubscriptionPeriodUnit, "Unit", open) {


@interface RCSubscriptionPeriod (SWIFT_EXTENSION(RevenueCat))
/// The number of units per subscription period
@property (nonatomic, readonly) NSInteger numberOfUnits SWIFT_AVAILABILITY(macos,unavailable,message="'numberOfUnits' has been renamed to 'value'") SWIFT_AVAILABILITY(watchos,unavailable,message="'numberOfUnits' has been renamed to 'value'") SWIFT_AVAILABILITY(tvos,unavailable,message="'numberOfUnits' has been renamed to 'value'") SWIFT_AVAILABILITY(ios,unavailable,message="'numberOfUnits' has been renamed to 'value'");
@property (nonatomic, readonly, copy) NSString * _Nonnull debugDescription;
@end


@interface RCSubscriptionPeriod (SWIFT_EXTENSION(RevenueCat))
@property (nonatomic, readonly, copy) NSString * _Nonnull debugDescription;
/// The number of units per subscription period
@property (nonatomic, readonly) NSInteger numberOfUnits SWIFT_AVAILABILITY(macos,unavailable,message="'numberOfUnits' has been renamed to 'value'") SWIFT_AVAILABILITY(watchos,unavailable,message="'numberOfUnits' has been renamed to 'value'") SWIFT_AVAILABILITY(tvos,unavailable,message="'numberOfUnits' has been renamed to 'value'") SWIFT_AVAILABILITY(ios,unavailable,message="'numberOfUnits' has been renamed to 'value'");
@end


Expand Down
2 changes: 1 addition & 1 deletion scripts/docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://revenuecat.github.io/purchases-ios-docs/5.12.1/documentation/revenuecat"/>
<meta http-equiv="refresh" content="0; url=https://revenuecat.github.io/purchases-ios-docs/5.13.0/documentation/revenuecat"/>
</head>
<body>
</body>
Expand Down
2 changes: 1 addition & 1 deletion scripts/docs/v4_api_migration_guide.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://revenuecat.github.io/purchases-ios-docs/5.13.0-SNAPSHOT/documentation/revenuecat/v4_api_migration_guide"/>
<meta http-equiv="refresh" content="0; url=https://revenuecat.github.io/purchases-ios-docs/5.13.0/documentation/revenuecat/v4_api_migration_guide"/>
</head>
<body>
</body>
Expand Down
2 changes: 1 addition & 1 deletion scripts/docs/v5_api_migration_guide.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://revenuecat.github.io/purchases-ios-docs/5.13.0-SNAPSHOT/documentation/revenuecat/v5_api_migration_guide"/>
<meta http-equiv="refresh" content="0; url=https://revenuecat.github.io/purchases-ios-docs/5.13.0/documentation/revenuecat/v5_api_migration_guide"/>
</head>
<body>
</body>
Expand Down