правки по лаунчеру
This commit is contained in:
@@ -7,8 +7,10 @@ without excessive grind and with stronger social play.
|
||||
The launcher is responsible for:
|
||||
|
||||
- logging in to a player's MoonWell account
|
||||
- registering new MoonWell game accounts
|
||||
- downloading and synchronizing client files
|
||||
- displaying launcher news
|
||||
- displaying the live status of the first configured realm
|
||||
- launching the game client
|
||||
|
||||
## Stack
|
||||
@@ -30,20 +32,20 @@ and all Dart and Flutter commands are run through FVM.
|
||||
fvm flutter pub get
|
||||
```
|
||||
|
||||
Verify the configured SDK with `fvm flutter --version`.
|
||||
Verify the configured SDK with `flutter --version`.
|
||||
|
||||
## Configuration
|
||||
|
||||
Set the launcher Web API base URL at compile time:
|
||||
|
||||
```powershell
|
||||
--dart-define=MOONWELL_API_BASE_URL=https://host
|
||||
--dart-define=MOONWELL_API_BASE_URL=https://moon-well.online
|
||||
```
|
||||
|
||||
Set the public AppCast feed URL to enable Windows launcher self-updates:
|
||||
|
||||
```powershell
|
||||
--dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
|
||||
--dart-define=MOONWELL_APPCAST_URL=https://moon-well.online/appcast.xml
|
||||
```
|
||||
|
||||
The updater is disabled when `MOONWELL_APPCAST_URL` is omitted. Production
|
||||
@@ -52,7 +54,7 @@ feeds must use HTTPS.
|
||||
Example run command:
|
||||
|
||||
```powershell
|
||||
fvm flutter run -d windows --dart-define=MOONWELL_API_BASE_URL=https://host --dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
|
||||
flutter run -d windows --dart-define=MOONWELL_API_BASE_URL=https://moon-well.online --dart-define=MOONWELL_APPCAST_URL=https://moon-well.online/appcast.xml
|
||||
```
|
||||
|
||||
## Development
|
||||
@@ -61,8 +63,8 @@ Run the component catalog from its standalone workspace:
|
||||
|
||||
```powershell
|
||||
cd widgetbook
|
||||
fvm dart run build_runner build
|
||||
fvm flutter run -d windows
|
||||
dart run build_runner build
|
||||
flutter run -d windows
|
||||
```
|
||||
|
||||
See `docs/widgetbook.md` for the required use-case naming, knobs, callback,
|
||||
@@ -71,13 +73,13 @@ asset, and coverage conventions.
|
||||
Regenerate dependency injection after changing injectable services:
|
||||
|
||||
```powershell
|
||||
fvm dart run build_runner build --delete-conflicting-outputs
|
||||
dart run build_runner build --delete-conflicting-outputs
|
||||
```
|
||||
|
||||
Run static analysis:
|
||||
|
||||
```powershell
|
||||
fvm flutter analyze
|
||||
flutter analyze
|
||||
```
|
||||
|
||||
See `docs/linting.md` for the full format, analyze, test, and Lefthook
|
||||
@@ -86,13 +88,26 @@ pre-commit workflow.
|
||||
Build the Windows launcher:
|
||||
|
||||
```powershell
|
||||
fvm flutter build windows --dart-define=MOONWELL_API_BASE_URL=https://host --dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
|
||||
flutter build windows --dart-define=MOONWELL_API_BASE_URL=https://moon-well.online --dart-define=MOONWELL_APPCAST_URL=https://moon-well.online/appcast.xml
|
||||
```
|
||||
|
||||
The Inno Setup installer script lives at `installer/moonwell_launcher.iss`.
|
||||
See `docs/launcher_self_update.md` for the AppCast format, signing keys, and
|
||||
manual release procedure.
|
||||
|
||||
Run a safe local production-release rehearsal:
|
||||
|
||||
```powershell
|
||||
.\tool\deploy_launcher.ps1 `
|
||||
-DryRun `
|
||||
-ExpectedVersion 1.0.2 `
|
||||
-ReleaseNotes "Исправления и улучшения MoonWell Launcher."
|
||||
```
|
||||
|
||||
Remove `-DryRun` only after reviewing the generated installer and AppCast.
|
||||
See `docs/production_deploy.md` for required environment variables, production
|
||||
defaults, safety checks, and failure recovery.
|
||||
|
||||
## Architecture
|
||||
|
||||
The UI lives in `lib/app`. Presentation-only design-system components live in
|
||||
@@ -104,13 +119,16 @@ preferences live under `lib/features`.
|
||||
The launcher sync flow is manifest-based:
|
||||
|
||||
1. authenticate against the MoonWell Web API
|
||||
2. fetch the client manifest
|
||||
3. scan the selected installation directory
|
||||
4. compare local files to the manifest
|
||||
5. remove stale files outside ignored directories
|
||||
6. download missing or changed files to temporary part files
|
||||
7. verify size and SHA-256 before replacing client files
|
||||
8. launch `Wow.exe` from the selected client directory
|
||||
2. fetch the client manifest and automatically synchronize a saved client
|
||||
installation
|
||||
3. refresh the manifest every five minutes while the launcher is open and
|
||||
automatically synchronize when the server build changes
|
||||
4. scan the selected installation directory
|
||||
5. compare local files to the manifest
|
||||
6. remove stale files outside ignored directories
|
||||
7. download missing or changed files to temporary part files
|
||||
8. verify size and SHA-256 before replacing client files
|
||||
9. launch `Wow.exe` from the selected client directory
|
||||
|
||||
See `docs/launcher_web_api_spec.md` for the API and sync contract.
|
||||
|
||||
@@ -123,4 +141,5 @@ See `docs/launcher_web_api_spec.md` for the API and sync contract.
|
||||
upgrade feasibility notes
|
||||
- `docs/launcher_web_api_spec.md`: current launcher Web API and sync behavior
|
||||
- `docs/launcher_self_update.md`: Windows self-update and release operations
|
||||
- `docs/production_deploy.md`: automated production launcher deployment
|
||||
- `docs/widgetbook.md`: Widgetbook use-case generation and catalog conventions
|
||||
|
||||
Reference in New Issue
Block a user