inno_bundle 0.6.0
inno_bundle: ^0.6.0 copied to clipboard
CLI tool for automating Windows installer creation using Inno Setup.
Inno Bundle #
A command-line tool that simplifies bundling your app into an EXE installer for Microsoft Windows. Customizable with options to configure the installer capabilities.
Guide #
1. Download Inno Setup #
- Option 1: Using winget (Recommended)
winget install -e --id JRSoftware.InnoSetup
- Option 2: Using chocolatey
choco install innosetup
-
Option 3: From official website
Download Inno Setup from official website. Then install it in your machine.
Note: This package is tested on Inno Setup version 6.2.2.
2. Install inno_bundle package into your project #
dart pub add dev:inno_bundle
3. Generate App ID #
To generate a random id run:
dart run inno_bundle:id
Or, if you want your app id based upon a namespace, that is also possible:
dart run inno_bundle:id --ns "www.example.com"
The output id is going to be something similar to this:
f887d5f0-4690-1e07-8efc-d16ea7711bfb
Copy & Paste the output to your pubspec.yaml as shown in the next step.
4. Set up the Configuration #
Add your configuration to your pubspec.yaml. example:
inno_bundle:
id: f887d5f0-4690-1e07-8efc-d16ea7711bfb # <-- Put your own generated id here
publisher: Your Name # Optional, but recommended.
name: Demo App # Also optional, but recommended.
5. Build the Installer #
After setting up the configuration, all that is left to do is run the package.
flutter pub get
dart run inno_bundle:build --release
Note: --release flag is required if you want to build for release mode, see
below for other options.
Using GitHub Workflow? #
To automate building the installer with GitHub actions, check out the demo.
You can copy the build.yaml file to your project and make sure to update the push branch. It will build the installer and push it to GitHub Releases with correct versioning.
Attributes #
Full list of attributes which you can use into your configuration.
All attributes should be under inno_bundle in pubspec.yaml.
id:RequiredA valid GUID that serves as an AppId.name: App display name. Defaults to camel casednamefrompubspec.yaml.description: Defaults todescriptionfrompubspec.yaml.version: Defaults toversionfrompubspec.yaml.publisher: Defaults tomaintainerfrompubspec.yaml. Otherwise, an empty string.url: Defaults tohomepagefrompubspec.yaml. Otherwise, an empty string.support_url: Defaults tourl.updates_url: Defaults tourl.installer_icon: A path relative to the project that points to an ico image. Defaults to installer icon provided with the demo. 1languages: List of installer's display languages. Defaults to all available languages. 2admin: (trueorfalse) Defaults totrue.true: Require elevated privileges during installation. App will install globally on the end user machine.false: Don't require elevated privileges during installation. App will install into user-specific folder.
1 Only .ico images were tested.
2 All supported languages are: english, armenian, brazilianportuguese, bulgarian, catalan, corsican, czech, danish, dutch, finnish, french, german, hebrew, hungarian, icelandic, italian, japanese, norwegian, polish, portuguese, russian, slovak, slovenian, spanish, turkish, ukrainian.
Examples to CLI options #
This will skip building the app if it exists:
dart run inno_bundle:build --no-app
This will skip building the installer, useful if you want to generate
.iss script only:
dart run inno_bundle:build --no-installer
This build is release mode:
dart run inno_bundle:build --release
Other mode flags are --profile, --debug (Default).
Other configuration examples #
inno_bundle:
id: f887d5f0-4690-1e07-8efc-d16ea7711bfb
publisher: Jane Doe
installer_icon: assets/images/installer.ico
languages:
- english
- french
- german
admin: false
inno_bundle:
id: f887d5f0-4690-1e07-8efc-d16ea7711bfb
name: Google Flutter Framework
description: Flutter makes it easy and fast to build beautiful apps for mobile and beyond.
publisher: Google LLC
url: https://github.com/flutter/flutter
support_url: https://github.com/flutter/flutter/wiki
updates_url: https://github.com/flutter/flutter/releases
Additional Feature #
DLL files msvcp140.dll, vcruntime140.dll, vcruntime140_1.dll are also
bundled (if detected in your machine) with the app during installer creation.
This helps end-users avoid issues of missing DLL files when running app
after install. To know more about it, visit
this
Stack Overflow issue.
Reporting Issues #
If you encounter any issues please report them here.