diff --git a/.version b/.version index 554bfea942..03f488b076 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -5.3.0-SNAPSHOT +5.3.0 diff --git a/CHANGELOG.latest.md b/CHANGELOG.latest.md index b815054b6b..40f6f72a5a 100644 --- a/CHANGELOG.latest.md +++ b/CHANGELOG.latest.md @@ -1,16 +1,27 @@ +### New Features +* Price rounding logic (#4132) via James Borthwick (@jamesrb1) ### Bugfixes -* Fix Paywalls crash on iOS 18 beta (#4154) via Andy Boedo (@aboedo) -### Dependency Updates -* Bump danger from 9.4.3 to 9.5.0 (#4143) via dependabot[bot] (@dependabot[bot]) -* Bump nokogiri from 1.16.6 to 1.16.7 (#4129) via dependabot[bot] (@dependabot[bot]) -* Bump fastlane from 2.221.1 to 2.222.0 (#4130) via dependabot[bot] (@dependabot[bot]) +* [Customer Center] Migrate to List style (#4190) via Cody Kerns (@codykerns) +* [Paywalls] Improve locale consistency (#4158) via Josh Holtz (@joshdholtz) +* Set Paywalls Tester deployment target to iOS 15 (#4196) via James Borthwick (@jamesrb1) +* [Customer Center] Hide Contact Support button if URL can't be created (#4192) via Cesar de la Vega (@vegaro) +* Fix the setting for SKIP_INSTALL in Xcode project (#4195) via Andy Boedo (@aboedo) +* [Customer Center] Improving customer center buttons (#4165) via Cody Kerns (@codykerns) +* Revert workaround for iOS 18 beta 5 SwiftUI crash (#4173) via Mark Villacampa (@MarkVillacampa) +* [Paywalls] Make iOS version calculation lazy (#4163) via Mark Villacampa (@MarkVillacampa) +* [Paywalls] Observe `PurchaseHandler` when owned externally (#4097) via James Borthwick (@jamesrb1) ### Other Changes -* Update deployment targets for tests (#4145) via Andy Boedo (@aboedo) -* Deploy purchaserTester: clean up dry-run parameter (#4140) via Andy Boedo (@aboedo) -* Clean up API Testers (#4141) via Andy Boedo (@aboedo) -* More project structure cleanup (#4131) via Andy Boedo (@aboedo) -* temporarily disables purchasetester deploy (#4133) via Andy Boedo (@aboedo) -* Fix trigger all tests branch (#4135) via Andy Boedo (@aboedo) -* Clean up XCWorkspace and testing apps (#4111) via Andy Boedo (@aboedo) -* tests trigger: add target-branch parameter to trigger from the right branch (#4121) via Andy Boedo (@aboedo) -* Re-added the RevenueCatUI tests job on every commit (#4113) via Andy Boedo (@aboedo) +* [Customer Center] Clean up colors in WrongPlatformView and NoSubscriptionsView (#4204) via Cesar de la Vega (@vegaro) +* Fix failing `all-tests` and retry more flaky tests (#4188) via Josh Holtz (@joshdholtz) +* Compatibility content unavailable improvements (#4197) via James Borthwick (@jamesrb1) +* Create lane to enable customer center (#4191) via Cesar de la Vega (@vegaro) +* XCFramework artifacts in CircleCI (#4189) via Andy Boedo (@aboedo) +* [Customer Center] CustomerCenterViewModel checks whether the app is the latest version (#4169) via JayShortway (@JayShortway) +* export RevenueCatUI xcframework (#4172) via Andy Boedo (@aboedo) +* Corrects references from ManageSubscriptionsButtonStyle to ButtonsStyle. (#4186) via JayShortway (@JayShortway) +* Speed up carthage installation tests (#4184) via Andy Boedo (@aboedo) +* Customer center improvements (#4166) via James Borthwick (@jamesrb1) +* replace `color(from colorInformation:)` global with extension (#4183) via Andy Boedo (@aboedo) +* Fix tests in main (#4174) via Andy Boedo (@aboedo) +* Enable customer center tests (#4171) via James Borthwick (@jamesrb1) +* [Customer Center] Initial implementation (#3967) via Cesar de la Vega (@vegaro) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1da2199d21..5060e9e628 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,40 @@ +## 5.3.0 +### New Features +* Price rounding logic (#4132) via James Borthwick (@jamesrb1) +### Bugfixes +* [Customer Center] Migrate to List style (#4190) via Cody Kerns (@codykerns) +* [Paywalls] Improve locale consistency (#4158) via Josh Holtz (@joshdholtz) +* Set Paywalls Tester deployment target to iOS 15 (#4196) via James Borthwick (@jamesrb1) +* [Customer Center] Hide Contact Support button if URL can't be created (#4192) via Cesar de la Vega (@vegaro) +* Fix the setting for SKIP_INSTALL in Xcode project (#4195) via Andy Boedo (@aboedo) +* [Customer Center] Improving customer center buttons (#4165) via Cody Kerns (@codykerns) +* Revert workaround for iOS 18 beta 5 SwiftUI crash (#4173) via Mark Villacampa (@MarkVillacampa) +* [Paywalls] Make iOS version calculation lazy (#4163) via Mark Villacampa (@MarkVillacampa) +* Observe `PurchaseHandler` when owned externally (#4097) via James Borthwick (@jamesrb1) +### Dependency Updates +* Bump fastlane-plugin-revenuecat_internal from `d5f0742` to `4c4b8ce` (#4167) via dependabot[bot] (@dependabot[bot]) +* Bump rexml from 3.2.8 to 3.3.3 in /Tests/InstallationTests/CocoapodsInstallation (#4176) via dependabot[bot] (@dependabot[bot]) +* Bump rexml from 3.2.9 to 3.3.3 (#4175) via dependabot[bot] (@dependabot[bot]) +### Other Changes +* [Customer Center] Clean up colors in WrongPlatformView and NoSubscriptionsView (#4204) via Cesar de la Vega (@vegaro) +* Fix failing `all-tests` and retry more flaky tests (#4188) via Josh Holtz (@joshdholtz) +* Compatibility content unavailable improvements (#4197) via James Borthwick (@jamesrb1) +* Create lane to enable customer center (#4191) via Cesar de la Vega (@vegaro) +* XCFramework artifacts in CircleCI (#4189) via Andy Boedo (@aboedo) +* [Customer Center] CustomerCenterViewModel checks whether the app is the latest version (#4169) via JayShortway (@JayShortway) +* export RevenueCatUI xcframework (#4172) via Andy Boedo (@aboedo) +* Corrects references from ManageSubscriptionsButtonStyle to ButtonsStyle. (#4186) via JayShortway (@JayShortway) +* Speed up carthage installation tests (#4184) via Andy Boedo (@aboedo) +* Customer center improvements (#4166) via James Borthwick (@jamesrb1) +* replace `color(from colorInformation:)` global with extension (#4183) via Andy Boedo (@aboedo) +* Generating new test snapshots for `main` - ios-13 (#4181) via RevenueCat Git Bot (@RCGitBot) +* Generating new test snapshots for `main` - ios-16 (#4182) via RevenueCat Git Bot (@RCGitBot) +* Generating new test snapshots for `main` - ios-14 (#4180) via RevenueCat Git Bot (@RCGitBot) +* Generating new test snapshots for `main` - ios-15 (#4179) via RevenueCat Git Bot (@RCGitBot) +* Fix tests in main (#4174) via Andy Boedo (@aboedo) +* Enable customer center tests (#4171) via James Borthwick (@jamesrb1) +* [Customer Center] Initial implementation (#3967) via Cesar de la Vega (@vegaro) + ## 5.2.2-customercenter.alpha.3 - Fix for disabled promo offer button (#4142) diff --git a/RevenueCat.podspec b/RevenueCat.podspec index 005a526dee..d1997e0806 100644 --- a/RevenueCat.podspec +++ b/RevenueCat.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RevenueCat" - s.version = "5.3.0-SNAPSHOT" + s.version = "5.3.0" s.summary = "Subscription and in-app-purchase backend service." s.description = <<-DESC diff --git a/RevenueCatUI.podspec b/RevenueCatUI.podspec index 5a3e58e96e..35fa2f991c 100644 --- a/RevenueCatUI.podspec +++ b/RevenueCatUI.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RevenueCatUI" - s.version = "5.3.0-SNAPSHOT" + s.version = "5.3.0" s.summary = "UI library for RevenueCat paywalls." s.description = <<-DESC diff --git a/Sources/Misc/SystemInfo.swift b/Sources/Misc/SystemInfo.swift index bcf3491960..1ea823d395 100644 --- a/Sources/Misc/SystemInfo.swift +++ b/Sources/Misc/SystemInfo.swift @@ -75,7 +75,7 @@ class SystemInfo { } static var frameworkVersion: String { - return "5.3.0-SNAPSHOT" + return "5.3.0" } static var systemVersion: String { diff --git a/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h b/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h index b2224bacc8..bbffb3b405 100644 --- a/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h +++ b/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h @@ -703,12 +703,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. @@ -783,6 +783,7 @@ SWIFT_CLASS_NAMED("Configuration") + @interface RCConfiguration (SWIFT_EXTENSION(RevenueCat)) @end @@ -820,7 +821,6 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCEntitlementVerificationMode, "EntitlementV }; - @class RCEntitlementInfos; @class NSDate; @class RCNonSubscriptionTransaction; @@ -934,11 +934,11 @@ SWIFT_CLASS_NAMED("CustomerInfo") - @interface RCCustomerInfo (SWIFT_EXTENSION(RevenueCat)) @property (nonatomic, readonly, copy) NSDictionary * _Nonnull rawData; @end + @class RCStoreTransaction; @interface RCCustomerInfo (SWIFT_EXTENSION(RevenueCat)) @@ -1240,6 +1240,12 @@ typedef SWIFT_ENUM(NSInteger, FakeTrackingManagerAuthorizationStatus, closed) { +SWIFT_CLASS("_TtC10RevenueCat32GetCustomerCenterConfigOperation") +@interface GetCustomerCenterConfigOperation : CacheableNetworkOperation +@end + + + SWIFT_CLASS("_TtC10RevenueCat24GetCustomerInfoOperation") @interface GetCustomerInfoOperation : CacheableNetworkOperation @end @@ -2632,6 +2638,11 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _No + (NSString * _Nonnull)frameworkVersion SWIFT_WARN_UNUSED_RESULT; @property (nonatomic, readonly, strong) RCAttribution * _Nonnull attribution; @property (nonatomic) enum RCPurchasesAreCompletedBy purchasesAreCompletedBy; +/// The three-letter code representing the country or region +/// associated with the App Store storefront. +/// note: +/// This property uses the ISO 3166-1 Alpha-3 country code representation. +@property (nonatomic, readonly, copy) NSString * _Nullable storeFrontCountryCode; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end @@ -2668,7 +2679,6 @@ SWIFT_PROTOCOL("_TtP10RevenueCat29PurchasesOrchestratorDelegate_") @end - @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) SWIFT_CLASS_PROPERTY(@property (nonatomic, class, strong) RCPlatformInfo * _Nullable platformInfo;) + (RCPlatformInfo * _Nullable)platformInfo SWIFT_WARN_UNUSED_RESULT; @@ -2687,6 +2697,7 @@ SWIFT_CLASS_NAMED("PlatformInfo") + @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; @@ -2697,35 +2708,6 @@ 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"); -/// Deprecated. Where responsibility for completing purchase transactions lies. -@property (nonatomic) BOOL finishTransactions SWIFT_DEPRECATED_MSG("Use ``purchasesAreCompletedBy`` instead."); -/// Deprecated -+ (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 - - @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) /// Configures an instance of the Purchases SDK with a specified Configuration. /// The instance will be set as a singleton. @@ -2823,6 +2805,35 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE @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"); +/// Deprecated. Where responsibility for completing purchase transactions lies. +@property (nonatomic) BOOL finishTransactions SWIFT_DEPRECATED_MSG("Use ``purchasesAreCompletedBy`` instead."); +/// Deprecated ++ (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 + + @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) @property (nonatomic, readonly, copy) NSString * _Nonnull appUserID; @property (nonatomic, readonly) BOOL isAnonymous; @@ -3204,13 +3215,14 @@ SWIFT_CLASS("_TtC10RevenueCat22PurchasesReceiptParser") - @interface PurchasesReceiptParser (SWIFT_EXTENSION(RevenueCat)) - (BOOL)receiptHasTransactionsWithReceiptData:(NSData * _Nonnull)receiptData SWIFT_WARN_UNUSED_RESULT; @end + + @interface PurchasesReceiptParser (SWIFT_EXTENSION(RevenueCat)) /// A default instance of PurchasesReceiptParser SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong, getter=default) PurchasesReceiptParser * _Nonnull default_;) @@ -3219,7 +3231,6 @@ 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; diff --git a/scripts/docs/index.html b/scripts/docs/index.html index d173e4a7d8..516327f68e 100644 --- a/scripts/docs/index.html +++ b/scripts/docs/index.html @@ -2,7 +2,7 @@ - + diff --git a/scripts/docs/v4_api_migration_guide.html b/scripts/docs/v4_api_migration_guide.html index 0b7f9d2e1d..258c080ebc 100644 --- a/scripts/docs/v4_api_migration_guide.html +++ b/scripts/docs/v4_api_migration_guide.html @@ -2,7 +2,7 @@ - + diff --git a/scripts/docs/v5_api_migration_guide.html b/scripts/docs/v5_api_migration_guide.html index de64cb8c3f..2464df7178 100644 --- a/scripts/docs/v5_api_migration_guide.html +++ b/scripts/docs/v5_api_migration_guide.html @@ -2,7 +2,7 @@ - +