Skip to main content
All purchases triggered by Encore offers run through an EncorePurchaseController your app registers at configure() time. The SDK has no built-in billing and never runs purchase code you did not write: your controller owns receipt validation, restore handling, and entitlement bookkeeping, exactly as it does for every other purchase in your app.

Definition

Return .purchased on success, .cancelled when the user backs out, and .pending for deferred flows; throw for real failures. The result lands on the record as PublisherOutcome, and the controller is awaited inside the sheet lifetime, so the sheet reacts to the outcome, except on IAP-first variants, where the purchase runs before the sheet is presented.

PurchaseRequest

What your controller receives when Encore needs a purchase.

Implementations