mirror of
https://github.com/flutter/flutter
synced 2024-10-13 19:52:53 +00:00
Add a dev mode doctor check (#11023)
This commit is contained in:
parent
3045c289ea
commit
be228eae78
|
@ -49,6 +49,8 @@ class IOSWorkflow extends DoctorValidator implements Workflow {
|
|||
|
||||
Future<String> get cocoaPodsVersionText async => (await runAsync(<String>['pod', '--version'])).processResult.stdout.trim();
|
||||
|
||||
Future<String> get macDevMode async => (await runAsync(<String>['DevToolsSecurity', '-status'])).processResult.stdout;
|
||||
|
||||
Future<bool> get _iosDeployIsInstalledAndMeetsVersionCheck async {
|
||||
if (!await hasIosDeploy)
|
||||
return false;
|
||||
|
@ -106,6 +108,14 @@ class IOSWorkflow extends DoctorValidator implements Workflow {
|
|||
'Xcode end user license agreement not signed; open Xcode or run the command \'sudo xcodebuild -license\'.'
|
||||
));
|
||||
}
|
||||
if ((await macDevMode).contains('disabled')) {
|
||||
xcodeStatus = ValidationType.partial;
|
||||
messages.add(new ValidationMessage.error(
|
||||
'Your Mac needs to enabled for developer mode before using Xcode for the first time.\n'
|
||||
'Run \'sudo DevToolsSecurity -enable\' or open Xcode'
|
||||
));
|
||||
}
|
||||
|
||||
} else {
|
||||
xcodeStatus = ValidationType.missing;
|
||||
if (xcode.xcodeSelectPath == null || xcode.xcodeSelectPath.isEmpty) {
|
||||
|
|
|
@ -96,6 +96,20 @@ void main() {
|
|||
Xcode: () => xcode,
|
||||
});
|
||||
|
||||
testUsingContext('Emits partial status when Mac dev mode was never enabled', () async {
|
||||
when(xcode.isInstalled).thenReturn(true);
|
||||
when(xcode.xcodeVersionText)
|
||||
.thenReturn('Xcode 8.2.1\nBuild version 8C1002\n');
|
||||
when(xcode.isInstalledAndMeetsVersionCheck).thenReturn(true);
|
||||
when(xcode.eulaSigned).thenReturn(true);
|
||||
final IOSWorkflowTestTarget workflow = new IOSWorkflowTestTarget(macDevMode: 'Developer mode is currently disabled.');
|
||||
final ValidationResult result = await workflow.validate();
|
||||
expect(result.type, ValidationType.partial);
|
||||
}, overrides: <Type, Generator>{
|
||||
IMobileDevice: () => iMobileDevice,
|
||||
Xcode: () => xcode,
|
||||
});
|
||||
|
||||
testUsingContext('Emits partial status when python six not installed', () async {
|
||||
when(xcode.isInstalled).thenReturn(true);
|
||||
when(xcode.xcodeVersionText)
|
||||
|
@ -256,11 +270,13 @@ class IOSWorkflowTestTarget extends IOSWorkflow {
|
|||
bool hasIDeviceInstaller: true,
|
||||
bool hasCocoaPods: true,
|
||||
String cocoaPodsVersionText: '1.2.0',
|
||||
String macDevMode: 'Developer mode is already enabled.',
|
||||
}) : hasIosDeploy = new Future<bool>.value(hasIosDeploy),
|
||||
iosDeployVersionText = new Future<String>.value(iosDeployVersionText),
|
||||
hasIDeviceInstaller = new Future<bool>.value(hasIDeviceInstaller),
|
||||
hasCocoaPods = new Future<bool>.value(hasCocoaPods),
|
||||
cocoaPodsVersionText = new Future<String>.value(cocoaPodsVersionText);
|
||||
cocoaPodsVersionText = new Future<String>.value(cocoaPodsVersionText),
|
||||
macDevMode = new Future<String>.value(macDevMode);
|
||||
|
||||
@override
|
||||
final bool hasPythonSixModule;
|
||||
|
@ -282,4 +298,7 @@ class IOSWorkflowTestTarget extends IOSWorkflow {
|
|||
|
||||
@override
|
||||
final Future<String> cocoaPodsVersionText;
|
||||
|
||||
@override
|
||||
final Future<String> macDevMode;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue