ShorebirdPatchCommand class
Main coordinator command for all Shorebird patch operations.
This command serves as the parent command for all platform-specific patch commands. It provides a unified entry point for creating Shorebird patches across different platforms.
Subcommands
Platform Patch Commands
android: Create patches for Android applicationsios: Create patches for iOS applications
Usage
# Create Android patch
morpheme shorebird patch android --flavor prod
# Create iOS patch
morpheme shorebird patch ios --flavor prod
Common Options
All patch subcommands support these common options:
--flavor: Build flavor (dev, staging, prod)--target: Main entry point file--morpheme-yaml: Path to morpheme.yaml configuration--build-number: Build number for targeting specific release--build-name: Build name for targeting specific release--split-debug-info: Path for split debug information--generate-l10n: Generate localization files
Platform-specific options are available for each subcommand.
Patch Workflow
Each patch command follows this workflow:
- Validate command arguments and configuration
- Setup environment (localization, Firebase, Shorebird)
- Build and execute the Shorebird patch command
- Report success or handle errors
Patch Targeting
Patches are applied to specific releases identified by:
- Build number and build name combination
- Release version string
- Shorebird release ID
Examples
Create a development Android patch:
morpheme shorebird patch android --flavor dev
Create a production Android patch targeting specific release:
morpheme shorebird patch android --flavor prod --build-number 123 --build-name 1.2.3
Create an iOS patch for staging environment:
morpheme shorebird patch ios --flavor staging --export-method ad-hoc
Best Practices
- Always test patches in development/staging before production
- Ensure patch configuration matches the target release
- Verify that the code changes are compatible with patching
- Monitor patch deployment and rollback if necessary
Limitations
- Not all code changes can be patched (native code, assets)
- Patches must be compatible with the target release
- Some Flutter framework changes may require full releases
Constructors
- ShorebirdPatchCommand()
- Creates a new patch command with all platform-specific subcommands.
Properties
-
aliases
→ List<
String> -
Alternate names for this command.
no setterinherited
- argParser → ArgParser
-
The argument parser for this command.
no setterinherited
- argResults → ArgResults?
-
The parsed argument results for this command.
no setterinherited
- category → String
-
The command's category.
no setterinherited
- description → String
-
A description of this command, included in usage.
no setteroverride
- globalResults → ArgResults?
-
The parsed global argument results.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
-
Whether or not this command should be hidden from help listings.
no setterinherited
- invocation → String
-
A single-line template for how to invoke this command (e.g.
"pub getpackage").no setterinherited - name → String
-
The name of this command.
no setteroverride
- parent → Command?
-
The command's parent command, if this is a subcommand.
no setterinherited
- runner → CommandRunner?
-
The command runner for this command.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
subcommands
→ Map<
String, Command> -
An unmodifiable view of all sublevel commands of this command.
no setterinherited
-
suggestionAliases
→ List<
String> -
Alternate non-functional names for this command.
no setterinherited
- summary → String
-
A short description of this command, included in parent's
CommandRunner.usage.
no setterinherited
- takesArguments → bool
-
Whether or not this command takes positional arguments in addition to
options.
no setterinherited
- usage → String
-
Generates a string displaying usage information for this command.
no setterinherited
-
An optional footer for usage.
no setterinherited
Methods
-
addSubcommand(
Command command) → void -
Adds Command as a subcommand of this.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
printUsage(
) → void -
Prints the usage information for this command.
inherited
-
run(
) → FutureOr? -
Runs this command.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
usageException(
String message) → Never -
Throws a UsageException with
message.inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited