From 949fe5e005c15400a025dadea89f0439b14a2c48 Mon Sep 17 00:00:00 2001
From: Abdullah <89297042+AzazelSensei@users.noreply.github.com>
Date: Wed, 16 Sep 2026 21:26:37 +0000
Subject: [PATCH 1/3] docs: document Windows MSIX from a Shorebird release
package:msix rebuilds with stock Flutter unless build_windows is false.
Document packaging the output of shorebird release windows instead.
---
src/content/docs/code-push/release.mdx | 9 +++
.../releasing-flutter-apps/index.mdx | 5 ++
.../releasing-flutter-apps/windows.mdx | 72 +++++++++++++++++++
3 files changed, 86 insertions(+)
create mode 100644 src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx
diff --git a/src/content/docs/code-push/release.mdx b/src/content/docs/code-push/release.mdx
index 5a943e9e..0eb3d254 100644
--- a/src/content/docs/code-push/release.mdx
+++ b/src/content/docs/code-push/release.mdx
@@ -439,6 +439,10 @@ the `--flutter-version` flag.
shorebird release windows --flutter-version %flutter_version%
```
+To package this build for the Windows Store, set `build_windows: false` in
+`package:msix` so it does not rebuild with stock Flutter. See
+[Releasing for Windows](/flutter-concepts/releasing-flutter-apps/windows/).
+
@@ -612,3 +616,8 @@ as needed.
title="Releasing for iOS"
description="Learn how to configure Xcode signing and submit your release to the Apple App Store."
/>
+
diff --git a/src/content/docs/flutter-concepts/releasing-flutter-apps/index.mdx b/src/content/docs/flutter-concepts/releasing-flutter-apps/index.mdx
index 3df518b7..9c7d062e 100644
--- a/src/content/docs/flutter-concepts/releasing-flutter-apps/index.mdx
+++ b/src/content/docs/flutter-concepts/releasing-flutter-apps/index.mdx
@@ -393,3 +393,8 @@ artifacts:
title="Releasing for iOS (Apple App Store)"
description="Configure Xcode signing identities, Privacy Manifests, build IPAs, and distribute via TestFlight and App Review."
/>
+
diff --git a/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx b/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx
new file mode 100644
index 00000000..b5b89b15
--- /dev/null
+++ b/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx
@@ -0,0 +1,72 @@
+---
+title: Releasing for Windows
+description:
+ Build a Shorebird Windows release, then package an MSIX from that output
+ without letting package:msix rebuild the app with stock Flutter.
+sidebar:
+ label: Windows (Microsoft Store)
+ order: 4
+---
+
+{/* cspell:words msix */}
+
+To submit an app to the Windows Store, you need an **MSIX** package.
+[`package:msix`](https://pub.dev/packages/msix) is a common way to produce
+that file from a Flutter Windows build. By default it runs
+`flutter build windows` with the Flutter SDK on your `PATH`, not
+Shorebird's Flutter. That rebuild is not a Shorebird release, so patches
+will not apply.
+
+Build with Shorebird first, then tell `package:msix` to package the existing
+output.
+
+## Step 1: Create a Shorebird Windows release
+
+```bash
+shorebird release windows
+```
+
+The Windows executable is written to `build/windows/x64/runner/Release`.
+See [Create a Release](/code-push/release/) for flavors, targets, and
+`--flutter-version`.
+
+## Step 2: Disable the MSIX rebuild
+
+Add [`package:msix`](https://pub.dev/packages/msix) as a dev dependency if
+you do not already use it:
+
+```bash
+flutter pub add dev:msix
+```
+
+Then set `build_windows: false` in the `msix_config` section of
+`pubspec.yaml`:
+
+```yaml
+msix_config:
+ display_name: My App
+ publisher_display_name: Example
+ identity_name: com.example.myapp
+ msix_version: 1.0.0.1
+ build_windows: false
+```
+
+`build_windows: false` skips `flutter build windows` and packages the
+directory Shorebird already produced.
+
+## Step 3: Create the store package
+
+```bash
+dart run msix:create
+```
+
+Submit the generated `.msix` file to the Windows Store.
+
+:::caution
+
+Do not run `flutter build windows` or `msix:create` without
+`build_windows: false` after `shorebird release windows`. Those commands
+rebuild with non-Shorebird Flutter and replace the release artifacts
+Shorebird registered.
+
+:::
From 3c7f8e87b6542f2ce69572c659745594a5c93ce4 Mon Sep 17 00:00:00 2001
From: Abdullah <89297042+AzazelSensei@users.noreply.github.com>
Date: Thu, 17 Sep 2026 09:29:38 +0000
Subject: [PATCH 2/3] docs: add Store identity fields to the Windows MSIX
example
Copy publisher fields from Partner Center, set store: true, and use
msix_version 1.0.0.0. Clarify that a stock Flutter rebuild only
overwrites local output.
---
.../releasing-flutter-apps/windows.mdx | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx b/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx
index b5b89b15..a9437026 100644
--- a/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx
+++ b/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx
@@ -46,14 +46,21 @@ Then set `build_windows: false` in the `msix_config` section of
msix_config:
display_name: My App
publisher_display_name: Example
+ publisher: CN=00000000-0000-0000-0000-000000000000
identity_name: com.example.myapp
- msix_version: 1.0.0.1
+ msix_version: 1.0.0.0
+ store: true
build_windows: false
```
`build_windows: false` skips `flutter build windows` and packages the
directory Shorebird already produced.
+Copy `identity_name`, `publisher`, and `publisher_display_name` from
+Partner Center (Product identity). With `store: true`, `package:msix`
+refuses to build if any of them is missing. The fourth part of
+`msix_version` must be `0` for Store submissions.
+
## Step 3: Create the store package
```bash
@@ -66,7 +73,7 @@ Submit the generated `.msix` file to the Windows Store.
Do not run `flutter build windows` or `msix:create` without
`build_windows: false` after `shorebird release windows`. Those commands
-rebuild with non-Shorebird Flutter and replace the release artifacts
-Shorebird registered.
+rebuild with non-Shorebird Flutter and overwrite the build output, so the
+resulting MSIX will not receive patches.
:::
From ab63efff30bc5d30c2f9cecbadb18e20e9de00cc Mon Sep 17 00:00:00 2001
From: Abdullah <89297042+AzazelSensei@users.noreply.github.com>
Date: Thu, 17 Sep 2026 12:39:42 +0000
Subject: [PATCH 3/3] docs: apply Windows MSIX review wording and CI fixes
Use Microsoft Store throughout, rename the Step 3 heading so Vale
passes, put build_windows on msix_config, add msix to cspell, and
rewrap the page to 80 columns.
---
.cspell.yaml | 1 +
src/content/docs/code-push/release.mdx | 5 +-
.../releasing-flutter-apps/windows.mdx | 48 +++++++++----------
3 files changed, 26 insertions(+), 28 deletions(-)
diff --git a/.cspell.yaml b/.cspell.yaml
index 92d98531..00b68b96 100644
--- a/.cspell.yaml
+++ b/.cspell.yaml
@@ -85,6 +85,7 @@ words:
- mipmap
- mobileprovision
- mozallowfullscreen
+ - msix
- notlike
- nubank
- opengraph
diff --git a/src/content/docs/code-push/release.mdx b/src/content/docs/code-push/release.mdx
index 0eb3d254..a83ba92e 100644
--- a/src/content/docs/code-push/release.mdx
+++ b/src/content/docs/code-push/release.mdx
@@ -439,8 +439,9 @@ the `--flutter-version` flag.
shorebird release windows --flutter-version %flutter_version%
```
-To package this build for the Windows Store, set `build_windows: false` in
-`package:msix` so it does not rebuild with stock Flutter. See
+To package this build for the Microsoft Store, set `build_windows: false` in the
+`msix_config` section of `pubspec.yaml` so `package:msix` does not rebuild with
+stock Flutter. See
[Releasing for Windows](/flutter-concepts/releasing-flutter-apps/windows/).
diff --git a/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx b/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx
index a9437026..401db0d2 100644
--- a/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx
+++ b/src/content/docs/flutter-concepts/releasing-flutter-apps/windows.mdx
@@ -8,14 +8,11 @@ sidebar:
order: 4
---
-{/* cspell:words msix */}
-
-To submit an app to the Windows Store, you need an **MSIX** package.
-[`package:msix`](https://pub.dev/packages/msix) is a common way to produce
-that file from a Flutter Windows build. By default it runs
-`flutter build windows` with the Flutter SDK on your `PATH`, not
-Shorebird's Flutter. That rebuild is not a Shorebird release, so patches
-will not apply.
+To submit an app to the Microsoft Store, you need an **MSIX** package.
+[`package:msix`](https://pub.dev/packages/msix) is a common way to produce that
+file from a Flutter Windows build. By default it runs `flutter build windows`
+with the Flutter SDK on your `PATH`, not Shorebird's Flutter. That rebuild is
+not a Shorebird release, so patches will not apply.
Build with Shorebird first, then tell `package:msix` to package the existing
output.
@@ -26,21 +23,20 @@ output.
shorebird release windows
```
-The Windows executable is written to `build/windows/x64/runner/Release`.
-See [Create a Release](/code-push/release/) for flavors, targets, and
+The Windows executable is written to `build/windows/x64/runner/Release`. See
+[Create a Release](/code-push/release/) for flavors, targets, and
`--flutter-version`.
## Step 2: Disable the MSIX rebuild
-Add [`package:msix`](https://pub.dev/packages/msix) as a dev dependency if
-you do not already use it:
+Add [`package:msix`](https://pub.dev/packages/msix) as a dev dependency if you
+do not already use it:
```bash
flutter pub add dev:msix
```
-Then set `build_windows: false` in the `msix_config` section of
-`pubspec.yaml`:
+Then set `build_windows: false` in the `msix_config` section of `pubspec.yaml`:
```yaml
msix_config:
@@ -53,27 +49,27 @@ msix_config:
build_windows: false
```
-`build_windows: false` skips `flutter build windows` and packages the
-directory Shorebird already produced.
+`build_windows: false` skips `flutter build windows` and packages the directory
+Shorebird already produced.
-Copy `identity_name`, `publisher`, and `publisher_display_name` from
-Partner Center (Product identity). With `store: true`, `package:msix`
-refuses to build if any of them is missing. The fourth part of
-`msix_version` must be `0` for Store submissions.
+Copy `identity_name`, `publisher`, and `publisher_display_name` from Partner
+Center (Product identity). With `store: true`, `package:msix` refuses to build
+if any of them is missing. The fourth part of `msix_version` must be `0` for
+Store submissions.
-## Step 3: Create the store package
+## Step 3: Create the MSIX package
```bash
dart run msix:create
```
-Submit the generated `.msix` file to the Windows Store.
+Submit the generated `.msix` file to the Microsoft Store.
:::caution
-Do not run `flutter build windows` or `msix:create` without
-`build_windows: false` after `shorebird release windows`. Those commands
-rebuild with non-Shorebird Flutter and overwrite the build output, so the
-resulting MSIX will not receive patches.
+After `shorebird release windows`, do not run `flutter build windows`, or
+`msix:create` without `build_windows: false`. Those commands rebuild with
+non-Shorebird Flutter and overwrite the build output, so the resulting MSIX will
+not receive patches.
:::