{"id":13550385,"url":"https://github.com/YehudaKremer/msix","last_synced_at":"2025-04-03T00:33:53.422Z","repository":{"id":38424203,"uuid":"309392612","full_name":"YehudaKremer/msix","owner":"YehudaKremer","description":"Create Msix installer for flutter windows-build files.","archived":false,"fork":false,"pushed_at":"2024-08-15T15:54:22.000Z","size":16498,"stargazers_count":289,"open_issues_count":67,"forks_count":73,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-22T09:02:31.113Z","etag":null,"topics":["appinstaller","dart","flutter","flutter-packge","microsoft-store","msix"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/msix","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YehudaKremer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-02T14:20:21.000Z","updated_at":"2025-02-16T03:43:15.000Z","dependencies_parsed_at":"2023-02-14T02:46:21.319Z","dependency_job_id":"8ee934d2-f4da-4076-972f-9786b1418d4b","html_url":"https://github.com/YehudaKremer/msix","commit_stats":null,"previous_names":[],"tags_count":84,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YehudaKremer%2Fmsix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YehudaKremer%2Fmsix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YehudaKremer%2Fmsix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YehudaKremer%2Fmsix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YehudaKremer","download_url":"https://codeload.github.com/YehudaKremer/msix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246916733,"owners_count":20854511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appinstaller","dart","flutter","flutter-packge","microsoft-store","msix"],"created_at":"2024-08-01T12:01:32.432Z","updated_at":"2025-04-03T00:33:48.668Z","avatar_url":"https://github.com/YehudaKremer.png","language":"Dart","funding_links":[],"categories":["Dart","Packages"],"sub_categories":[],"readme":"![MSIX](https://user-images.githubusercontent.com/946652/138101650-bf934b21-ced7-4836-a197-2e424ee1f86c.png)\n\n\u003ca href=\"https://flutter.dev/docs/development/packages-and-plugins/favorites\" title=\"Flutter Favorite program\"\u003e\n\u003cimg\n  src=\"https://user-images.githubusercontent.com/946652/152225760-309041e9-266e-42da-9915-34478ee74736.png\"\n  alt=\"Flutter Favorite Badge\"\n  align=\"right\"\u003e\n\u003c/a\u003e\n\n[![pub package](https://img.shields.io/pub/v/msix.svg?color=blue)](https://pub.dev/packages/msix) [![MSIX toolkit package](https://img.shields.io/github/v/tag/microsoft/MSIX-Toolkit?color=blue\u0026label=MSIX-Toolkit)](https://github.com/microsoft/MSIX-Toolkit) [![issues-closed](https://img.shields.io/github/issues-closed/YehudaKremer/msix?color=green)](https://github.com/YehudaKremer/msix/issues?q=is%3Aissue+is%3Aclosed) [![issues-open](https://img.shields.io/github/issues-raw/YehudaKremer/msix)](https://github.com/YehudaKremer/msix/issues) [![Codemagic build status](https://api.codemagic.io/apps/61fc249977f79ce332414c45/61fc249977f79ce332414c44/status_badge.svg)](https://codemagic.io/apps/61fc249977f79ce332414c45/61fc249977f79ce332414c44/latest_build)\n\n[MSIX] is a Windows app packaging format from Microsoft that combines the best\nfeatures of MSI, .appx, App-V, and ClickOnce to provide a modern and reliable\npackaging experience.\n\nThis package offers a command line tool for creating MSIX installers from your\nFlutter app, making it easy to [publish your app to the Microsoft Store] or host\nit on a website.\n\n## 📋 Installation\n\nIn your `pubspec.yaml`, add the `msix` package as a new [dev dependency] with\nthe following command:\n\n```console\nPS c:\\src\\flutter_project\u003e flutter pub add --dev msix\n```\n\n## 📦 Creating an MSIX installer\n\nTo create a MSIX installer, run the following command:\n\n```console\nPS c:\\src\\flutter_project\u003e dart run msix:create\n```\n\n## ⚙️ Configuring your installer\n\nYou will almost certainly want to customize various settings in the MSIX\ninstaller, such as the application title, the default icon, and which [Windows\ncapabilities] your application needs. You can customize the generated MSIX\ninstaller by adding declarations to an `msix_config:` node in your\n`pubspec.yaml` file:\n\n```yaml\nmsix_config:\n  display_name: Flutter App\n  publisher_display_name: Company Name\n  identity_name: company.suite.flutterapp\n  msix_version: 1.0.0.0\n  logo_path: C:\\path\\to\\logo.png\n  capabilities: internetClient, location, microphone, webcam\n```\n\nSee [Configurations Examples And Use Cases].\n\n### Available Configurations\n\n\u003cdetails\u003e\n\n\u003csummary\u003eMSIX configuration (click to expand)\u003c/summary\u003e\n\n| YAML name                           | Command-line argument           | Description (from Microsoft [Package manifest schema reference])                                  | Example                                     |\n| ----------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------- |\n| `display_name`                      | `--display-name` `-d`           | A friendly app name that can be displayed to users.                                               | `Flutter App`                               |\n| `publisher_display_name`            | `--publisher-display-name` `-u` | A friendly name for the publisher that can be displayed to users.                                 | `Company Name`                              |\n| `identity_name`                     | `--identity-name` `-i`          | Defines the unique identifier for the app.                                                        | `company.suite.flutterapp`                  |\n| `msix_version`                      | `--version`                     | The version number of the package, in `a.b.c.d` format. [see how the msix version is determined]. | `1.0.0.0`                                   |\n| `logo_path`                         | `--logo-path` `-l`              | Path to an [image file] for use as the app icon (size recommended at least 400x400px).            | `C:\\images\\logo.png`                        |\n| `trim_logo`                         | `--trim-logo \u003ctrue/false\u003e`      | If `false`, don't trim the logo image, default is `true`.                                         | `true`                                      |\n| `capabilities`                      | `--capabilities` `-e`           | List of the [capabilities][windows capabilities] the app requires.                                | `internetClient,location,microphone,webcam` |\n| `languages`                         | `--languages`                   | Declares the language resources contained in the package.                                         | `en-us, ja-jp`                              |\n| `file_extension`                    | `--file-extension` `-f`         | File extensions that the app may be registered to open.                                           | `.picture, .image`                          |\n| `protocol_activation`               | `--protocol-activation`         | [Protocols activation] that will activate the app.                                                | `http,https`                                |\n| `app_uri_handler_hosts`             | `--app-uri-handler-hosts`       | Enable [apps for websites] using app URI handlers app.                                            | `test.com, test2.info`                      |\n| `execution_alias`                   | `--execution-alias`             | [Execution alias] command (cmd) that will activate the app.                                       | `myapp`                                     |\n| `enable_at_startup`                 | `--enable-at-startup`           | App start at startup or user log-in.                                                              | `true`                                      |\n| `store`                             | `--store`                       | Generate a MSIX file for publishing to the Microsoft Store.                                       | `false`                                     |\n| `os_min_version`                    | `--os-min-version`              | Set minimum OS version, default is `10.0.17763.0`                                                 | `10.0.17763.0`                              |\n| [Toast Notifications configuration] |                                 |                                                                                                   |                                             |\n| [Startup Task configuration]        |                                 | pass the app values (args) on startup or user log-in                                              |                                             |\n| [Context Menu configuration]        |                                 | Use your context menu dll with your app                                                           |                                             |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eBuild configuration (click to expand)\u003c/summary\u003e\n\n| YAML name            | Command-line argument          | Description                                                                                                                      | Example                                             |\n| -------------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |\n| `debug`              | `--debug` or `--release`       | Create MSIX from the **debug** or **release** build files (`\\build\\windows\\runner\\\u003cDebug/Release\u003e`), **release** is the default. | `true`                                              |\n| `output_path`        | `--output-path` `-o`           | The directory where the output MSIX file should be stored.                                                                       | `C:\\src\\some\\folder`                                |\n| `output_name`        | `--output-name` `-n`           | The filename that should be given to the created MSIX file.                                                                      | `flutterApp_dev`                                    |\n| `architecture`       | `--architecture` `-h`          | Describes the architecture of the code in the package, `x64` or `arm64`, `x64` is default.                                       | `x64`                                               |\n| `build_windows`      | `--build-windows \u003ctrue/false\u003e` | If `false`, don't run the build command `flutter build windows`, default is `true`.                                              | `true`                                              |\n| `windows_build_args` | `--windows-build-args`         | Any arguments for the `flutter build windows` command.                                                                           | `--obfuscate --split-debug-info=C:\\Users\\me\\folder` |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eSign configuration (click to expand)\u003c/summary\u003e\n\n| YAML name              | Command-line argument                | Description                                                                                                                                              | Example                                                                                         |\n| ---------------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |\n| `certificate_path`     | `--certificate-path` `-c`            | Path to the certificate content to place in the store.                                                                                                   | `C:\\certs\\signcert.pfx` or `C:\\certs\\signcert.crt`                                              |\n| `certificate_password` | `--certificate-password` `-p`        | Password for the certificate.                                                                                                                            | `1234`                                                                                          |\n| `publisher`            | `--publisher` `-b`                   | The `Subject` value in the certificate.\u003cbr /\u003e Required only if publish to the store, or if the `Publisher` will not found automatically by this package. | `CN=BF212345-5644-46DF-8668-014043C1B138` or `CN=Contoso Software, O=Contoso Corporation, C=US` |\n| `signtool_options`     | `--signtool-options`                 | Options to be provided to the `signtool` for app signing (see below.)                                                                                    | `/v /fd SHA256 /f C:/Users/me/Desktop/my.cer`                                                   |\n| `sign_msix`            | `--sign-msix \u003ctrue/false\u003e`           | If `false`, don't sign the msix file, default is `true`.\u003cbr /\u003eNote: when **false**, `publisher` is Required.                                             | `true`                                                                                          |\n| `install_certificate`  | `--install-certificate \u003ctrue/false\u003e` | If `false`, don't try to install the certificate, default is `true`.                                                                                     | `true`                                                                                          |\n\n\u003c/details\u003e\n\n## ✒️ Signing options\n\nPublished MSIX installers should be [signed with a certificate], to help ensure\nthat app installs and updates come from trustworthy sources.\n\n- For development purposes, this package is configured by default to\n  automatically sign your app with a [self signed] **test certificate**, which makes it easy\n  to test your install prior to release.\n- If you publish your app to the **Microsoft Store**, the installation package\n  will be signed automatically by the store.\n- If you need to use your **own signing certificate**, for example to release\n  the app outside of the Microsoft Store, you can use the configuration fields\n  `certificate_path` and `certificate_password` to configure a certificate of\n  your choice.\n\nYou can also provide custom options to the signing tool with the\n`--signtool-options` command, as shown above. For more information on available\noptions, see the [signtool documentation]. Note that using this option overrides\nthe `certificate_path` and `certificate_password` fields.\n\n**Note**: By default, the MSIX package will install the certificate on your\nmachine. You can disable this by using the `--install-certificate false` option, or the YAML\noption `install_certificate: false`.\n\n## ![microsoft store icon][] Publishing to the Microsoft Store\n\nTo generate an MSIX file for publishing to the Microsoft Store, use the\n`--store` flag, or alternatively add `store: true` to the YAML configuration.\n\n**Note**: For apps published to the Microsoft Store, the configuration values\n`publisher_display_name`, `identity_name`, `msix_version` and `publisher` must\nall be configured and should match the registered publisher and app name from\nthe [Microsoft Store dashboard], as per [this screenshot].\n\n## 🌐 Publishing outside the store\n\nYou can use the [App Installer] file to enable your users to install and update the app from local file share.\n\nNote: installing from the web `ms-appinstaller:` is [disabled] for now.\n\nTo create a App Installer file, first set the `publish_folder_path` configuration,\nthen run the following command:\n\n```console\nPS c:\\src\\flutter_project\u003e dart run msix:publish\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eAvailable configurations for App Installer (click to expand)\u003c/summary\u003e\n\n##### App Installer configuration example:\n\n```yaml\nmsix_config:\n  display_name: Flutter App\n  app_installer: #\u003c-- app installer configuration\n    publish_folder_path: c:\\path\\to\\myPublishFolder\n    hours_between_update_checks: 0\n    automatic_background_task: true\n    update_blocks_activation: true\n    show_prompt: true\n    force_update_from_any_version: false\n  msix_version: 1.0.3.0\n```\n\n| YAML name                       | Command-line argument             | Description (from Microsoft [schema reference])                                                                                                    | Example                      |\n| ------------------------------- | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |\n| `publish_folder_path`           | `--publish-folder-path`           | A path to publish folder, where the msix versions and the .appinstaller file will be saved.                                                        | `c:\\path\\to\\myPublishFolder` |\n| `hours_between_update_checks`   | `--hours-between-update-checks`   | Defines the minimal time gap between update checks, when the user open the app. default is **0** (will check for update every time the app opened) | `2`                          |\n| `automatic_background_task`     | `--automatic-background-task`     | Checks for updates in the background every 8 hours independently of whether the user launched the app.                                             | `false`                      |\n| `update_blocks_activation`      | `--update-blocks-activation`      | Defines the experience when an app update is checked for.                                                                                          | `false`                      |\n| `show_prompt`                   | `--show-prompt`                   | Defines if a window is displayed when updates are being installed, and when updates are being checked for.                                         | `false`                      |\n| `force_update_from_any_version` | `--force-update-from-any-version` | Allows the app to update from version x to version x++ or to downgrade from version x to version x--.                                              | `false`                      |\n\n\u003c/details\u003e\n\n## ⚠️ Unsupported Features\n\nWe added the most common features of Msix in this package, however, if you need to add or edit a feature that is not supported yet, you can do this manually.\n\nFirst, create the unpackaged msix files with the following command\n\n```console\nPS c:\\src\\flutter_project\u003e dart run msix:build\n```\n\nThen edit the files that were created in the build folder.\n\nAfter that create a msix installer file from those files with the following command\n\n```console\nPS c:\\src\\flutter_project\u003e dart run msix:pack\n```\n\n---\n\nTags: `msi` `windows` `win10` `win11` `windows10` `windows11` `windows store` `windows installer` `windows packaging` `appx` `AppxManifest` `SignTool` `MakeAppx`\n\n[msix]: https://docs.microsoft.com/en-us/windows/msix/\n[publish your app to the microsoft store]: https://docs.microsoft.com/en-us/windows/uwp/publish/app-submissions\n[dev dependency]: https://dart.dev/tools/pub/dependencies#dev-dependencies\n[windows capabilities]: https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations\n[package manifest schema reference]: https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/appxmanifestschema/schema-root\n[schema reference]: https://docs.microsoft.com/en-us/uwp/schemas/appinstallerschema/element-onlaunch\n[app installer]: https://docs.microsoft.com/en-us/windows/msix/app-installer/app-installer-file-overview\n[image file]: https://github.com/brendan-duncan/image#supported-image-formats\n[protocols activation]: https://docs.microsoft.com/en-us/windows/uwp/launch-resume/handle-uri-activation\n[execution alias]: https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap5-executionalias\n[signed with a certificate]: https://docs.microsoft.com/en-us/windows/msix/package/create-certificate-package-signing\n[signtool documentation]: https://docs.microsoft.com/en-us/dotnet/framework/tools/signtool-exe\n[microsoft store icon]: https://user-images.githubusercontent.com/946652/152312614-1e86b108-98af-4bcf-8a75-d7a4449078b2.png\n[microsoft store dashboard]: https://partner.microsoft.com/dashboard\n[this screenshot]: https://user-images.githubusercontent.com/946652/138753431-fa7dee7d-99b6-419c-94bf-4514c761abba.png\n[disabled]: https://docs.microsoft.com/en-us/windows/msix/app-installer/installing-windows10-apps-web\n[self signed]: https://docs.microsoft.com/en-us/windows/msix/package/create-certificate-package-signing#create-a-self-signed-certificate\n[configurations examples and use cases]: https://pub.dev/packages/msix/example\n[see how the msix version is determined]: https://github.com/YehudaKremer/msix/blob/main/doc/msix_version.md\n[toast notifications configuration]: https://github.com/YehudaKremer/msix/blob/main/doc/toast_notifications_configuration.md\n[startup task configuration]: https://github.com/YehudaKremer/msix/blob/main/doc/startup_task_configuration.md\n[context menu configuration]: https://github.com/YehudaKremer/msix/blob/main/doc/context_menu_configuration.md\n[apps for websites]: https://docs.microsoft.com/en-us/windows/uwp/launch-resume/web-to-app-linking\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYehudaKremer%2Fmsix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FYehudaKremer%2Fmsix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYehudaKremer%2Fmsix/lists"}