PackageTrack
Sign in Get early access

restart_app

A Flutter plugin to restart or relaunch Flutter apps with platform-specific native behavior.

1.9.1 147K downloads/mo #967 most downloaded on pub.dev gabrimatic/restart_app

What this package is like to depend on

Last release 8 days ago

15 Aug 2026

Ships unpredictably

gaps range from 9 days to 1.4 years

Nearly every release is documented

notes for 29 of 30 stable releases

Nothing withdrawn

no release was ever pulled

5 years old

31 releases · first in 2021

15 releases in the last 12 months

see the full history below

Release timeline

31 releases · May 2021 to Aug 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 31
  1. 1.9.1 15 Aug 2026
    Release notes

    Fixes the AGP 9 build failure in 1.9.0. Projects generated by Flutter 3.44 and later use Android Gradle Plugin 9 with android.builtInKotlin=false, and 1.9.0 left that combination with no Kotlin plugin at all, so evaluation failed with Could not find method kotlin(). Upgrading is enough; no app-side change is needed.

    • Fixed the Android build failing on AGP 9 with Could not find method kotlin(), which hit every project generated by Flutter 3.44 and later (#56)
    • Changed how the plugin decides to apply the Kotlin Gradle Plugin: it now checks whether Kotlin has already been provided instead of reading the AGP major version, so AGP 9 with android.builtInKotlin=false gets a Kotlin toolchain like every other combination
    • Kept the Android namespace unconditional now that every supported AGP requires it
    • Added a CI job that builds a fresh app against AGP 9.0 and AGP 9.1 on their matching Gradle versions

    Verified on AGP 8.6, 8.11, 9.0.1, 9.1.0 and 9.3.1, on Flutter 3.44 and 3.47, with built-in Kotlin both off and on.

    Open source →
    Release notes
    • Fixed the Android build failing on AGP 9 with Could not find method kotlin(), which hit every project generated by Flutter 3.44 and later (#56)
    • Changed how the plugin decides to apply the Kotlin Gradle Plugin: it now checks whether Kotlin has already been provided instead of reading the AGP major version, so AGP 9 with android.builtInKotlin=false gets a Kotlin toolchain like every other combination
    • Kept the Android namespace unconditional now that every supported AGP requires it
    • Added a CI job that builds a fresh app against AGP 9.0 and AGP 9.1 on their matching Gradle versions
    Open source →
  2. 1.9.0 08 Aug 2026
    Release notes

    Upgrade notes: Android minSdk rises from 16 to 21 and the Android toolchain moves to Java 17, AGP 8.1.4 and Kotlin 2.0.21; the iOS CocoaPods minimum rises from 11.0 to 12.0. Apps on older toolchains must update their build setup before upgrading. On web, the default restart now reloads the current page instead of navigating to the site origin root; pass webOrigin to keep the previous behavior.

    • Changed the web default restart to reload the current page, keeping the active route instead of jumping to the origin root; webOrigin still overrides the target
    • Fixed Windows so a failed relaunch (for example MSIX/Store-packaged apps) returns a RESTART_FAILED error instead of a false success; the new instance now starts suspended and only resumes after the result is delivered
    • Made unknown platform response modes fall back to the requested mode instead of silently reporting platformDefault
    • Hardened result parsing so non-string code, message, and reason values can never throw
    • Added web plugin tests that cover the full method-channel contract, plus a Chrome test step in CI
    • Added CI restart proofs that build, run, and verify a real process restart on Linux, Windows, and macOS runners
    • Added explicit engine restart, force-kill restart, and webOrigin buttons to the example app
    • Fixed the example Android manifest so url_launcher link checks pass on Android 11+ (package visibility <queries>)
    • Removed the redundant Android finishAffinity() after the relaunch intent, which made ActivityTaskManager log a "Duplicate finish request" on every default restart
    • Prepared the Android build for Flutter's Built-in Kotlin: the Kotlin Gradle Plugin is now applied only on AGP versions below 9, with modernized Kotlin 2.0 tooling
    • Aligned the iOS CocoaPods minimum with Swift Package Manager at iOS 12
    • Made the macOS handler hop to the main thread explicitly before touching AppKit
    Open source →
    Release notes

    Upgrade notes: Android minSdk rises from 16 to 21 and the Android toolchain moves to Java 17, AGP 8.1.4 and Kotlin 2.0.21; the iOS CocoaPods minimum rises from 11.0 to 12.0. Apps on older toolchains must update their build setup before upgrading. On web, the default restart now reloads the current page instead of navigating to the site origin root; pass webOrigin to keep the previous behavior.

    • Changed the web default restart to reload the current page, keeping the active route instead of jumping to the origin root; webOrigin still overrides the target
    • Fixed Windows so a failed relaunch (for example MSIX/Store-packaged apps) returns a RESTART_FAILED error instead of a false success; the new instance now starts suspended and only resumes after the result is delivered
    • Made unknown platform response modes fall back to the requested mode instead of silently reporting platformDefault
    • Hardened result parsing so non-string code, message, and reason values can never throw
    • Added web plugin tests that cover the full method-channel contract, plus a Chrome test step in CI
    • Added CI restart proofs that build, run, and verify a real process restart on Linux, Windows, and macOS runners
    • Added explicit engine restart, force-kill restart, and webOrigin buttons to the example app
    • Fixed the example Android manifest so url_launcher link checks pass on Android 11+ (package visibility <queries>)
    • Removed the redundant Android finishAffinity() after the relaunch intent, which made ActivityTaskManager log a "Duplicate finish request" on every default restart
    • Prepared the Android build for Flutter's Built-in Kotlin: the Kotlin Gradle Plugin is now applied only on AGP versions below 9, with modernized Kotlin 2.0 tooling
    • Aligned the iOS CocoaPods minimum with Swift Package Manager at iOS 12
    • Made the macOS handler hop to the main thread explicitly before touching AppKit
    Open source →
  3. 1.8.3 02 May 2026
    Release notes

    1.8.3

    • Made Restart.restartApp(...) the single Dart restart entry point
    • Changed Restart.restartApp(...) to return RestartResult, giving one call with success, resolved mode, code, and message
    • Kept all restart customization on Restart.restartApp(...): mode, webOrigin, forceKill, notificationTitle, and notificationBody
    • Refined the example so main.dart shows the restart calls directly, while package survival checks live in focused helper files
    • Updated README and example docs so the quick start is platform-neutral and iOS details stay in the iOS section
    Open source →
    Release notes
    • Made Restart.restartApp(...) the single Dart restart entry point
    • Changed Restart.restartApp(...) to return RestartResult, giving one call with success, resolved mode, code, and message
    • Kept all restart customization on Restart.restartApp(...): mode, webOrigin, forceKill, notificationTitle, and notificationBody
    • Refined the example so main.dart shows the restart calls directly, while package survival checks live in focused helper files
    • Updated README and example docs so the quick start is platform-neutral and iOS details stay in the iOS section
    Open source →
  4. 1.8.2 02 May 2026
    Release notes

    ci: align example plugin constraints

    Open source →
    Release notes
    • Tightened iOS default behavior: platformDefault now fails cleanly when engine restart is not configured instead of quietly using notification + exit(0)
    • Kept notification restart as an explicit RestartMode.notificationFallback path for apps that accept the permission prompt, exit, and user-tap tradeoff
    • Removed the internal implicit-fallback flag from the Dart API and iOS platform-channel payload
    • Expanded the example with package checks that exercise common plugin paths after restart
    • Clarified README language around iOS engine restart versus unsupported full process restart
    Open source →
  5. 1.8.1 02 May 2026
    Release notes

    Patch release focused on restart mode correctness and release stability.

    • Fixes structured restart mode handling so unsupported modes fail instead of silently using a platform default.
    • Returns resolved structured restart modes from Android, web, Linux, macOS, and Windows.
    • Makes Android RestartMode.process use the full force-kill restart path automatically.
    • Runs the iOS beforeRestart hook before creating the replacement FlutterEngine.
    • Updates the bundled example Android Gradle project for current Java and Flutter toolchains.

    Validated with flutter analyze, package and example tests, Android/iOS/web example builds, a fresh-template macOS build, native format checks, and dart pub publish --dry-run with 0 warnings.

    Open source →
    Release notes
    • Fixed mode handling so unsupported restart modes fail with a clear platform error instead of silently falling back
    • Returned the resolved restart mode from Android, web, Linux, macOS, and Windows
    • Made Android RestartMode.process use the full forceKill path automatically
    • Updated the example Android Gradle project for current Java and Flutter toolchains
    • Moved the iOS beforeRestart hook before replacement engine creation so apps can clean up native resources first
    Open source →
  6. 1.8.0 02 May 2026
    Release notes

    Changes

    • Added structured restart API with Restart.restart(), RestartResult, RestartMode, and Restart.restartCapability().
    • Added opt-in iOS Flutter engine restart with fresh FlutterEngine creation, Dart re-run, host-owned plugin registration, root FlutterViewController replacement, and old engine teardown.
    • Kept the existing iOS notification + exit(0) behavior as an explicit legacy fallback.
    • Added restart capability reporting across supported platforms.
    • Updated documentation and example integration to distinguish iOS engine restart from unsupported full process restart.

    Verification

    • flutter analyze
    • flutter test
    • cd example && flutter test
    • dart pub publish --dry-run
    • iOS no-codesign build
    • web build
    • Swift/Kotlin/C++ format and lint checks

    Note: Android APK build is blocked locally by the existing Gradle 7.6.3 and Java 21 mismatch on this machine.

    Open source →
    Release notes
    • Added structured restart types with RestartResult, RestartMode, and Restart.restartCapability()
    • Added opt-in iOS Flutter engine restart: fresh FlutterEngine, Dart entrypoint rerun, host plugin registration, root FlutterViewController replacement, and old engine teardown
    • Kept the existing iOS notification + exit(0) behavior as an explicit legacy fallback
    • Documented the important iOS boundary: Flutter engine restart is supported, automatic full process restart is not available through public iOS APIs
    Open source →
  7. 1.7.3 08 Mar 2026
    Release notes
    • Fixed Xcode build failure caused by SPM target path resolving outside the package root (#52)
    Open source →
  8. 1.7.2 28 Feb 2026
    Release notes
    • Fixed Swift Package Manager file locations for iOS and macOS
    Open source →
  9. 1.7.1 28 Feb 2026
    Release notes
    • Added Swift Package Manager support for iOS and macOS
    Open source →
  10. 1.7.0 27 Feb 2026
    Release notes
    • Added native Linux support. Restarts via execv, replacing the current process in-place
    • Added native Windows support. Launches a new instance via CreateProcess and exits
    • Added Android TV and Fire TV support via leanback launcher fallback
    • restartApp() now returns false on native errors instead of throwing PlatformException
    • Added CI with code quality checks, formatting, and native linting (Kotlin, Swift, C++)
    • Added unit tests
    Open source →
  11. 1.6.0 27 Feb 2026
    Release notes
    • Added native macOS support via a Swift plugin. Restarts the app by launching a new instance using NSWorkspace and terminating the current process
    Open source →
  12. 1.5.2 27 Feb 2026
    Release notes
    • Fixed Android FlutterJNI detached error: all destructive restart operations are now deferred via a short delay so the platform channel result can be delivered to the Dart side before the Flutter engine is torn down
    • Lowered minimum Dart SDK requirement from 3.5.1 to 3.4.0 (Flutter 3.22+)
    • Improved README: corrected iOS provisioning profile guidance, removed inaccurate CFBundleURLTypes instructions, and added documentation for calling from background isolates
    Open source →
  13. 1.5.1 27 Feb 2026
    Release notes
    • Added forceKill option for Android. Fully terminates the process after restart for a clean cold start
    • Fixed iOS restart not working due to incorrect AppDelegate cast
    • Implemented proper iOS restart using local notifications with permission handling
    • Breaking (iOS): Returns a PlatformException with code NOTIFICATION_DENIED if notification permission is denied. Handle this in your code
    • Removed unused plugin_platform_interface dependency
    • Fixed iOS podspec placeholder metadata
    • Fixed nested MaterialApp in example app
    • Improved web error handling for unrecognized method calls
    • Cleaned up unused imports
    Open source →
  14. 1.5.0 27 Feb 2026

    Nothing published for this version

  15. 1.4.0-beta 16 Sep 2024 pre-release

    Nothing published for this version

  16. 1.3.3 27 Feb 2026
    Release notes
    • Fixed web platform crash caused by argument type mismatch (#35, #51)
    • Fixed web hash URL strategy not working (#14)
    • Fixed Android crash when launch intent is unavailable (#50)
    • Fixed iOS restartApp() always returning false (#48)
    Open source →
  17. 1.3.2 12 Sep 2024
    Release notes
    • Updated web package to the stable version
    Open source →
  18. 1.3.1 10 Sep 2024
    Release notes
    • Updated JVM and Kotlin versions
    • Upgraded Flutter web dependency to more compatible version
    • Resolved dependency conflicts with firebase packages and restart_app
    Open source →
  19. 1.3.0 05 Sep 2024
    Release notes
    • Custom notification support added for iOS:
      • notificationTitle and notificationBody can now be customized
    • Android improvements:
      • Added namespace configuration
      • Replaced .exit method with new, safe ActivityAware method
      • Updated Kotlin version
    • Web support enhanced:
      • Added Wasm support
    • General updates:
      • Updated dependencies
    Open source →
  20. 1.2.1 29 May 2023
    Release notes
    • In-code documentation added to the source
    Open source →
  21. 1.2.0 25 May 2023
    Release notes
    • iOS support added
    Open source →
  22. 1.1.3 19 May 2023
    Release notes
    • Updated to Flutter 3.10
    • Example files updated
    Open source →
  23. 1.1.2 27 Jan 2023
    Release notes
    • Updated to Flutter 3.7.0
    Open source →
  24. 1.1.1 21 Nov 2022
    Release notes
    • Gradle version updated
    Open source →
  25. 1.1.1+1 12 Dec 2022
    Release notes
    • iOS support description added to README
    Open source →
  26. 1.1.0 21 Sep 2021
    Release notes
    • Web support added
    Open source →
  27. 1.1.0+1 16 May 2022
    Release notes
    • Updated to Flutter 3.0.0
    Open source →
  28. 1.0.3 18 May 2021
    Release notes
    • Plugin version updated in README
    Open source →
  29. 1.0.2 18 May 2021
    Release notes
    • Package name updated in example files
    Open source →
  30. 1.0.1 18 May 2021
    Release notes
    • Package name updated
    Open source →
  31. 1.0.0 18 May 2021
    Release notes
    • Null-Safety support added
    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