run static method
Future<String>
run({
- required String projectRoot,
- required String command,
- required String aabOutputPath,
- required String version,
- required String buildNumber,
- required AndroidSigningSession signing,
- required AndroidSigningCredentials credentials,
- String? flavor,
- ProcessRunner processRunner = const SystemProcessRunner(),
Builds and verifies an AAB signed by the configured upload key.
Implementation
static Future<String> run({
required String projectRoot,
required String command,
required String aabOutputPath,
required String version,
required String buildNumber,
required AndroidSigningSession signing,
required AndroidSigningCredentials credentials,
String? flavor,
ProcessRunner processRunner = const SystemProcessRunner(),
}) async {
final managedCommand = StringBuffer(command)
..write(
r'''
\
--build-name "$SMF_PLATFORM_VERSION" \
--build-number "$SMF_BUILD_NUMBER"'''
.trimLeft(),
);
if (flavor != null) {
managedCommand.write(
r'''
\
--flavor "$SMF_FLAVOR"'''
.trimLeft(),
);
}
final environment = <String, String>{
'SMF_PLATFORM': 'android',
'SMF_PLATFORM_VERSION': version,
'SMF_BUILD_NUMBER': buildNumber,
'SMF_FLAVOR': ?flavor,
};
await SystemProcessRunner.shell(
managedCommand.toString(),
options: RunOptions(
workingDirectory: projectRoot,
environment: environment,
),
processRunner: processRunner,
);
final aabPath = await findArtifact(
projectRoot,
aabOutputPath: aabOutputPath,
);
await _sign(
aabPath: aabPath,
keystorePath: signing.keystorePath,
credentials: credentials,
processRunner: processRunner,
);
await _verify(
aabPath: aabPath,
keystorePath: signing.keystorePath,
credentials: credentials,
processRunner: processRunner,
);
return aabPath;
}