run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
Future<void> run() async {
final results = argResults!;
final firebaseAppId = results['firebaseAppId'] as String;
final serviceAccount = results['serviceAccount'] as String;
final appId = results['appId'] as String;
final issuerId = results['issuerId'] as String;
final keyId = results['keyId'] as String;
final privateKey =
(results['privateKey'] as String).replaceAll(r'\n', '\n');
final gitUrl = results['gitUrl'] as String;
final buildOptions = results['buildOptions'] as String;
final testerGroups = results['testerGroups'] as String;
final appleAppStoreUtil = AppleAppStoreUtil(
issuerId: issuerId,
keyId: keyId,
privateKey: privateKey,
appId: appId,
);
await appleAppStoreUtil.configureSigning(gitUrl: gitUrl, isAdhoc: true);
final firebaseAppDistributionUtil = FirebaseAppDistributionUtil(
serviceAccount: serviceAccount,
appId: firebaseAppId,
);
final authClient = await firebaseAppDistributionUtil.initializeAuthClient();
final release =
await firebaseAppDistributionUtil.latestRelease(authClient: authClient);
final buildNumber = release.buildNumber;
final newBuildPath = await IOSUtil.createBuild(
buildNumber: buildNumber,
buildOptions: buildOptions,
);
if (newBuildPath != null) {
stdout.writeln(
'Uploading flutter build from $newBuildPath to Firebase App '
'Distribution...',
);
await firebaseAppDistributionUtil.uploadBuild(
authClient: authClient,
filePath: newBuildPath,
testerGroups: testerGroups.split(','),
);
}
}