doctor method
Validates the application's signing configuration.
Implementation
Future<void> doctor() async {
LoggerService.section('Signing Doctor');
final keyProperties = File('android/key.properties');
if (!keyProperties.existsSync()) {
LoggerService.error('android/key.properties missing');
return;
}
LoggerService.success('key.properties found');
final content = await keyProperties.readAsString();
final storeFileMatch = RegExp(r'storeFile=(.*)').firstMatch(content);
if (storeFileMatch == null) {
LoggerService.error('storeFile missing in key.properties');
return;
}
final storeFile = storeFileMatch.group(1)!.trim();
final keystorePath = 'android/app/$storeFile';
if (!File(keystorePath).existsSync()) {
LoggerService.error('Keystore missing: $keystorePath');
return;
}
LoggerService.success('Keystore found');
final gradleKts = File('android/app/build.gradle.kts');
final gradleGroovy = File('android/app/build.gradle');
if (!gradleKts.existsSync() && !gradleGroovy.existsSync()) {
LoggerService.error('Gradle build file not found');
return;
}
LoggerService.success('Gradle file found');
LoggerService.blank();
LoggerService.success('Signing setup looks valid.');
}