waitAndCheckNoratyState function

Future<bool> waitAndCheckNoratyState(
  1. String notaryOutput,
  2. String dmg,
  3. String notaryProfile,
  4. String noratyId,
  5. File logFile,
)

no-doc

Implementation

Future<bool> waitAndCheckNoratyState(
  String notaryOutput,
  String dmg,
  String notaryProfile,
  String noratyId,
  File logFile,
) async {
  bool success = false;
  do {
    await Future.delayed(const Duration(seconds: 30));

    print('Checking for the notary result...');
    Process.runSync('xcrun', [
      'notarytool',
      'log',
      noratyId,
      '--keychain-profile',
      notaryProfile,
      logFile.path,
    ]);

    if (!logFile.existsSync()) {
      print('Still in processing. Waiting...');
      continue;
    }

    final json = logFile.readAsStringSync();
    final decoded = jsonDecode(json);
    if (decoded['status'] == 'Accepted') {
      success = true;
      print('Notarized');
    } else {
      print('Notarize error with message: ${decoded['statusSummary']}');
      print('Look at ${logFile.path} for more details');
    }

    break;
  } while (true);

  return success;
}