signBundle function

Future<void> signBundle({
  1. required BuildContext ctx,
  2. required ResolvedToolchain toolchain,
  3. required String unsignedBundle,
  4. required String signedBundle,
  5. SigningConfig? signing,
  6. AndroidProcessRunner processRunner = runAndroidProcess,
})

Implementation

Future<void> signBundle({
  required BuildContext ctx,
  required ResolvedToolchain toolchain,
  required String unsignedBundle,
  required String signedBundle,
  SigningConfig? signing,
  AndroidProcessRunner processRunner = runAndroidProcess,
}) async {
  final configured =
      signing ?? await SigningConfig.autoResolve(ctx) ?? const SigningConfig();
  if (!configured.isConfigured && ctx.mode.isRelease) {
    print(
      '⚠️  No signing configuration found — signing the AAB with the DEBUG '
      'keystore. Store uploads will be rejected.',
    );
  }
  await signAab(
    unsignedAabPath: unsignedBundle,
    keystorePath: configured.isConfigured
        ? configured.keystorePath
        : await debugKeystore(processRunner: processRunner),
    keyAlias: configured.isConfigured ? configured.keyAlias : 'androiddebugkey',
    storePass: configured.isConfigured ? configured.storePassword : 'android',
    signedAabPath: signedBundle,
    jarsignerPath: await findJarsigner(toolchain, processRunner: processRunner),
  );
}