purchases-ios
purchases-ios copied to clipboard
In-app purchases and subscriptions made easy. Support for iOS, watchOS, tvOS, macOS, and visionOS.
Fixes [CSDK-379] and https://github.com/RevenueCat/purchases-ios/issues/1041#issuecomment-1206445939 [CSDK-379]: https://revenuecats.atlassian.net/browse/CSDK-379?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ ### Main changes: - `Sendable` conformances to all types that are thread-safe - `@unchecked Sendable` for types that the compiler can't enforce, but with...
Fixes [CSDK-391]. As described in that ticket, calling a method that introduces a random delay before performing an API request could lead to a race condition. Example: > Request 1:...
The type is now immutable, so the compiler ensures it's thread-safe. For [CSDK-379]. Extracted from #1795 to make it easier to review this in isolation. [CSDK-379]: https://revenuecats.atlassian.net/browse/CSDK-379?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
`Atomic` can't be used recursively (due to Swift's `inout` limitation), so we pay an unnecessary price in performance using `NSRecursiveLock` that we don't need. See https://swiftrocks.com/thread-safety-in-swift for a benchmark. The...
For [CSDK-379]. Extracted from #1795 to make it easier to review this in isolation. Also made `ASN1ObjectIdentifierBuilder` an `enum` since we don't need to create instances of it to use...
The type is now immutable, so the compiler ensures it's thread-safe. For [CSDK-379]. Extracted from #1795 to make it easier to review this in isolation. [CSDK-379]: https://revenuecats.atlassian.net/browse/CSDK-379?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
See [iOS 15.5 release notes](https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-15_5-release-notes): > Fixed an issue so developers using StoreKit 2 can now initiate a subscription offer purchase for a product that the customer currently subscribes to....
We're using Swift Concurrency in a few places. There are a couple of compiler flags that help prevent issues with Swift Concurrency, that we should leverage. The flags are `-Xfrontend...
- [x] I have updated Purchases SDK to the latest version - [x] I have read the [Contribution Guidelines](https://github.com/RevenueCat/purchases-ios/blob/main/Development/CONTRIBUTING.md) - [x] I have searched the [Community](https://community.revenuecat.com) - [x] I have...
See [CF-788]. Fixed by https://github.com/RevenueCat/khepri/pull/4165. Blocked by [TRIAGE-124]. [CF-788]: https://revenuecats.atlassian.net/browse/CF-788?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [TRIAGE-124]: https://revenuecats.atlassian.net/browse/TRIAGE-124?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