uploadBuild method
Implementation
Future<void> uploadBuild({
required final String track,
required final String filePath,
}) async {
final packageName = await _packageName();
final client = await clientViaServiceAccount(
_serviceAccountCredentials,
[AndroidPublisherApi.androidpublisherScope],
);
final androidPublisher = AndroidPublisherApi(client);
try {
final edit = await androidPublisher.edits.insert(AppEdit(), packageName);
final editId = edit.id;
if (editId == null) {
throw Exception('Edit ID not found.');
}
final file = File(filePath);
final uploadResponse = await androidPublisher.edits.bundles.upload(
packageName,
editId,
uploadMedia: Media(file.openRead(), file.lengthSync()),
);
stdout.writeln('Uploaded version code: ${uploadResponse.versionCode}');
await androidPublisher.edits.tracks.update(
Track()
..track = track
..releases = [
TrackRelease()
..versionCodes = [uploadResponse.versionCode?.toString() ?? '']
..status = 'completed',
],
packageName,
editId,
track,
);
await androidPublisher.edits.commit(packageName, editId);
stdout.writeln('Edit committed successfully');
} catch (error) {
rethrow;
} finally {
client.close();
}
}