SDK

iOS 4.10.2

iOS 4.10.2

Bugfixes


  • ErrorResponse: don't add attribute errors to message if empty (#1844) via NachoSoto (@NachoSoto)

  • Purchase cancellations: unify behavior between SK1 and SK2 (#1841) via NachoSoto (@NachoSoto)

  • StoreKit 2: PurchasesOrchestrator: don't log "purchased product" if it was cancelled (#1840) via NachoSoto (@NachoSoto)

  • Backend: fixed potential race conditions introduced by OperationDispatcher.dispatchOnWorkerThread(withRandomDelay:) (#1827) via NachoSoto (@NachoSoto)

  • DeviceCache: Sendable conformance and fixed thread-safety (#1823) via NachoSoto (@NachoSoto)

  • Directly send delegate customer info when delegate is set (always sends cached CustomerInfo value) (#1828) via Josh Holtz (@joshdholtz)

  • SystemInfo.finishTransactions: made thread-safe (#1807) via NachoSoto (@NachoSoto)

  • Purchases.shared and Purchases.isConfigured are now thread-safe (#1813) via NachoSoto (@NachoSoto)

  • PriceFormatterProvider: Sendable conformance and fixed thread-safety (#1818) via NachoSoto (@NachoSoto)

  • StoreKitConfigTestCase.changeStorefront: re-enabled on iOS 16 (#1811) via NachoSoto (@NachoSoto)

Other Changes


  • DeviceCache: no longer set cache timestamp before beginning request (#1839) via NachoSoto (@NachoSoto)

  • MagicWeatherSwiftUI: updated to use async APIs (#1843) via NachoSoto (@NachoSoto)

  • Release train (#1842) via Cesar de la Vega (@vegaro)

  • Adds hotfixes section to RELEASING doc (#1837) via Cesar de la Vega (@vegaro)

  • Update fastlane plugin (#1838) via Toni Rico (@tonidero)

  • Update migration doc from didReceiveUpdatedCustomerInfo to receivedUpdatedCustomerInfo (#1836) via Josh Holtz (@joshdholtz)

  • PurchasesDelegate: added test for latest cached customer info always being sent (#1830) via NachoSoto (@NachoSoto)

  • CallbackCache: Sendable conformance (#1835) via NachoSoto (@NachoSoto)

  • CallbackCache: simplified implementation using Atomic (#1834) via NachoSoto (@NachoSoto)

  • PurchasesLogInTests: added test to verify logIn updates offerings cache (#1833) via NachoSoto (@NachoSoto)

  • Created PurchasesLoginTests (#1832) via NachoSoto (@NachoSoto)

  • SwiftLint: cleaned up output (#1821) via NachoSoto (@NachoSoto)

  • Link to sdk reference (#1831) via aboedo (@aboedo)

  • Atomic: ExpressibleByBooleanLiteral (#1822) via NachoSoto (@NachoSoto)

  • SwiftLint: fixed build warning (#1820) via NachoSoto (@NachoSoto)

  • Adds an approval job that will tag the release (#1815) via Cesar de la Vega (@vegaro)

  • Atomic: ExpressibleByNilLiteral (#1804) via NachoSoto (@NachoSoto)

  • PurchasesAttributionDataTests: fixed potential race condition in flaky test (#1805) via NachoSoto (@NachoSoto)

  • Fixed warnings for unnecessary try (#1816) via NachoSoto (@NachoSoto)

  • Moved AttributionFetcherError inside AttributionFetcher (#1808) via NachoSoto (@NachoSoto)

  • Update documentation for presentCodeRedemptionSheet (#1817) via Joshua Liebowitz (@taquitos)

  • Dangerfile: added "next_release" as supported label (#1810) via NachoSoto (@NachoSoto)

  • PurchaseTester- Update Podfile.lock (#1814) via Joshua Liebowitz (@taquitos)

  • Update to latest fastlane plugin (#1802) via Toni Rico (@tonidero)

  • Clean up: moved BackendIntegrationTests.xctestplan to TestPlans folder (#1812) via NachoSoto (@NachoSoto)

  • SK2StoreProduct: conditionally removed @available workaround (#1794) via NachoSoto (@NachoSoto)

  • SwiftLint: fixed deprecation warning (#1809) via NachoSoto (@NachoSoto)

  • Update gems (#1791) via Joshua Liebowitz (@taquitos)

  • Replace usages of replace_in with replace_text_in_files action (#1803) via Toni Rico (@tonidero)

To view new release, visit https://github.com/RevenueCat/purchases-ios/releases/tag/4.10.2