startBuildWithCertificateAndPasswordFromOnePassword method

Future<void> startBuildWithCertificateAndPasswordFromOnePassword({
  1. required String opUuid,
  2. required String opVaultName,
  3. required String keyChainName,
  4. required Future<void> onStartBuild(),
  5. Secret? rawServiceAccount,
  6. Secret? globalKeyChainPassword,
})

Implementation

Future<void> startBuildWithCertificateAndPasswordFromOnePassword({
  required String opUuid,
  required String opVaultName,
  required String keyChainName,
  required Future<void> Function() onStartBuild,
  Secret? rawServiceAccount,
  Secret? globalKeyChainPassword,
}) async {
  ImpaktfullCliEnvironment.requiresMacOs(reason: 'Building iOS/macOS apps');
  ImpaktfullCliEnvironment.requiresInstalledTools([CliTool.onePasswordCli]);

  final certFile = await onePasswordPlugin.downloadDistributionCertificate(
    opUuid: opUuid,
    rawServiceAccount: rawServiceAccount,
  );
  final certPassword = await onePasswordPlugin.getCertificatePassword(
    vaultName: opVaultName,
    opUuid: opUuid,
    rawServiceAccount: rawServiceAccount,
  );

  await startBuildWithCertificateAndPassword(
    keyChainName: keyChainName,
    certFile: certFile,
    certPassword: certPassword,
    onStartBuild: onStartBuild,
    globalKeyChainPassword: globalKeyChainPassword,
  );
}