Flutter Dynamic Publishing Platform Guide
1. Basic Concepts
1.1 Module-Based Patch Management
Because different Flutter pages may run in different engine instances, each engine may need to load different patches.
Splitting patches into finer-grained modules also helps reduce patch load time, so Conch patch delivery is managed at the module level.
You can define and divide module scope based on your business needs and control patch creation and loading more flexibly.
2. Usage Guide
2.1 Create a Module
Click New Module in the top-right corner of the module list to open the create module page.


Module name: Used to distinguish modules. Required during SDK initialization (corresponds to the moduleName field in ConchParams when calling ConchLoaderAPI.runAppWrapper).
Description: A brief description of the module.
Tags: Used for display and list filtering.
Owner: The module owner. Only the owner can edit the module.
Reviewer: The approver for release tasks. Reviewers can approve or reject release requests.
2.2 Create a Release Task
After creating a module, click New Task to create a task for delivery control.

1. Fill in basic information

Task description: A brief description of this release task.
Associated artifact: The patch artifact for this release. Upload it on the page (the conch_result_*.zip patch archive in .dart_tool/conch_build/patch_zip/).
2. Configure delivery conditions
Configure delivery rules for this task. Only users who meet the conditions can fetch it.
Delivery conditions typically match a specific version, because patches are built against a fixed base version.

Note: By default, all products under the project can fetch this task. You can also restrict delivery by app.
3. Configure rollout strategy
Tasks support gradual rollout, smooth gradual rollout, and immediate full release. Choose as needed.

Gradual rollout: Release in batches with increasing volume for safer releases.
Smooth gradual rollout: Specify total rollout duration and user count; the platform rolls out smoothly automatically.
Immediate release: Full release with no volume limit.
2.3 Test and Preview
New tasks start in test/preview mode. Only users on the preview list can fetch the task. Click a task to open its details.
Click Preview list to configure preview accounts, validate the task, and then submit it for approval.

Note: Preview accounts use the
deviceIdpassed during SDK initialization (thedeviceIdfield inConchParamswhen callingConchLoaderAPI.runAppWrapper).
2.4 Release Approval
After submitting for approval, the reviewer receives an approval request, can review task details, and approve or reject the release.

2.5 Start Release
After approval, the task enters release status automatically. Non-preview users can then fetch it normally.

During release, you can pause/resume or stop the task as needed.
- Pause: Users who already fetched the patch keep it; users who have not will not match this task.
- Stop: All users who fetched the patch will uninstall it (equivalent to revoking the patch).
2.6 Release Statistics
The statistics page on the task details shows delivery metrics. More real-time release data will be added over time.

- Delivered: Number of devices that received the patch.
- Installed: Number of devices where the patch was installed.
- Activated: Number of patch activations.