buildForAndroid function
Implementation
void buildForAndroid(BuildParams arg) async {
exitCode = 0; // presume success
// step - edit version num -> pubspec, config
final pusSpecPath = './pubspec.yaml';
await updateLineInFile(
pusSpecPath,
'version:',
'version: ${arg.versionNumber}',
);
// todo setup edit stuff
// todo setup to check stuff
// step - build then copy to desk (rename)
var outputPath = (arg.outputPath?.isEmpty ?? true)
? getHomePath()
: arg.outputPath;
if ( outputPath == null) {
throw "outputPath is was not set!";
}
print(outputPath);
final File file = File(pusSpecPath);
final String yamlString = file.readAsStringSync();
var yaml = loadYaml(yamlString);
var outputFileName = '${yaml['name']}_app_v${arg.versionNumber}';
print(outputFileName);
if (arg.generateAab) {
print('-------- STARTED AAB -----------');
Process process = await Process.start(
'flutter build appbundle --target-platform android-arm,android-arm64,android-x64',
[],
runInShell: true,
);
process.stdout.transform(utf8.decoder).listen((data) {
print(data);
}).onDone(() {});
await process.exitCode;
ProcessResult results = await Process.run(
'move',
[
p.join(Directory.current.path,
p.normalize('build/app/outputs/bundle/release/app-release.aab')),
p.join(p.normalize(outputPath), '${outputFileName}.aab'),
],
runInShell: true,
);
print(results.exitCode);
print(results.stdout);
print(results.stderr);
print('-------- FINISHED AAB -----------');
}
if (arg.generateApk) {
print('-------- STARTED APK -----------');
Process process = await Process.start(
'flutter build apk --release',
[],
runInShell: true,
);
process.stdout.transform(utf8.decoder).listen((data) {
print(data);
}).onDone(() {});
await process.exitCode;
ProcessResult results = await Process.run(
'move',
[
p.join(Directory.current.path,
p.normalize('build/app/outputs/apk/release/app-release.apk')),
p.join(p.normalize(outputPath), '${outputFileName}.apk'),
],
runInShell: true,
);
print(results.exitCode);
print(results.stdout);
print(results.stderr);
print('-------- FINISHED APK -----------');
}
}