From b398d111612086190c7af7932c8cf65e49851708 Mon Sep 17 00:00:00 2001 From: Josh Holtz Date: Mon, 8 Aug 2022 12:36:32 -0500 Subject: [PATCH 1/2] Version bump for 4.10.0 --- .jazzy.yaml | 4 ++-- .version | 2 +- CHANGELOG.latest.md | 22 ++++++++++------------ CHANGELOG.md | 12 ++++++++++++ RevenueCat.podspec | 2 +- Sources/Misc/SystemInfo.swift | 2 +- scripts/docs/index.html | 2 +- 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/.jazzy.yaml b/.jazzy.yaml index 7aac98f94a..3de76e6808 100644 --- a/.jazzy.yaml +++ b/.jazzy.yaml @@ -2,9 +2,9 @@ clean: true author: RevenueCat author_url: https://revenuecat.com sdk: iphonesimulator -module_version: 4.10.0-SNAPSHOT +module_version: 4.10.0 github_url: https://github.com/revenuecat/purchases-ios -github_file_prefix: https://github.com/revenuecat/purchases-ios/tree/4.10.0-SNAPSHOT +github_file_prefix: https://github.com/revenuecat/purchases-ios/tree/4.10.0 output: generated_docs include: - "Sources/**/*" diff --git a/.version b/.version index 1351c312ac..2da4316236 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -4.10.0-SNAPSHOT +4.10.0 diff --git a/CHANGELOG.latest.md b/CHANGELOG.latest.md index 12a08f4da2..6a5a8dcb3d 100644 --- a/CHANGELOG.latest.md +++ b/CHANGELOG.latest.md @@ -1,12 +1,10 @@ -### Fixes: -* `CustomerInfoResponseHandler`: return `CustomerInfo` instead of error if the response was successful (#1778) via NachoSoto (@NachoSoto) -* Error logging: `logErrorIfNeeded` no longer prints message if it's the same as the error description (#1776) via NachoSoto (@NachoSoto) -* fix another broken link in docC docs (#1777) via aboedo (@aboedo) -* fix links to restorePurchase (#1775) via aboedo (@aboedo) -* fix getProducts docs broken link (#1772) via aboedo (@aboedo) - -### Improvements: -* `Logger`: wrap `message` in `@autoclosure` to avoid creating when `LogLevel` is disabled (#1781) via NachoSoto (@NachoSoto) - -### Other changes: -* Lint: fixed `SubscriberAttributesManager` (#1774) via NachoSoto (@NachoSoto) \ No newline at end of file +## Bugfixes +* `OfferingsManager`: expose underlying error when `ProductsManager` returns an error (#1792) via NachoSoto (@NachoSoto) +* Add missing logs to ProductsFetcherSK2 (#1780) via beylmk (@beylmk) +## Other Changes +* AdServices: Fix failing tests on main in iOS 12 and 13 - IOSAttributionPosterTests (#1797) via Josh Holtz (@joshdholtz) +* Invalidates gem caches and separates danger and macOS caches (#1798) via Cesar de la Vega (@vegaro) +* New AdServices integration (#1727) via Josh Holtz (@joshdholtz) +* Pass CircleCI branch to prepare_next_version job (#1796) via Toni Rico (@tonidero) +* Configure Danger, enforce labels (#1761) via Cesar de la Vega (@vegaro) +* Support for new fastlane internal plugin for automation (#1779) via Toni Rico (@tonidero) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59b823bc16..91439ea624 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## 4.10.0 +## Bugfixes +* `OfferingsManager`: expose underlying error when `ProductsManager` returns an error (#1792) via NachoSoto (@NachoSoto) +* Add missing logs to ProductsFetcherSK2 (#1780) via beylmk (@beylmk) +## Other Changes +* AdServices: Fix failing tests on main in iOS 12 and 13 - IOSAttributionPosterTests (#1797) via Josh Holtz (@joshdholtz) +* Invalidates gem caches and separates danger and macOS caches (#1798) via Cesar de la Vega (@vegaro) +* New AdServices integration (#1727) via Josh Holtz (@joshdholtz) +* Pass CircleCI branch to prepare_next_version job (#1796) via Toni Rico (@tonidero) +* Configure Danger, enforce labels (#1761) via Cesar de la Vega (@vegaro) +* Support for new fastlane internal plugin for automation (#1779) via Toni Rico (@tonidero) + ## 4.9.1 ### Fixes: * `CustomerInfoResponseHandler`: return `CustomerInfo` instead of error if the response was successful (#1778) via NachoSoto (@NachoSoto) diff --git a/RevenueCat.podspec b/RevenueCat.podspec index 20513b5206..1077dd8c80 100644 --- a/RevenueCat.podspec +++ b/RevenueCat.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RevenueCat" - s.version = "4.10.0-SNAPSHOT" + s.version = "4.10.0" s.summary = "Subscription and in-app-purchase backend service." s.description = <<-DESC diff --git a/Sources/Misc/SystemInfo.swift b/Sources/Misc/SystemInfo.swift index 710cc1251e..ad4f0884a8 100644 --- a/Sources/Misc/SystemInfo.swift +++ b/Sources/Misc/SystemInfo.swift @@ -43,7 +43,7 @@ class SystemInfo { } static var frameworkVersion: String { - return "4.10.0-SNAPSHOT" + return "4.10.0" } static var systemVersion: String { diff --git a/scripts/docs/index.html b/scripts/docs/index.html index c5af1fda9f..d446ec019a 100644 --- a/scripts/docs/index.html +++ b/scripts/docs/index.html @@ -2,7 +2,7 @@ - + From 7b317b921ce423c502e6aa5716f33e8facab2482 Mon Sep 17 00:00:00 2001 From: Josh Holtz Date: Mon, 8 Aug 2022 12:36:58 -0500 Subject: [PATCH 2/2] Update RevenueCat-Swift.h for version 4.10.0 --- .../CommonFiles/RevenueCat-Swift.h | 48 ++++++++++++------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h b/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h index 1e160f71f0..10a3bc4a6c 100644 --- a/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h +++ b/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h @@ -229,6 +229,13 @@ SWIFT_CLASS_NAMED("Attribution") +SWIFT_AVAILABILITY(watchos,unavailable) SWIFT_AVAILABILITY(tvos,unavailable) SWIFT_AVAILABILITY(maccatalyst,introduced=14.3) SWIFT_AVAILABILITY(macos,introduced=11.1) SWIFT_AVAILABILITY(ios,introduced=14.3) +@interface RCAttribution (SWIFT_EXTENSION(RevenueCat)) +/// Enable automatic collection of AdServices attribution token. +- (void)enableAdServicesAttributionTokenCollection; +@end + + @class NSString; @class NSData; @@ -484,6 +491,8 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCAttributionNetwork, "AttributionNetwork", RCAttributionNetworkFacebook = 5, /// mParticle https://www.mparticle.com/ RCAttributionNetworkMParticle = 6, +/// AdServices token + RCAttributionNetworkAdServices = 7, }; /// Specifies the behavior for a caching API. @@ -1245,6 +1254,12 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCPeriodType, "PeriodType", open) { }; +SWIFT_CLASS("_TtC10RevenueCat28PostAdServicesTokenOperation") +@interface PostAdServicesTokenOperation : NetworkOperation +@end + + + SWIFT_CLASS("_TtC10RevenueCat28PostAttributionDataOperation") @interface PostAttributionDataOperation : NetworkOperation @end @@ -1412,10 +1427,6 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL isConfigured;) /// Delegate for Purchases instance. The delegate is responsible for handling promotional product purchases and /// changes to customer information. @property (nonatomic, strong) id _Nullable delegate; -/// Enable automatic collection of Apple Search Ads attribution. Defaults to false. -SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL automaticAppleSearchAdsAttributionCollection;) -+ (BOOL)automaticAppleSearchAdsAttributionCollection SWIFT_WARN_UNUSED_RESULT; -+ (void)setAutomaticAppleSearchAdsAttributionCollection:(BOOL)value; /// Used to set the log level. Useful for debugging issues with the lovely team @RevenueCat. ///

