From b657233c8c15b4ed7bbf606d88ad2e9c76ca4773 Mon Sep 17 00:00:00 2001 From: RCGitBot Date: Wed, 21 Jun 2023 22:29:22 +0000 Subject: [PATCH 1/2] Version bump for 4.22.1 --- .jazzy.yaml | 2 +- .version | 2 +- CHANGELOG.latest.md | 79 +++++++++++----------- CHANGELOG.md | 44 ++++++++++++ RevenueCat.podspec | 2 +- Sources/Info.plist | 2 +- Sources/Misc/SystemInfo.swift | 2 +- Tests/BackendIntegrationTestApp/Info.plist | 2 +- Tests/BackendIntegrationTests/Info.plist | 2 +- Tests/UnitTests/Info.plist | 2 +- Tests/UnitTestsHostApp/Info.plist | 2 +- scripts/docs/index.html | 2 +- scripts/docs/v4_api_migration_guide.html | 2 +- 13 files changed, 95 insertions(+), 50 deletions(-) diff --git a/.jazzy.yaml b/.jazzy.yaml index eb422361d9..1ffda266de 100644 --- a/.jazzy.yaml +++ b/.jazzy.yaml @@ -2,7 +2,7 @@ clean: true author: RevenueCat author_url: https://revenuecat.com sdk: iphonesimulator -module_version: 4.23.0-SNAPSHOT +module_version: 4.22.1 github_url: https://github.com/revenuecat/purchases-ios github_file_prefix: https://github.com/revenuecat/purchases-ios/tree/4.18.0-SNAPSHOT output: generated_docs diff --git a/.version b/.version index 83f13098da..352b26ac2b 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -4.23.0-SNAPSHOT +4.22.1 diff --git a/CHANGELOG.latest.md b/CHANGELOG.latest.md index b16ff3dcdb..4b5757d3b8 100644 --- a/CHANGELOG.latest.md +++ b/CHANGELOG.latest.md @@ -1,41 +1,42 @@ -### New Features -* New `DebugViewController`: UIKit counterpart for SwiftUI's `debugRevenueCatOverlay` (#2631) via NachoSoto (@NachoSoto) -* Created `PaywallExtensions`: `StoreView` and `SubscriptionStoreView` overloads for `Offering` (#2593) via NachoSoto (@NachoSoto) -* Introduced `debugRevenueCatOverlay()`: new SwiftUI debug overlay (#2567) via NachoSoto (@NachoSoto) ### Bugfixes -* Removed `preventPurchasePopupCallFromTriggeringCacheRefresh`, update caches on `willEnterForeground` (#2623) via NachoSoto (@NachoSoto) -* Fixed `Catalyst` build with `Xcode 15 beta 1` (#2586) via NachoSoto (@NachoSoto) -### Dependency Updates -* Bump danger from 9.3.0 to 9.3.1 (#2592) via dependabot[bot] (@dependabot[bot]) +* `PurchasesOrchestrator`: update `CustomerInfoManager` cache after processing transactions (#2676) via NachoSoto (@NachoSoto) +* `ErrorResponse`: drastically improved error messages, no more "unknown error"s (#2660) via NachoSoto (@NachoSoto) +* `PaywallExtensions`: post purchases with `Offering` identifier (#2645) via NachoSoto (@NachoSoto) +* Support `product_plan_identifier` for purchased subscriptions from `Google Play` (#2654) via Josh Holtz (@joshdholtz) +### Performance Improvements +* `copy(with: VerificationResult)`: optimization to avoid copies (#2639) via NachoSoto (@NachoSoto) ### Other Changes -* `StoreTransaction`: added new `Storefront` to API testers (#2634) via NachoSoto (@NachoSoto) -* `DebugView`: added snapshot tests (#2630) via NachoSoto (@NachoSoto) -* `verifyNoUnfinishedTransactions`/`verifyUnfinishedTransaction`: added missing `#file` parameter (#2625) via NachoSoto (@NachoSoto) -* `PostReceiptDataOperation`: clean up cache key (#2628) via NachoSoto (@NachoSoto) -* `PurchasesOrchestrator`: also get `Storefront` from SK1 (#2629) via NachoSoto (@NachoSoto) -* `CI`: disable iOS 17 for now (#2627) via NachoSoto (@NachoSoto) -* `Tests`: fixed crash on iOS 13 (#2624) via NachoSoto (@NachoSoto) -* `StoreTransaction`: read `Storefront` from `StoreKit.Transaction` (#2611) via NachoSoto (@NachoSoto) -* `StoreKitConfigTestCase`/`BaseStoreKitIntegrationTests`: also clear transactions after every test (#2616) via NachoSoto (@NachoSoto) -* `ErrorCode.networkError`: improved description (#2610) via NachoSoto (@NachoSoto) -* `PurchaseTester`: make CI job always point to current version (#2622) via NachoSoto (@NachoSoto) -* Improved `finishAllUnfinishedTransactions` (#2615) via NachoSoto (@NachoSoto) -* `StoreKitConfigTestCase`: improved `waitForStoreKitTestIfNeeded` (#2614) via NachoSoto (@NachoSoto) -* `StoreKitConfigTestCase`: set `continueAfterFailure` to `false` (#2617) via NachoSoto (@NachoSoto) -* `PaywallExtensions`: fixed compilation (#2613) via NachoSoto (@NachoSoto) -* `CI`: added `iOS 17` job (#2591) via NachoSoto (@NachoSoto) -* `Encodable.jsonEncodedData`: fixed tests on iOS 17 due to inconsistent key ordering (#2607) via NachoSoto (@NachoSoto) -* `debugRevenueCatOverlay`: added ability to display new `SubscriptionStoreView` (#2595) via NachoSoto (@NachoSoto) -* Refactor: extracted all log strings (#2600) via NachoSoto (@NachoSoto) -* Changed tests to work around `URL` decoding differences in `iOS 17` (#2605) via NachoSoto (@NachoSoto) -* Removed unnecessary `Strings.trimmedOrError` (#2601) via NachoSoto (@NachoSoto) -* Fixed test compilation with `Xcode 15` (#2602) via NachoSoto (@NachoSoto) -* Tests: added `iOS 17` snapshots (#2603) via NachoSoto (@NachoSoto) -* `StoreProductDiscount`: added `description` (#2604) via NachoSoto (@NachoSoto) -* `debugRevenueCatOverlay` improvements (#2594) via NachoSoto (@NachoSoto) -* `Xcode 15`: fixed all documentation warnings (#2596) via NachoSoto (@NachoSoto) -* `StoreKitObserverModeIntegrationTests`: fixed and disabled SK2 `testPurchaseInDevicePostsReceipt` (#2589) via NachoSoto (@NachoSoto) -* `StoreKit2TransactionListener`: added log when receiving `Transactions.Updates` (#2588) via NachoSoto (@NachoSoto) -* `Dictionary.MergeStrategy`: simplify implementation (#2587) via NachoSoto (@NachoSoto) -* `Configuration.Builder`: fixed doc reference (#2583) via NachoSoto (@NachoSoto) -* `APITesters`: available since iOS 11 (#2581) via NachoSoto (@NachoSoto) +* `ETagManager`: refactored e-tag creation and tests (#2671) via NachoSoto (@NachoSoto) +* `getPromotionalOffer`: return `ErrorCode.ineligibleError` if receipt is not found (#2678) via NachoSoto (@NachoSoto) +* `TimingUtil`: removed slow purchase logs (#2677) via NachoSoto (@NachoSoto) +* `CI`: changed `Codecov` to `informational` (#2670) via NachoSoto (@NachoSoto) +* `LoadShedderIntegrationTests`: verify requests are actually handled by load shedder (#2663) via NachoSoto (@NachoSoto) +* `ETagManager.httpResultFromCacheOrBackend`: return response headers (#2666) via NachoSoto (@NachoSoto) +* `Integration Tests`: added tests to verify 304 behavior (#2659) via NachoSoto (@NachoSoto) +* `HTTPClient`: disable `URLSession` cache (#2668) via NachoSoto (@NachoSoto) +* Documented `HTTPStatusCode.isSuccessfullySynced` (#2661) via NachoSoto (@NachoSoto) +* `NetworkError.signatureVerificationFailed`: added status code to error `userInfo` (#2657) via NachoSoto (@NachoSoto) +* `HTTPClient`: improved log for failed requests (#2669) via NachoSoto (@NachoSoto) +* `ETagManager`: added new verbose logs (#2656) via NachoSoto (@NachoSoto) +* `Signature Verification`: added test-only log for debugging invalid signatures (#2658) via NachoSoto (@NachoSoto) +* Fixed `HTTPResponse.description` (#2664) via NachoSoto (@NachoSoto) +* Changed `Logger` to use `os_log` (#2608) via NachoSoto (@NachoSoto) +* `MainThreadMonitor`: increased threshold (#2662) via NachoSoto (@NachoSoto) +* `debugRevenueCatOverlay`: display `receiptURL` (#2652) via NachoSoto (@NachoSoto) +* `PurchaseTester`: added ability to display `debugRevenueCatOverlay` (#2653) via NachoSoto (@NachoSoto) +* `debugRevenueCatOverlay`: ability to close on `macOS`/`Catalyst` (#2649) via NachoSoto (@NachoSoto) +* `debugRevenueCatOverlay`: added support for `macOS` (#2648) via NachoSoto (@NachoSoto) +* `LoadShedderIntegrationTests`: enable signature verification (#2655) via NachoSoto (@NachoSoto) +* `ImageSnapshot`: fixed Xcode 15 compilation (#2651) via NachoSoto (@NachoSoto) +* `OfferingsManager`: don't clear offerings cache timestamp when request fails (#2359) via NachoSoto (@NachoSoto) +* `StoreKitObserverModeIntegrationTests`: added test for posting renewals (#2590) via NachoSoto (@NachoSoto) +* Always initialize `StoreKit2TransactionListener` even on SK1 mode (#2612) via NachoSoto (@NachoSoto) +* `ErrorUtils.missingReceiptFileError`: added receipt URL `userInfo` context (#2650) via NachoSoto (@NachoSoto) +* Added `.xcprivacy` for Xcode 15 (#2619) via NachoSoto (@NachoSoto) +* `Trusted Entitlements`: added debug log with `ResponseVerificationMode` (#2647) via NachoSoto (@NachoSoto) +* `debugRevenueCatOverlay`: simplified title (#2641) via NachoSoto (@NachoSoto) +* Simplified `Purchases.updateAllCachesIfNeeded` (#2626) via NachoSoto (@NachoSoto) +* `HTTPResponseTests`: fixed disabled test (#2643) via NachoSoto (@NachoSoto) +* Add `InternalDangerousSettings.forceSignatureFailures` (#2635) via NachoSoto (@NachoSoto) +* `IntegrationTests`: explicit `StoreKit 1` mode (#2636) via NachoSoto (@NachoSoto) +* `Signing`: removed API for loading key from a file (#2638) via NachoSoto (@NachoSoto) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85e432c42f..d3b80aba57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,47 @@ +## 4.22.1 +### Bugfixes +* `PurchasesOrchestrator`: update `CustomerInfoManager` cache after processing transactions (#2676) via NachoSoto (@NachoSoto) +* `ErrorResponse`: drastically improved error messages, no more "unknown error"s (#2660) via NachoSoto (@NachoSoto) +* `PaywallExtensions`: post purchases with `Offering` identifier (#2645) via NachoSoto (@NachoSoto) +* Support `product_plan_identifier` for purchased subscriptions from `Google Play` (#2654) via Josh Holtz (@joshdholtz) +### Performance Improvements +* `copy(with: VerificationResult)`: optimization to avoid copies (#2639) via NachoSoto (@NachoSoto) +### Other Changes +* `ETagManager`: refactored e-tag creation and tests (#2671) via NachoSoto (@NachoSoto) +* `getPromotionalOffer`: return `ErrorCode.ineligibleError` if receipt is not found (#2678) via NachoSoto (@NachoSoto) +* `TimingUtil`: removed slow purchase logs (#2677) via NachoSoto (@NachoSoto) +* `CI`: changed `Codecov` to `informational` (#2670) via NachoSoto (@NachoSoto) +* `LoadShedderIntegrationTests`: verify requests are actually handled by load shedder (#2663) via NachoSoto (@NachoSoto) +* `ETagManager.httpResultFromCacheOrBackend`: return response headers (#2666) via NachoSoto (@NachoSoto) +* `Integration Tests`: added tests to verify 304 behavior (#2659) via NachoSoto (@NachoSoto) +* `HTTPClient`: disable `URLSession` cache (#2668) via NachoSoto (@NachoSoto) +* Documented `HTTPStatusCode.isSuccessfullySynced` (#2661) via NachoSoto (@NachoSoto) +* `NetworkError.signatureVerificationFailed`: added status code to error `userInfo` (#2657) via NachoSoto (@NachoSoto) +* `HTTPClient`: improved log for failed requests (#2669) via NachoSoto (@NachoSoto) +* `ETagManager`: added new verbose logs (#2656) via NachoSoto (@NachoSoto) +* `Signature Verification`: added test-only log for debugging invalid signatures (#2658) via NachoSoto (@NachoSoto) +* Fixed `HTTPResponse.description` (#2664) via NachoSoto (@NachoSoto) +* Changed `Logger` to use `os_log` (#2608) via NachoSoto (@NachoSoto) +* `MainThreadMonitor`: increased threshold (#2662) via NachoSoto (@NachoSoto) +* `debugRevenueCatOverlay`: display `receiptURL` (#2652) via NachoSoto (@NachoSoto) +* `PurchaseTester`: added ability to display `debugRevenueCatOverlay` (#2653) via NachoSoto (@NachoSoto) +* `debugRevenueCatOverlay`: ability to close on `macOS`/`Catalyst` (#2649) via NachoSoto (@NachoSoto) +* `debugRevenueCatOverlay`: added support for `macOS` (#2648) via NachoSoto (@NachoSoto) +* `LoadShedderIntegrationTests`: enable signature verification (#2655) via NachoSoto (@NachoSoto) +* `ImageSnapshot`: fixed Xcode 15 compilation (#2651) via NachoSoto (@NachoSoto) +* `OfferingsManager`: don't clear offerings cache timestamp when request fails (#2359) via NachoSoto (@NachoSoto) +* `StoreKitObserverModeIntegrationTests`: added test for posting renewals (#2590) via NachoSoto (@NachoSoto) +* Always initialize `StoreKit2TransactionListener` even on SK1 mode (#2612) via NachoSoto (@NachoSoto) +* `ErrorUtils.missingReceiptFileError`: added receipt URL `userInfo` context (#2650) via NachoSoto (@NachoSoto) +* Added `.xcprivacy` for Xcode 15 (#2619) via NachoSoto (@NachoSoto) +* `Trusted Entitlements`: added debug log with `ResponseVerificationMode` (#2647) via NachoSoto (@NachoSoto) +* `debugRevenueCatOverlay`: simplified title (#2641) via NachoSoto (@NachoSoto) +* Simplified `Purchases.updateAllCachesIfNeeded` (#2626) via NachoSoto (@NachoSoto) +* `HTTPResponseTests`: fixed disabled test (#2643) via NachoSoto (@NachoSoto) +* Add `InternalDangerousSettings.forceSignatureFailures` (#2635) via NachoSoto (@NachoSoto) +* `IntegrationTests`: explicit `StoreKit 1` mode (#2636) via NachoSoto (@NachoSoto) +* `Signing`: removed API for loading key from a file (#2638) via NachoSoto (@NachoSoto) + ## 4.22.0 ### New Features * New `DebugViewController`: UIKit counterpart for SwiftUI's `debugRevenueCatOverlay` (#2631) via NachoSoto (@NachoSoto) diff --git a/RevenueCat.podspec b/RevenueCat.podspec index daf65eb9e8..98c18f2dec 100644 --- a/RevenueCat.podspec +++ b/RevenueCat.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RevenueCat" - s.version = "4.23.0-SNAPSHOT" + s.version = "4.22.1" s.summary = "Subscription and in-app-purchase backend service." s.description = <<-DESC diff --git a/Sources/Info.plist b/Sources/Info.plist index 2152e5e9e7..398e7fbcc2 100644 --- a/Sources/Info.plist +++ b/Sources/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 4.23.0 + 4.22.1 CFBundleVersion $(CURRENT_PROJECT_VERSION) LSApplicationCategoryType diff --git a/Sources/Misc/SystemInfo.swift b/Sources/Misc/SystemInfo.swift index 8aafe86908..c98341e5ee 100644 --- a/Sources/Misc/SystemInfo.swift +++ b/Sources/Misc/SystemInfo.swift @@ -53,7 +53,7 @@ class SystemInfo { } static var frameworkVersion: String { - return "4.23.0-SNAPSHOT" + return "4.22.1" } static var systemVersion: String { diff --git a/Tests/BackendIntegrationTestApp/Info.plist b/Tests/BackendIntegrationTestApp/Info.plist index d4b852fc32..bb7287e508 100644 --- a/Tests/BackendIntegrationTestApp/Info.plist +++ b/Tests/BackendIntegrationTestApp/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 4.23.0 + 4.22.1 CFBundleVersion 1 LSRequiresIPhoneOS diff --git a/Tests/BackendIntegrationTests/Info.plist b/Tests/BackendIntegrationTests/Info.plist index 83d11a0f84..c017b247d8 100644 --- a/Tests/BackendIntegrationTests/Info.plist +++ b/Tests/BackendIntegrationTests/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 4.23.0 + 4.22.1 CFBundleVersion 1 diff --git a/Tests/UnitTests/Info.plist b/Tests/UnitTests/Info.plist index 83d11a0f84..c017b247d8 100644 --- a/Tests/UnitTests/Info.plist +++ b/Tests/UnitTests/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 4.23.0 + 4.22.1 CFBundleVersion 1 diff --git a/Tests/UnitTestsHostApp/Info.plist b/Tests/UnitTestsHostApp/Info.plist index 0e4e642b64..2b8ab1582f 100644 --- a/Tests/UnitTestsHostApp/Info.plist +++ b/Tests/UnitTestsHostApp/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 4.23.0 + 4.22.1 CFBundleVersion 1 LSRequiresIPhoneOS diff --git a/scripts/docs/index.html b/scripts/docs/index.html index b98ac6d9fc..8bb394d747 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 a21c12418f..f0cd1c703f 100644 --- a/scripts/docs/v4_api_migration_guide.html +++ b/scripts/docs/v4_api_migration_guide.html @@ -2,7 +2,7 @@ - + From d9f849df382fdda22b1ec46d935b1540a50a0e1a Mon Sep 17 00:00:00 2001 From: RCGitBot Date: Wed, 21 Jun 2023 22:31:06 +0000 Subject: [PATCH 2/2] Update RevenueCat-Swift.h for version 4.22.1 --- .../CommonFiles/RevenueCat-Swift.h | 67 ++++++++++--------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h b/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h index f93f3f109a..a9cc846a48 100644 --- a/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h +++ b/Tests/InstallationTests/CommonFiles/RevenueCat-Swift.h @@ -697,6 +697,7 @@ SWIFT_CLASS_NAMED("Configuration") + @interface RCConfiguration (SWIFT_EXTENSION(RevenueCat)) @end @@ -728,7 +729,6 @@ typedef SWIFT_ENUM_NAMED(NSInteger, RCEntitlementVerificationMode, "EntitlementV }; - @class RCEntitlementInfos; @class NSDate; @class RCNonSubscriptionTransaction; @@ -930,6 +930,8 @@ SWIFT_CLASS_NAMED("EntitlementInfo") @property (nonatomic, readonly) enum RCStore store; /// The product identifier that unlocked this entitlement @property (nonatomic, readonly, copy) NSString * _Nonnull productIdentifier; +/// The product plan identifier that unlocked this entitlement (usually for a Google Play purchase) +@property (nonatomic, readonly, copy) NSString * _Nullable productPlanIdentifier; /// False if this entitlement is unlocked via a production purchase @property (nonatomic, readonly) BOOL isSandbox; /// The date an unsubscribe was detected. Can be nil. @@ -2409,6 +2411,8 @@ 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; @@ -2425,7 +2429,6 @@ 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 SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.15) SWIFT_AVAILABILITY(ios,introduced=13.0); @@ -2434,33 +2437,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 -+ (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. @@ -2552,6 +2528,33 @@ 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 ++ (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; @@ -2875,6 +2878,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong, getter=defau @end + SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=13.0) SWIFT_AVAILABILITY(macos,introduced=10.15) SWIFT_AVAILABILITY(ios,introduced=13.0) @interface RCPurchasesDiagnostics (SWIFT_EXTENSION(RevenueCat)) /// Perform tests to ensure SDK is configured correctly. @@ -2889,7 +2893,6 @@ SWIFT_AVAILABILITY(watchos,introduced=6.2) SWIFT_AVAILABILITY(tvos,introduced=13 - /// A type that can parse Apple receipts from a device. /// This implements parsing based on Appleā€™s documentation. /// To use this class you must access PurchasesReceiptParser/default: @@ -2906,13 +2909,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_;) @@ -2921,7 +2925,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;