Skip to main content

v1.0.51 — Interactive Chat: context round-trip + better webhook error visibility

Release date: April 2026

Interactive Chat (interactive_chat step)

  • context field in chat webhook requests — the SDK now echoes back whatever you returned in a prior response’s data object on every subsequent turn as context. Lets you integrate threaded AI backends (OpenAI Assistants, hosted LLMs with threadId, Claude with conversation memory, third-party AI proxies) without replaying the full conversation history on every request. Write once via data, read every turn from req.body.context. Last-write-wins across turns per-key. See the new Threaded backends section in the iOS onboarding docs for the full pattern.
  • chat_webhook_error now surfaces non-2xx HTTP responses — previously the iOS SDK would decode a 4xx/5xx error body as an empty ChatWebhookResponse (all fields nil) and silently fire chat_message_received with message_count: 0, rendering nothing. It now checks HTTPURLResponse.statusCode, fires chat_webhook_error with http_status and a truncated response_body property, and shows the configured error_text in-chat. Android already handled this correctly.

Compatibility

  • iOS SDK 1.0.51 (Swift 5.9+, iOS 16+)
  • Backwards compatible: new context field is additive. Older webhooks that don’t read it keep working. Older SDKs that don’t send it keep working against new webhooks.

v1.0.12 — Diagnostics & Error Handling

Release date: March 2026
  • AppDNA.diagnose(): New public method that prints a full SDK health report — API key validation, bootstrap status, Firebase initialization path, identity, event queue, and active modules
  • Smart event retry: SDK no longer retries on 401 (invalid key) or 400 (bad payload) — pauses immediately instead of wasting 15 retry cycles
  • Event upload logging: HTTP status code and response body now logged on every failure (was silent before)
  • Firebase safety: Removed dangerous fallback to host app’s Firebase project. Clear error messages when GoogleService-Info-AppDNA.plist is missing
  • API key validation: Format check at configure() time (must start with adn_live_ or adn_test_)
  • Bootstrap timeout: Increased from 5s to 15s (was shorter than retry cycle on cellular networks)
  • Crash prevention: Event flush pauses after 5 consecutive failures + 1000 event memory cap
  • Android timeout fixes: Rich push image download 5s→10s/15s, geocoding 5s→10s, hardcoded URL→api.appdna.ai

Compatibility

  • iOS SDK 1.0.12 (Swift 5.9+, iOS 16+)
  • Android SDK 1.0.12 (Kotlin, API 24+)

v1.0.9 — Critical Fixes

Release date: March 2026
  • Firebase crash fix: iOS SDK no longer crashes when host app already uses Firebase — uses named secondary app (“appdna”) with 4-tier fallback
  • API URL fix: Both sandbox and production environments now use api.appdna.ai (removed non-existent sandbox-api.appdna.ai)
  • Main thread fix: iOS UIApplication.shared access moved to main thread, preventing background-thread crashes
  • Android null safety: Fixed 3 force-unwrap crashes in bootstrap parsing and Firebase config
  • Android connection leak: All HTTP responses now use .use {} block to prevent connection pool exhaustion
  • Thread safety: Added NSLock for iOS initialization, synchronized blocks for Android module access
  • 31 additional fixes from comprehensive SDK audit (force unwraps, race conditions, error handling)

Compatibility

  • iOS SDK 1.0.9 (Swift 5.9+, iOS 16+)
  • Android SDK 1.0.9 (Kotlin, API 24+)

v1.0.8 — Stability & Compatibility

Release date: March 2026
  • Firebase compatibility: iOS SDK now supports Firebase 11.x and 12.x (>= 11.0, < 13.0)
  • CocoaPods fix: Added MIT LICENSE file (required for pod trunk push)
  • Version alignment: iOS and Android SDKs both report 1.0.8 consistently

Compatibility

  • iOS SDK 1.0.8 (Swift 5.9+, iOS 16+)
  • Android SDK 1.0.8 (Kotlin, API 24+)

v1.1.0 — Server-Driven UI Engine (SPEC-089c)

Release date: March 2026

Server-Driven Screens (New Module)

  • Unified screen renderer — any screen designed in the console is rendered natively, combining content blocks from onboarding, paywalls, surveys, and messages into a single composable surface
  • Multi-screen flows — build guided tours, upgrade funnels, win-back sequences, and onboarding alternatives with server-defined navigation graphs and branching
  • Screen slots — embed named AppDNAScreenSlot views inline in your app; the console assigns and updates content with audience targeting
  • Navigation interception — automatically inject screens between app navigations without code changes
  • Debug preview — test screen configs from raw JSON without publishing to Firestore
  • Screen delegateAppDNAScreenDelegate protocol for screen lifecycle callbacks and action interception
  • 14 new auto-tracked eventsscreen_presented, screen_dismissed, screen_action, flow_started, flow_completed, flow_abandoned, slot_rendered, slot_registered, interception_triggered, and more

