Repository navigation
v0.2.1
Add persistent Android purchase-attempt tracking, iOS attribute/Offering synchronization, and Web discounts for a selected Offering.
- Expose typed
purchaseUpdates,event.purchaseAttempt,getPurchaseAttemptandgetPurchaseAttemptsfor correlated Android purchase and recovery outcomes, including Direct payments and app restart. - Implement iOS
syncAttributesAndOfferingsIfNeededthrough the existing attribute queue, storage, snapshots and events. Match Android's five-admission rolling-minute limit and current-session cache fallback. - Add optional named
offeringIdentifiertogetDiscountedPaymentLinksandgetDiscountedPaymentLinksResult. Web forwards the exact selection, rejects blank selectors and mismatched returned Offerings, and preserves its catalog. Android/iOS retain their code-only discount-link behavior. - Pin Android to Kotlin SDK
v0.2.1; align Flutter, iOS and runtime metadata at0.2.1. - Preserve existing purchase, cache, delivery and recovery contracts.
Validation: 398 Flutter SDK tests passed. Full static analysis passed with existing informational lints. Native validation is recorded in SDK CI.
Install: inappify_sdk: ^0.2.1.
Direct payment-attempt reconciliation also requires the coordinated Go/Laravel backend changes and migration described in the Kotlin release notes.