Related Symbols

///
    @@ -1534,6 +1545,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _No + SWIFT_PROTOCOL("_TtP10RevenueCat29PurchasesOrchestratorDelegate_") @protocol PurchasesOrchestratorDelegate - (void)readyForPromotedProduct:(RCStoreProduct * _Nonnull)product purchase:(void (^ _Nonnull)(void (^ _Nonnull)(RCStoreTransaction * _Nullable, RCCustomerInfo * _Nullable, NSError * _Nullable, BOOL)))startPurchase; @@ -1633,7 +1645,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");) @@ -1673,14 +1684,6 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE -@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)) ///
      @@ -1760,6 +1763,19 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL debugLogsEnabled SWIFT_DE @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:)'"); +/// Enable automatic collection of Apple Search Ads attribution. Defaults to false. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL automaticAppleSearchAdsAttributionCollection SWIFT_DEPRECATED_MSG("Use Purchases.shared.attribution.enableAdServicesAttributionTokenCollection() instead");) ++ (BOOL)automaticAppleSearchAdsAttributionCollection SWIFT_WARN_UNUSED_RESULT; ++ (void)setAutomaticAppleSearchAdsAttributionCollection:(BOOL)value; +@end + + @interface RCPurchases (SWIFT_EXTENSION(RevenueCat)) @@ -2565,13 +2581,13 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCSubscriptionPeriodUnit, "Unit", open) { @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 @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