PackageTrack
Sign in Get early access

app_update_pilot

Complete app update lifecycle manager for Flutter. Store version checks, force update walls, A/B rollout, rich changelogs, skip with cooldown, analytics hooks, maintenance mode, and remote config from any JSON API.

1.0.6 65 downloads/mo #3092 most downloaded on pub.dev ramprasad090/app_update_pilot

What this package is like to depend on

Last release 4 months ago

23 Apr 2026

Too new to tell

only 2 release windows

Nearly every release is documented

notes for 7 of 7 stable releases

Nothing withdrawn

no release was ever pulled

4 months old

7 releases · first in 2026

7 releases in the last 12 months

see the full history below

Release timeline

7 releases · Mar 2026 to Apr 2026
Release Pre-release

Releases

latest 7
  1. 1.0.6 23 Apr 2026
    Release notes
    • Yield to event loop after checkForUpdate so pushReplacement /
      pushAndRemoveUntil completes before dialog is shown on root navigator
    • UpdatePilotGuard defers _performCheck to addPostFrameCallback so
      widget is fully settled in tree before showing any UI
    Open source →
    Release notes

    Bug Fixes

    • Dialog disappears / new screen comes through — when check() is called in a screen that also navigates away (e.g. pushReplacement, pushAndRemoveUntil), the dialog was dismissed by the in-flight navigation. Fixed by yielding to the event loop after checkForUpdate completes so any pending navigation settles before the dialog is pushed onto the root navigator.
    • UpdatePilotGuard timing — deferred _performCheck() to addPostFrameCallback so the widget is fully settled in the navigator tree before showing any UI.

    Open source →
  2. 1.0.5 23 Apr 2026
    Release notes

    Capture ModalRoute before the async checkForUpdate gap. If the calling
    screen is no longer the active route when the check completes (user
    navigated away during Play Store scrape), skip showing any UI.

    Fixes fromStore() dialog popping over next screen when called in main.

    Co-Authored-By: Claude Sonnet 4.6 [email protected]

    Open source →
  3. 1.0.4 23 Apr 2026
    Release notes
    • _openStore now checks bool return of launchUrl instead of catching
      exceptions (launchUrl returns false on failure, never throws)
    • Iterates market:// then https://play.google.com fallback in both
      ForceUpdateWall and UpdatePromptDialog
    • Fixes Update Now doing nothing when urgency:critical via fromUrl config

    Co-Authored-By: Claude Sonnet 4.6 [email protected]

    Open source →
  4. 1.0.2 23 Apr 2026
    Release notes
    • Store URL changed from https://play.google.com to market:// so the
      Play Store app opens directly instead of a browser
    • Falls back to https://play.google.com if Play Store is not installed
    • Added block to AndroidManifest for market:// and
      play.google.com — required for launchUrl to work on Android 11+
      (package visibility restrictions silently blocked it before)

    Co-Authored-By: Claude Sonnet 4.6 [email protected]

    Open source →
    Release notes

    Bug Fixes

    • "Update Now" does nothing on Android — store URL now uses market:// scheme which opens the Play Store app directly instead of a browser. Falls back to https://play.google.com/... if Play Store is not installed.
    • Android 11+ intent visibility — added <queries> block to the plugin's AndroidManifest.xml declaring market:// and https://play.google.com intent filters. Without this, launchUrl silently fails on Android 11+ due to package visibility restrictions.

    Open source →
  5. 1.0.1 23 Apr 2026
    Release notes
    • launchUrl called directly (drop canLaunchUrl gate that silently failed on
      Android without https scheme declaration)
    • Store opens before dialog dismisses; pop guarded with context.mounted
    • showForceUpdateWall/showMaintenanceWall/showUpdatePrompt use rootNavigator
      so walls survive splash-to-main navigation while async check is in flight
    • clearStack param (default true) added to wall helpers

    Co-Authored-By: Claude Sonnet 4.6 [email protected]

    Open source →
    Release notes

    Bug Fixes

    • "Update Now" button — fixed silent failure when using UpdateConfig.fromUrl(). The button now calls launchUrl directly (no longer gated behind canLaunchUrl, which silently returns false on Android if the https scheme isn't declared in <queries>). Store opens before the dialog dismisses.
    • Root navigator usageshowForceUpdateWall, showMaintenanceWall, and showUpdatePrompt now use rootNavigator: true. This prevents the force/maintenance wall from being popped or dismissed when called from a splash screen that navigates away while the async update check is in flight.
    • clearStack optionshowForceUpdateWall and showMaintenanceWall accept an optional clearStack parameter (default true) for cases where clearing the route stack is not desired.

    Open source →
  6. 1.0.0 28 Mar 2026
    Release notes

    Stable release of app_update_pilot.

    Breaking Changes

    • Removed UpdateConfig.firebase() — replaced with UpdateConfig.fromMap() which works with Firebase Remote Config, Supabase, or any key-value source without requiring a Firebase dependency.
    • Removed UpdateConfig.isFirebase — replaced with isFromMap.

    New Features

    • Native Android in-app updates — flexible (background download) and immediate (full-screen) modes using Google Play In-App Updates API via platform channels.
    • UpdateConfig.fromMap() — create config from any Map<String, dynamic>, perfect for Firebase Remote Config, Supabase, or custom backends.
    • Error resiliencecheckForUpdate() now catches all errors, fires onCheckFailed analytics callback, and returns safe "up to date" status so the app never crashes.
    • iOS store URL auto-generation — iOS now auto-generates App Store URLs from the bundle ID, matching Android's behavior.

    Improvements

    • Full /// doc comments on all public API members for pub.dev documentation score.
    • Comprehensive README with comparison table, usage examples, and API reference.
    • Example app with demos for every feature including native in-app updates.

    Open source →
  7. 0.1.0 28 Mar 2026
    Release notes

    Initial release of app_update_pilot.

    Core Features

    • Native Android in-app updates — flexible (background download) and immediate (full-screen) modes using Google Play In-App Updates API. No need to leave the app.
    • Store version checking — automatic Play Store (HTML scraping) and App Store (iTunes Lookup API) detection.
    • Remote config — fetch update rules from any JSON API endpoint with custom headers.
    • Firebase Remote Config — ready-to-use UpdateConfig.firebase() factory.
    • Force update wall — non-dismissible full-screen UI when current version is below minimum required.
    • Maintenance mode wall — block app usage during server downtime with custom messaging.
    • Version comparison — robust semantic version parsing and comparison (1.2.3, v1.2.3, 1.2).

    Update Prompts

    • Optional update prompt — Material 3 dialog with changelog, skip, and remind-later actions.
    • Changelog bottom sheet — draggable sheet with markdown rendering via flutter_markdown.
    • Update banner — non-intrusive notification bar with dismiss and update actions.
    • UpdatePilotGuard — wrapper widget that auto-checks on app start and shows appropriate UI.

    Advanced Features

    • A/B rollout — show updates to a percentage of users with stable per-device hashing.
    • Per-platform minimum version — separate Android/iOS force-update thresholds.
    • Skip version with cooldown — persist user's skip choice with configurable re-prompt timer.
    • Remind me later — re-prompt after configurable delay (default 24 hours).
    • Staged urgencyoptional, recommended, and critical levels.

    Customization

    • Full UI overridecustomBuilder on every widget to replace the entire screen.
    • Granular overridesicon, title, description, button text on all widgets.
    • Footer builder — inject custom widgets below action buttons (e.g. update size, support links).
    • Custom themes — all widgets use ColorScheme for automatic dark mode support.

    Analytics

    • UpdateAnalytics — structured callbacks: onPromptShown, onUpdateAccepted, onUpdateSkipped, onRemindLater, onForceUpdateShown, onMaintenanceShown, onCheckFailed.
    • AppUpdatePilot.configure() — set analytics globally once at app start.
    • Automatic event firing from AppUpdatePilot.check().

    Public API

    • AppUpdatePilot.check() — one-line setup with auto UI.
    • AppUpdatePilot.checkForUpdate() — headless check returning UpdateStatus.
    • AppUpdatePilot.showForceUpdateWall() / showUpdatePrompt() / showMaintenanceWall() — manual UI display.
    • AppUpdatePilot.showChangelog() — standalone changelog bottom sheet.
    • AppUpdatePilot.openStore() — open platform store listing.
    • AppUpdatePilot.skipVersion() / remindLater() / isVersionSkipped() — programmatic skip/remind control.
    • AppUpdatePilot.isInRolloutGroup() — check rollout eligibility.
    • AppUpdatePilot.checkNativeUpdate() / startNativeUpdate() / completeNativeUpdate() — native Android in-app update flow.
    • AppUpdatePilot.clearPersistedState() — reset all skip/remind state.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive