Skip to content
Merged
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.81.0-SNAPSHOT
5.81.0
61 changes: 29 additions & 32 deletions CHANGELOG.latest.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,34 @@
## RevenueCat SDK
### 🐞 Bugfixes
* Fix decode for sheet actions without inline sheet (#7158) via Monika Mateska (@MonikaMateska)
* Expose preferred UI locale override APIs to Objective-C (#7121) via Álvaro Brey (@AlvaroBrey)

## RevenueCatUI SDK
### 🐞 Bugfixes
* fix(paywalls-v2): fix package selection resetting unexpectedly when switching tabs (#7148) via Facundo Menzella (@facumenzella)
* Fix Paywalls V2 carousel image stuck in size-unknown state on first display (#7180) via Jacob Rakidzich (@JZDesign)
### Paywallv2
#### 🐞 Bugfixes
* fix(paywalls-v2): skip stale onChange invocations when propagating tab package to parent (#7168) via Facundo Menzella (@facumenzella)
#### ✨ New Features
* feat(paywalls): support transparent sticky footers (#7188) via Álvaro Brey (@AlvaroBrey)

### 🔄 Other Changes
* other(workflows): unify workflows and remote config into a single gate (#7166) via Facundo Menzella (@facumenzella)
* perf(remote-config): merge blob data via byte concatenation (#7163) via Antonio Pallares (@ajpallares)
* other(paywalls): fall back to the offerings paywall when the workflow fetch fails (#7143) via Facundo Menzella (@facumenzella)
* test(remote-config): add additional regression test coverage (#7164) via Rick (@rickvdl)
* feat(remote-config): use merged blobs helper for ui config (#7153) via Rick (@rickvdl)
* other(networking): remove unused workflows OperationQueue and HTTP path cases (#7145) via Facundo Menzella (@facumenzella)
* other(networking): delete the dead workflows endpoint (#7144) via Facundo Menzella (@facumenzella)
* other(paywalls): read workflows from remote config (#7141) via Facundo Menzella (@facumenzella)
* refactor(remote-config): encapsulate topic-ready waiting on RemoteConfigManager (#7157) via Facundo Menzella (@facumenzella)
* test(remote-config): add integration test coverage with mocked API responses (#7147) via Rick (@rickvdl)
* other(paywalls): gate getOfferings on remote-config readiness (#7142) via Facundo Menzella (@facumenzella)
* feat(remote-config): add merged blob data API (#7149) via Rick (@rickvdl)
* other(remote-config): read ui_config via remote config (#7140) via Facundo Menzella (@facumenzella)
* fix(remote-config): use RemoteConfigTopic enum in disk cache tests (#7139) via Antonio Pallares (@ajpallares)
* perf(remote-config): cache persisted config in memory in RemoteConfigDiskCache (#7136) via Antonio Pallares (@ajpallares)
* feat(remote-config): add APIs for reading topic/blob data from RemoteConfigManager (#7134) via Rick (@rickvdl)
* Add SecureItemStorage (#7094) via Dave DeLong (@davedelong)
* Decode id on PaywallComponent.PackageComponent (#7135) via Facundo Menzella (@facumenzella)
* feat(remote-config): add observability logs (#7132) via Rick (@rickvdl)
* feat(remote-config): wire up remote config manager behind feature flag (#7130) via Rick (@rickvdl)
* Support multi-grant reward + moreRewards in reward verification (#7039) via Pol Miro (@polmiro)
* Add CI build step for app extension safe API checks (#7131) via Rick (@rickvdl)
* fix(remote-config): rearm exhausted blob sources + in memory knownRefs (#7120) via Rick (@rickvdl)
* feat(remote-config): disable refresh after client errors (#7118) via Rick (@rickvdl)
* feat(remote-config): force app_start on the first config request (#7219) via Antonio Pallares (@ajpallares)
* test(workflows): add Maestro flow for classic-paywall fallback on config failure (#7235) via Facundo Menzella (@facumenzella)
* test(workflows): add Maestro flow for workflow paywall back navigation (#7224) via Facundo Menzella (@facumenzella)
* test(remote-config): don't send app_start in no-content config tests (#7222) via Antonio Pallares (@ajpallares)
* test(workflows): add Maestro flow that navigates a workflow paywall to purchase (#7221) via Facundo Menzella (@facumenzella)
* ci(remote-config): run the blob health monitor (#7218) via Facundo Menzella (@facumenzella)
* test(remote-config): add a real-backend health check for CDN blob downloads (#7215) via Facundo Menzella (@facumenzella)
* feat(remote-config): send fetch_context on config endpoint requests (#7214) via Antonio Pallares (@ajpallares)
* Internal `DangerousSettings.useWorkflows` to enable remote config/workflows programmatically (#7209) via Cesar de la Vega (@vegaro)
* test(remote-config): cover downloading several config blobs at once (#7212) via Facundo Menzella (@facumenzella)
* test(remote-config): cover getOfferings delivering when a prefetch blob fails (#7211) via Facundo Menzella (@facumenzella)
* Use short timeouts for remote config blob downloads (#7210) via Rick (@rickvdl)
* perf(remote-config): give /config its own request lane so it overlaps /offerings (#7196) via Facundo Menzella (@facumenzella)
* Pass Tuist Swift conditions to local package (#7195) via Rick (@rickvdl)
* other(remote-config): stabilize flaky RemoteConfig blob integration test (#7193) via Antonio Pallares (@ajpallares)
* Chore(deps): Bump excon from 0.112.0 to 1.5.0 in /Tests/InstallationTests/CocoapodsInstallation (#7190) via dependabot[bot] (@dependabot[bot])
* fix(ci): stop mirroring main to purchases-ios-spm, tags only (#7189) via Álvaro Brey (@AlvaroBrey)
* feat(remote-config): add static fallback config endpoint (#7182) via Rick (@rickvdl)
* Chore(deps): Bump cocoapods from 1.16.2 to 1.17.0 (#7187) via dependabot[bot] (@dependabot[bot])
* Don't switch hosts on device-connectivity errors (#7176) via Antonio Pallares (@ajpallares)
* other(offerings): gate getOfferings delivery on ui_config and stale-cache paths (#7181) via Facundo Menzella (@facumenzella)
* fix(remote-config): align edge-case handling with Android implementation (#7173) via Rick (@rickvdl)
* fix(paywalls): fail decoding a present-but-malformed custom_variables (#7184) via Antonio Pallares (@ajpallares)
* Chore(deps): Bump fastlane from 2.236.1 to 2.237.0 (#7175) via dependabot[bot] (@dependabot[bot])
* fix(remote-config): bind refresh requests to identity clears (#7150) via Rick (@rickvdl)
* New IAMEnabled configuration option (#7146) via Dave DeLong (@davedelong)
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,39 @@
## 5.81.0
## RevenueCatUI SDK
### 🐞 Bugfixes
* Fix Paywalls V2 carousel image stuck in size-unknown state on first display (#7180) via Jacob Rakidzich (@JZDesign)
### Paywallv2
#### ✨ New Features
* feat(paywalls): support transparent sticky footers (#7188) via Álvaro Brey (@AlvaroBrey)

### 🔄 Other Changes
* feat(remote-config): force app_start on the first config request (#7219) via Antonio Pallares (@ajpallares)
* test(workflows): add Maestro flow for classic-paywall fallback on config failure (#7235) via Facundo Menzella (@facumenzella)
* test(workflows): add Maestro flow for workflow paywall back navigation (#7224) via Facundo Menzella (@facumenzella)
* test(remote-config): don't send app_start in no-content config tests (#7222) via Antonio Pallares (@ajpallares)
* test(workflows): add Maestro flow that navigates a workflow paywall to purchase (#7221) via Facundo Menzella (@facumenzella)
* ci(remote-config): run the blob health monitor (#7218) via Facundo Menzella (@facumenzella)
* test(remote-config): add a real-backend health check for CDN blob downloads (#7215) via Facundo Menzella (@facumenzella)
* feat(remote-config): send fetch_context on config endpoint requests (#7214) via Antonio Pallares (@ajpallares)
* Internal `DangerousSettings.useWorkflows` to enable remote config/workflows programmatically (#7209) via Cesar de la Vega (@vegaro)
* test(remote-config): cover downloading several config blobs at once (#7212) via Facundo Menzella (@facumenzella)
* test(remote-config): cover getOfferings delivering when a prefetch blob fails (#7211) via Facundo Menzella (@facumenzella)
* Use short timeouts for remote config blob downloads (#7210) via Rick (@rickvdl)
* perf(remote-config): give /config its own request lane so it overlaps /offerings (#7196) via Facundo Menzella (@facumenzella)
* Pass Tuist Swift conditions to local package (#7195) via Rick (@rickvdl)
* other(remote-config): stabilize flaky RemoteConfig blob integration test (#7193) via Antonio Pallares (@ajpallares)
* Chore(deps): Bump excon from 0.112.0 to 1.5.0 in /Tests/InstallationTests/CocoapodsInstallation (#7190) via dependabot[bot] (@dependabot[bot])
* fix(ci): stop mirroring main to purchases-ios-spm, tags only (#7189) via Álvaro Brey (@AlvaroBrey)
* feat(remote-config): add static fallback config endpoint (#7182) via Rick (@rickvdl)
* Chore(deps): Bump cocoapods from 1.16.2 to 1.17.0 (#7187) via dependabot[bot] (@dependabot[bot])
* Don't switch hosts on device-connectivity errors (#7176) via Antonio Pallares (@ajpallares)
* other(offerings): gate getOfferings delivery on ui_config and stale-cache paths (#7181) via Facundo Menzella (@facumenzella)
* fix(remote-config): align edge-case handling with Android implementation (#7173) via Rick (@rickvdl)
* fix(paywalls): fail decoding a present-but-malformed custom_variables (#7184) via Antonio Pallares (@ajpallares)
* Chore(deps): Bump fastlane from 2.236.1 to 2.237.0 (#7175) via dependabot[bot] (@dependabot[bot])
* fix(remote-config): bind refresh requests to identity clears (#7150) via Rick (@rickvdl)
* New IAMEnabled configuration option (#7146) via Dave DeLong (@davedelong)

## 5.80.3
## RevenueCat SDK
### 🐞 Bugfixes
Expand Down
2 changes: 1 addition & 1 deletion Examples/SampleCat/SampleCat.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,7 @@
repositoryURL = "https://github.com/RevenueCat/purchases-ios";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 5.80.3;
minimumVersion = 5.81.0;
};
};
/* End XCRemoteSwiftPackageReference section */
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.81.0-SNAPSHOT"
s.version = "5.81.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.81.0-SNAPSHOT"
s.version = "5.81.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 @@ -127,7 +127,7 @@ class SystemInfo {
}

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

static var installationMethod: String {
Expand Down
11 changes: 9 additions & 2 deletions Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h
Original file line number Diff line number Diff line change
Expand Up @@ -1123,6 +1123,9 @@ SWIFT_CLASS_NAMED("Builder")
/// With this option disabled you can still collect device identifiers
/// by calling <code>Purchases/collectDeviceIdentifiers()</code>
- (RCConfigurationBuilder * _Nonnull)withAutomaticDeviceIdentifierCollectionEnabled:(BOOL)automaticDeviceIdentifierCollectionEnabled SWIFT_WARN_UNUSED_RESULT;
/// Set <code>iamEnabled</code>. This is <em>disabled</em> by default.
/// Enabling tells the SDK to prefer using token-based user sessions for communicating with the server.
- (RCConfigurationBuilder * _Nonnull)withIAMEnabled:(BOOL)iamEnabled SWIFT_WARN_UNUSED_RESULT;
/// Generate a <code>Configuration</code> object given the values configured by this builder.
- (RCConfiguration * _Nonnull)build SWIFT_WARN_UNUSED_RESULT;
/// Overrides the preferred locale for RevenueCatUI components.
Expand All @@ -1135,11 +1138,11 @@ SWIFT_CLASS_NAMED("Builder")
@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

@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

/// Specifies the behavior for a caching API.
Expand Down Expand Up @@ -1701,6 +1704,10 @@ SWIFT_CLASS("_TtC10RevenueCat37GetProductEntitlementMappingOperation")
@interface GetProductEntitlementMappingOperation : CacheableNetworkOperation
@end

SWIFT_CLASS("_TtC10RevenueCat32GetRemoteConfigFallbackOperation")
@interface GetRemoteConfigFallbackOperation : CacheableNetworkOperation
@end

SWIFT_CLASS("_TtC10RevenueCat24GetRemoteConfigOperation")
@interface GetRemoteConfigOperation : CacheableNetworkOperation
@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.80.3/documentation/revenuecat"/>
<meta http-equiv="refresh" content="0; url=https://revenuecat.github.io/purchases-ios-docs/5.81.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.81.0-SNAPSHOT/documentation/revenuecat/v4_api_migration_guide"/>
<meta http-equiv="refresh" content="0; url=https://revenuecat.github.io/purchases-ios-docs/5.81.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.81.0-SNAPSHOT/documentation/revenuecat/v5_api_migration_guide"/>
<meta http-equiv="refresh" content="0; url=https://revenuecat.github.io/purchases-ios-docs/5.81.0/documentation/revenuecat/v5_api_migration_guide"/>
</head>
<body>
</body>
Expand Down