Force Upgrader

An un-opinionated upgrader to prompt users to upgrade their app with callbacks to allow deep customization


The default dialog tries to be platform agnostic fitting on multiple platforms. However this dialog like everything else can be easily replaced


Insert the ForceUpgrader widget anywhere in your widget tree but preferably somewhere high up

import 'package:flutter/material.dart';
import 'package:force_upgrader/force_upgrader.dart';

void main() {
  runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Force Upgrader Example',
      theme: ThemeData(
      home: const ExampleHome(),

class ExampleHome extends StatelessWidget {
  const ExampleHome({Key? key}) : super(key: key);

  Widget build(BuildContext context) {
    return ForceUpgrader(
      getMinimumVersion: () async => '2.0.0',
      allowSkipCallback: () async => true,
      onDialogDismissed: () {
      child: Scaffold(
        appBar: AppBar(
          title: const Text('Force Upgrader Example'),

image Force Upgrader's constructor takes the following parameters

  • child: The child to return under Force Upgrader
  • upgradeDialog: An optional custom dialog
  • getMinimumVersion: The future callback to get the minimum version string
  • getCurrentVersion: The optional future callback to call to get the current version string
  • androidPackageName: The optional Android package name of the flutter app
  • iOSAppStoreId: The optional iOS AppStore Id of the flutter app
  • macOSAppStoreId: The optional macOSAppStoreId of the flutter app
  • windowsStoreId: The optional windowsStoreId of the the flutter app
  • defaultStoreUrl: The optional upgrade url of the flutter app
  • dialogHeadingText: Custom optional heading text for the upgrade dialog
  • dialogBodyText: Custom optional body text for the upgrade dialog
  • updateButtonText: Custom optional text for the upgrade dialog's update button
  • allowSkipCallback: The future callback to call to determine if skipping is allowed
  • skipButtonText: Custom optional text for the upgrade dialog's skip button
  • onDialogDismissed: The optional callback to call when upgrade dialog's skip button is pressed

Version Strings

Version strings must be in compliance with the Semantic Versioning Spec (