Skip to main content
Supported on: iOS SDK 1.0.61+
This is the complete reference for all public methods, properties, types, and delegate protocols in the AppDNA iOS SDK.

Core Methods

Session Data Methods

Config Methods

Experiment Methods

Push Methods

AppDNA.pushModule forwarding

For hosts that disable the notification proxy (AppDNADisableNotificationProxy = YES) and forward from their own delegate. All three are no-ops returning false unless the payload carries the AppDNA marker (appdna: "1"); calls are deduplicated per push. Delivered / tapped tracking needs an AppDNA server from this release or later (older servers send no appdna marker, push_id or delivery_id, so their pushes are not recognised as AppDNA pushes: no tracking, no callbacks, no tap routing).

Presentation Methods

Web Entitlements


Module Namespaces

Access module-specific functionality through these properties on the AppDNA singleton:

Delegate Protocols

AppDNAPushDelegate

AppDNABillingDelegate

Register with AppDNA.billing.setDelegate(_ delegate: AppDNABillingDelegate?, deliversPurchases: Bool = true) (or AppDNA.billingDelegate = …, which is deliversPurchases: true). Any billing delegate drains the late-purchase delivery queue — implement onPurchaseCompleted, or pass deliversPurchases: false for a delegate that must not receive queued purchases. onPurchaseCompleted fires for every purchase the SDK completes — paywall-driven or direct AppDNA.billing.purchase(...). On .storeKit2 it also fires for purchases that complete later (interrupted, Ask-to-Buy or offer code), possibly at launch, on setDelegate or after identify; a purchase made on another device of the same Apple ID may also be reported here, and a late purchase made while another user was signed in is delivered when that user signs in — grant idempotently by transaction.transactionId. A refused paywall tap (providerNotAvailable) and a re-buy of an owned item fire no onPurchaseCompleted.

AppDNAOnboardingDelegate

AppDNAPaywallDelegate

AppDNAInAppMessageDelegate

AppDNASurveyDelegate

AppDNADeepLinkDelegate


Key Types

AppDNAOptions

Environment

LogLevel

BillingProvider

.storeKit2 (and omitted) — the SDK owns purchases and finishes transactions. .revenueCat / .adapty — the provider owns purchases; the SDK never finishes transactions and SDK paywall taps report providerNotAvailable — under .revenueCat unless RevenueCat is linked into AppDNA (source / vendored builds only), under .adapty always (with Adapty linked, restore and entitlements go through Adapty, but the SDK never buys). .none — billing disabled; purchase and restore throw BillingError.providerNotAvailable (“No billing provider configured”). See Billing.

Info.plist keys (not runtime options)

PaywallContext

OnboardingContext

PushPayload

PushAction

TransactionInfo

ProductInfo

Entitlement

WebEntitlement

PaywallAction

DismissReason

StepAdvanceResult

minimumBridgeTimeout(stepData:) is the floor the Flutter and React Native bridges apply to onBeforeStepAdvance: they wait max(vetoTimeout, minimumBridgeTimeout(stepData:) ?? 0). A native iOS host is not timed out.

StepConfigOverride

FormFieldType


Server-Driven Screens


AppDNAScreenDelegate

ScreenError

ScreenResult

FlowResult

SectionAction

An action a section dispatches through its context. SectionAction is an enum, not a struct — each case carries its own associated values.

Properties