In-app purchases and subscriptions made easy. Support for iOS, watchOS, tvOS, macOS, and visionOS.
MIT License
Bot releases are visible (Hide)
Published by RCGitBot 9 months ago
PaywallViewController
: new initializer with Offering
identifier (#3587) via NachoSoto (@NachoSoto)Paywalls
: improve template 5 layout for long product names (#3589) via NachoSoto (@NachoSoto)Paywalls
: extracted PaywallViewConfiguration
(#3586) via NachoSoto (@NachoSoto)CircleCI
: avoid installing Xcodes
when not needed (#3585) via NachoSoto (@NachoSoto)CircleCI
: change all jobs to M1 (#3140) via NachoSoto (@NachoSoto)Published by RCGitBot 9 months ago
StoreProduct
: add localized price per period strings (#3546) via Andy Boedo (@aboedo)Paywalls
: new .onPurchaseCancelled
and paywallViewControllerDidCancelPurchase:
(#3578) via NachoSoto (@NachoSoto)Paywalls
: improve error display (#3577) via NachoSoto (@NachoSoto)0ddee10
to e6ba247
(#3575) via dependabot[bot] (@dependabot[bot])PurchaseTester
: improved ReceiptInspector
so it accepts receipts with escape sequences (#3554) via Andy Boedo (@aboedo)Published by RCGitBot 9 months ago
PaywallViewController
: add PaywallFontProvider
parameter (#3567) via NachoSoto (@NachoSoto)Integration Tests
: run on iOS 17 (#3107) via NachoSoto (@NachoSoto)CI
: update to Xcode 15.2 (#3571) via NachoSoto (@NachoSoto)PaywallViewControllerDelegate
: fixed typo in @objc
method name (#3569) via NachoSoto (@NachoSoto)SandboxEnvironmentDetector
: more tests for macOS
(#3568) via NachoSoto (@NachoSoto)Published by RCGitBot 9 months ago
Paywalls
: remove unscrollable spacing in Template 5 (#3562) via NachoSoto (@NachoSoto)Paywalls
: improve template 5 checkmark icon (#3559) via NachoSoto (@NachoSoto)Paywalls
: new PaywallViewControllerDelegate.paywallViewController(_:didChangeSizeTo:)
(#3563) via Cesar de la Vega (@vegaro)Tests
: running tests on macOS
(#3533) via NachoSoto (@NachoSoto)Integration Tests
: split into separate jobs (#3560) via NachoSoto (@NachoSoto)Published by RCGitBot 9 months ago
Published by RCGitBot 10 months ago
Paywalls
: add header image to watchOS
paywalls (#3542) via NachoSoto (@NachoSoto)Paywalls
: improve template 5 landscape layout (#3534) via NachoSoto (@NachoSoto)Paywalls
: fix template 5 footer loading view alignment (#3537) via NachoSoto (@NachoSoto)Paywalls
: improve template 1 landscape layout (#3532) via NachoSoto (@NachoSoto)Paywalls
: fix ColorInformation.multiScheme
on watchOS
(#3530) via NachoSoto (@NachoSoto)Trusted Entitlements
: tests for signature verification without header hash (#3505) via NachoSoto (@NachoSoto).debugRevenueCatOverlay
: added Locale
(#3539) via NachoSoto (@NachoSoto)Trusted Entitlements
: add support for signing request headers (#3424) via NachoSoto (@NachoSoto)CI
: Add architecture to cache keys (#3538) via Mark Villacampa (@MarkVillacampa)Paywalls Tester
: remove double close button (#3531) via NachoSoto (@NachoSoto)RevenueCatUI
snapshot tests (#3526) via NachoSoto (@NachoSoto)Published by RCGitBot 10 months ago
This beta introduces a new configuration option to enable full StoreKit 2 flow on the SDK and the RevenueCat backend.
We have been testing StoreKit 2 support in parallel to StoreKit 1 in our backend for a while and we believe it is ready for widespread use.
If your app is currently using StoreKit 1, it is safe to update to StoreKit 2 and it's even possible to switch back to StoreKit 1 if needed. Switching to StoreKit 2 will not prevent purchases made with StoreKit 1 from being processed.
In order to enable StoreKit 2, add .with(storeKitVersion: .storeKit2)
to your RevenueCat configuration code:
Purchases.configure(with: .builder(withAPIKey: apiKey)
.with(storeKitVersion: .storeKit2)
.build()
If you were previously using the deprecated configuration option .with(usesStoreKit2IfAvailable: true)
, we recommend you remove it and switch to the new supported method.
⚠️ ⚠️ Important ⚠️ ⚠️
In order to validate StoreKit 2 purchases, make sure you have an In-App Purchase Key configured in your app.
Please see https://rev.cat/in-app-purchase-key-configuration for more info.
🚧🚧 Limitations 🚧🚧
originalApplicationVersion
and originalPurchaseDate
properties in CustomerInfo
are not supported in this first beta. Please do not update if your implementation relies on them being present.Published by RCGitBot 10 months ago
Paywalls
: add PaywallFooterViewController
(#3486) via Toni Rico (@tonidero)Paywalls
: improve landscape support of all templates (#3471) via NachoSoto (@NachoSoto)Paywalls
: ensure footer links open in full-screen sheets (#3524) via NachoSoto (@NachoSoto)Paywalls
: improve FooterView
text alignment (#3525) via NachoSoto (@NachoSoto)PaywallViewControllerDelegate
(#3493) via Toni Rico (@tonidero)Published by RCGitBot 10 months ago
Paywalls
: silence logs below Purchases.logLevel
(#3520) via NachoSoto (@NachoSoto)Paywalls
: always dismiss paywalls automatically after a purchase (#3517) via NachoSoto (@NachoSoto)Tests
: fix iOS 12 snapshot (#3521) via NachoSoto (@NachoSoto)Published by RCGitBot 10 months ago
Paywalls
: improve image caching (#3498) via NachoSoto (@NachoSoto)Paywalls
: change style of CTA button to be consistent with other platforms (#3507) via NachoSoto (@NachoSoto)Paywalls
: open footer links on Safari on Catalyst (#3508) via NachoSoto (@NachoSoto)Paywalls
: fix compilation on Xcode < 14.3 (#3513) via NachoSoto (@NachoSoto)Paywalls
: fix PaywallViewControllerDelegate access from Objective-C (#3510) via noncenz (@noncenz)Paywalls
: open Terms and Privacy Policy links in-app (#3475) via Andy Boedo (@aboedo)Paywalls
: fix empty description when using custom
package type and {{ sub_period }}
(#3495) via Andy Boedo (@aboedo)Paywalls
: use HEIC
images (#3496) via NachoSoto (@NachoSoto)Paywalls
: adjusted German translations (#3476) via Tensei (@tensei)CircleCI
: add git credentials to snapshot generation (#3506) via NachoSoto (@NachoSoto)StoreProduct
: improve priceFormatter
documentation (#3500) via NachoSoto (@NachoSoto)Paywalls
: fix tests (#3499) via NachoSoto (@NachoSoto)Optimization
: changed first
to first(where:)
(#3467) via NachoSoto (@NachoSoto)Published by RCGitBot 11 months ago
Published by RCGitBot 11 months ago
Paywalls
: remove empty space when template 4 has no offer details (#3469) via NachoSoto (@NachoSoto)Concurrency
: address strict concurrency issues on SystemInfo
(#3462) via NachoSoto (@NachoSoto)CircleCI
: upgrade to Xcode 15.1 (#3403) via NachoSoto (@NachoSoto)Paywalls
: tests for PurchaseButton
layout logic (#3468) via NachoSoto (@NachoSoto)Paywalls
: simplified PaywallViewMode
logic (#3470) via NachoSoto (@NachoSoto)Published by RCGitBot 11 months ago
Paywalls
: watchOS
support (#3291) via NachoSoto (@NachoSoto)APITester
fixes (#3444) via NachoSoto (@NachoSoto)HTTPClient
: test all request headers (#3425) via NachoSoto (@NachoSoto)CircleCI
: fix snapshot generation for iOS 14 (#3431) via NachoSoto (@NachoSoto)MockStoreMessagesHelper
from SDK (#3417) via NachoSoto (@NachoSoto)Published by RCGitBot 11 months ago
visionOS
: fix support for Xcode 15.1 beta 3
(#3409) via NachoSoto (@NachoSoto)SystemInfo
: fix flaky Storefront
test (#3411) via NachoSoto (@NachoSoto)X-Storefront
request header for App Store Storefront (#3405) via Josh Holtz (@joshdholtz)CircleCI
: upgrade to Xcode 15.1 (#3408) via NachoSoto (@NachoSoto)Integration Tests
: verify that SKTestSession
purchases do not grant production entitlements (#3406) via NachoSoto (@NachoSoto)Integration Tests
: fix potential crash on tearDown
(#3401) via NachoSoto (@NachoSoto)Published by RCGitBot 11 months ago
HTTPClient
: add X-Is-Sandbox
headerRCSystemInfo.isSandbox
: improve implementationPublished by RCGitBot 12 months ago
Paywalls
: add displayCloseButton
to PaywallViewController
(#3391) via NachoSoto (@NachoSoto)Paywalls
: fix Turkish translation (#3389) via Dogancan Mavideniz (@mavideniz)Paywalls
: fix Turkish translation (#3388) via iremkaraoglu (@iremkaraoglu)RevenueCatUI
: added support to other deployment targets (#3392) via NachoSoto (@NachoSoto)Published by RCGitBot 12 months ago
Paywalls
: fix Turkish discount string (#3385) via NachoSoto (@NachoSoto)Paywalls
: fix template 4 layout bug on iOS 16 (#3381) via NachoSoto (@NachoSoto)a297205
to 0ddee10
(#3383) via dependabot[bot] (@dependabot[bot])CircleCI
: fix visionOS
job (#3384) via NachoSoto (@NachoSoto)Published by RCGitBot 12 months ago
Paywalls
: optimize background.jpg
image (#3379) via NachoSoto (@NachoSoto)RevenueCatUI
: lowered CocoaPods deployment target to 11.0 (#3378) via NachoSoto (@NachoSoto)Published by RCGitBot 12 months ago
Paywalls
: RevenueCatUI
CocoaPods support (#3368) via NachoSoto (@NachoSoto)Published by RCGitBot 12 months ago
Offering
: new getMetadataValue
with Decodable
type (#3373) via NachoSoto (@NachoSoto)StoreProduct.pricePerWeek
(#3354) via NachoSoto (@NachoSoto)Paywalls
: .presentPaywallIfNeeded
allows overriding Offering
(#3370) via NachoSoto (@NachoSoto)Paywalls
: new optional displayCloseButton
parameter (#3359) via NachoSoto (@NachoSoto)Paywalls
: improve period abbreviations in Japanese (#3367) via NachoSoto (@NachoSoto)Paywalls
: new {{ sub_price_per_week }}
variable (#3355) via NachoSoto (@NachoSoto)Paywalls
: log warning when attempting to purchase already-subscribed product (#3366) via NachoSoto (@NachoSoto)Paywalls
: improve Japanese localization (#3364) via NachoSoto (@NachoSoto)Paywalls
: fix template 2 top padding inside navigation view (#3363) via NachoSoto (@NachoSoto)Paywalls
: avoid animating PurchaseButton
labels when text does not change (#3361) via NachoSoto (@NachoSoto)Paywalls
: improve FooterView
accessibility (#3349) via NachoSoto (@NachoSoto)Paywalls
: simplify PurchaseButton
(#3362) via NachoSoto (@NachoSoto)Paywalls
: refactored IntroEligibilityStateView
(#3360) via NachoSoto (@NachoSoto)Paywall Tester
: improve template 5 dark colors (#3358) via NachoSoto (@NachoSoto)Paywalls
: improve conversion from Color
/UIColor
to PaywallColor
(#3357) via NachoSoto (@NachoSoto)Paywalls Tester
: improve .paywallFooter
presentation (#3348) via NachoSoto (@NachoSoto)Paywalls
: move size configuration to TemplateViewType
(#3352) via NachoSoto (@NachoSoto)