[Billing Plans]: Handle promotional offers for products with billing plans#6846
Conversation
4 builds increased size
RevenueCat 1.0 (1)
|
| Item | Install Size Change |
|---|---|
| DYLD.String Table | ⬆️ 37.0 kB |
| 📝 RCInstallmentsInfo.Objc Metadata | ⬆️ 8.8 kB |
| DYLD.Exports | ⬆️ 3.8 kB |
| RevenueCat.ProductsManager.ProductsManager | ⬆️ 3.7 kB |
| Code Signature | ⬆️ 3.2 kB |
BinarySizeTest 1.0 (1)
com.revenuecat.binary-size-test.local-source
⚖️ Compare build
📦 Install build
⏱️ Analyze build performance
Total install size change: ⬆️ 33.6 kB (0.27%)
Total download size change: ⬆️ 16.3 kB (0.4%)
Largest size changes
| Item | Install Size Change |
|---|---|
| 📝 RCInstallmentsInfo.Objc Metadata | ⬆️ 2.1 kB |
| DYLD.Exports | ⬆️ 1.8 kB |
| DYLD.String Table | ⬆️ 1.4 kB |
| 📝 RevenueCat.TestStoreProduct.init(localizedTitle,price,currencyCod... | ⬆️ 1.2 kB |
| 🗑 RevenueCat.TestStoreProduct.init(localizedTitle,price,currencyCod... | ⬇️ -1.2 kB |
BinarySizeTest 1.0 (1)
com.revenuecat.binary-size-test.cocoapods
⚖️ Compare build
📦 Install build
⏱️ Analyze build performance
Total install size change: ⬆️ 66.9 kB (0.25%)
Total download size change: ⬆️ 20.7 kB (0.33%)
Largest size changes
| Item | Install Size Change |
|---|---|
| DYLD.String Table | ⬆️ 20.3 kB |
| 📝 RCInstallmentsInfo.Objc Metadata | ⬆️ 2.1 kB |
| DYLD.Exports | ⬆️ 1.7 kB |
| Code Signature | ⬆️ 1.7 kB |
| 📝 RevenueCat.TestStoreProduct.init(localizedTitle,price,currencyCod... | ⬆️ 1.2 kB |
BinarySizeTest 1.0 (1)
com.revenuecat.binary-size-test.spm
⚖️ Compare build
📦 Install build
⏱️ Analyze build performance
Total install size change: ⬆️ 34.1 kB (0.32%)
Total download size change: ⬆️ 16.0 kB (0.38%)
Largest size changes
| Item | Install Size Change |
|---|---|
| 📝 RCInstallmentsInfo.Objc Metadata | ⬆️ 2.1 kB |
| DYLD.Exports | ⬆️ 1.8 kB |
| Code Signature | ⬆️ 1.2 kB |
| 📝 RevenueCat.TestStoreProduct.init(localizedTitle,price,currencyCod... | ⬆️ 1.2 kB |
| 🗑 RevenueCat.TestStoreProduct.init(localizedTitle,price,currencyCod... | ⬇️ -1.2 kB |
🛸 Powered by Emerge Tools
Comment trigger: Size diff threshold of 100.00kB exceeded




Description
Adds support for properly returning promotional offers for products with billing plans.
This is currently slated to merge into the
intro-offer-eligibilitybranch, but we'll switch it to merge intobilling-plans-devwhenintro-offer-eligibilityis merged into the dev branch.Testing
Manually tested with the purchase tester app
Note
Medium Risk
Changes which promotional discounts are surfaced for billing-plan SK2 products, affecting offer eligibility and purchase metadata, though older OS/compiler paths keep prior behavior.
Overview
StoreKit 2 promotional offers for products with billing plans now come from the pricing term that matches
installmentsInfo.billingPlanType, using that term’s promotionalsubscriptionOffersinstead of the subscription-widepromotionalOfferslist.On iOS 26.4+ (with compiler ≥ 6.3.2),
SK2StoreProduct.discountsapplies that path when installments/billing-plan context is present; otherwise behavior is unchanged via a sharedpromotionalOffersOnSubscriptionInfohelper (same mapping as before).Reviewed by Cursor Bugbot for commit 711977c. Bugbot is set up for automated code reviews on this repo. Configure here.