Paywall Enhancements

  • 12 plan display styles — horizontal cards, vertical stack, toggle switch, segmented control, radio list, carousel, comparison grid, pill selector, tier blocks, minimal text, featured highlight, and accordion
  • Card & badge customization — per-plan badge text/color, card border/shadow, save percentage, trial label, card background (solid/gradient/image), and corner radius

Onboarding Enhancements

  • Row direction and distribution — configurable horizontal/vertical direction with 7 distribution modes (equal, fill, start, center, end, space_between, space_around)
  • Button gradients — gradient backgrounds with configurable direction (horizontal, vertical, diagonal)
  • Select display styles — dropdown, stacked, and grid layouts for question option lists
  • Progress bar custom colors — custom fill color, track color, gradient fill, corner radius, and height

Platforms

  • iOS SDK 1.1.0 (Swift 5.9+, iOS 16+)
  • Android SDK 1.1.0 (Kotlin, API 24+)

v1.0.6 — SDK Rendering Parity (SPEC-089d)

Release date: March 2026

Onboarding

  • 18 new content block types — page indicator, wheel picker, pulsing avatar, social login, timeline, animated loading, countdown timer, rating, rich text, progress bar, circular gauge, date wheel picker, stack, row, custom view, star background, and pricing card
  • Custom view registration — host apps can register native SwiftUI/Composable views for custom_view blocks
  • Dynamic bindingsonBeforeStepRender hook data flows into block properties via {{binding_key}} syntax
  • Block stylingblock_style design tokens for padding, margin, background, corner radius, border, shadow, and opacity
  • Visibility conditions — per-block show/hide rules based on responses, bindings, device attributes
  • Entrance animations — fade, slide, scale, flip, and bounce animations per block with configurable duration and easing
  • 8 new form field types — password, rating, range slider, image picker, color, URL, chips, and signature

Paywalls

  • 12 new section types — countdown, legal, divider, sticky footer, card, carousel, timeline, icon grid, comparison table, promo input, toggle, and reviews carousel
  • Promo code handlingonPromoCodeSubmit delegate for server-side coupon validation with discount display
  • Toggle state in purchase metadata — toggle section states (e.g., annual billing, add-ons) included in transaction metadata

Bug Fixes

  • Fixed 3 remaining audit failures for SPEC-089d rendering compliance
  • Added flip animation type to Android entrance animations

Platforms

  • iOS SDK 1.0.6 (Swift 5.9+, iOS 16+)
  • Android SDK 1.0.6 (Kotlin, API 24+)

v1.0.0 — General Availability

Release date: February 2026

SDKs

  • iOS SDK 1.0.0 (Swift 5.9+, iOS 16+, SPM & CocoaPods)
  • Android SDK 1.0.0 (Kotlin, API 24+, Maven Central)
  • Flutter SDK 1.0.0 (Dart 3.0+, pub.dev)
  • React Native SDK 1.0.0 (TypeScript, npm)

Core Features

  • Offline-first architecture — Three-tier config priority (Remote > Cached > Bundled)
  • Config Bundles — Embeddable versioned JSON for CI/CD pipelines
  • Identity management — Anonymous ID generation, user identification with traits, cross-session persistence
  • Event tracking — Custom events with structured properties, automatic batching and retry

Modules

  • Push Notifications — Token registration, rich notifications, deep link handling
  • Billing — StoreKit 2 (iOS), Google Play Billing 7.0 (Android), entitlement management, receipt verification
  • Onboarding — Server-driven onboarding flows with step tracking
  • Paywalls — Server-driven paywall presentation with A/B testing support
  • Remote Config — Key-value configuration with real-time updates
  • Feature Flags — Boolean feature gates with targeting rules
  • A/B Experiments — Deterministic MurmurHash3 assignment, cross-platform consistent bucketing
  • Surveys — In-app surveys with response collection
  • In-App Messages — Triggered messaging with templates
  • Deep Links — Universal/App link handling with deferred deep link support

API & Integrations

  • RESTful API with two authentication modes (SDK keys & Dashboard keys)
  • 16 webhook event types with HMAC-SHA256 signing
  • Exponential backoff retry (5 attempts)

Dashboard

  • 10 growth modules (Onboarding, Monetization, Retention, ASO, ICP/USP, Paid UA, Organic Social, Feedback Loop, Web2App, Experiments)
  • AI-powered strategy assistant per module
  • Real-time Event Debugger
  • Organization and app management with role-based access