Handle updated error message when iOS device is locked (#108057)

This commit is contained in:
Jenn Magder 2022-07-26 15:33:07 -07:00 committed by GitHub
parent 201be6bdf5
commit 4dc1bd40d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 2 deletions

View File

@ -22,6 +22,7 @@ import 'iproxy.dart';
const String noProvisioningProfileErrorOne = 'Error 0xe8008015';
const String noProvisioningProfileErrorTwo = 'Error 0xe8000067';
const String deviceLockedError = 'e80000e2';
const String deviceLockedErrorMessage = 'the device was not, or could not be, unlocked';
const String unknownAppLaunchError = 'Error 0xe8000022';
class IOSDeploy {
@ -520,7 +521,7 @@ String _monitorIOSDeployFailure(String stdout, Logger logger) {
logger.printError(noProvisioningProfileInstruction, emphasis: true);
// Launch issues.
} else if (stdout.contains(deviceLockedError)) {
} else if (stdout.contains(deviceLockedError) || stdout.contains(deviceLockedErrorMessage)) {
logger.printError('''
Your device is locked. Unlock your device first before running.

View File

@ -258,7 +258,7 @@ void main () {
expect(logger.errorText, contains('No Provisioning Profile was found'));
});
testWithoutContext('device locked', () async {
testWithoutContext('device locked code', () async {
final FakeProcessManager processManager = FakeProcessManager.list(<FakeCommand>[
const FakeCommand(
command: <String>['ios-deploy'],
@ -273,6 +273,21 @@ void main () {
expect(logger.errorText, contains('Your device is locked.'));
});
testWithoutContext('device locked message', () async {
final FakeProcessManager processManager = FakeProcessManager.list(<FakeCommand>[
const FakeCommand(
command: <String>['ios-deploy'],
stdout: '[ +95 ms] error: The operation couldnt be completed. Unable to launch io.flutter.examples.gallery because the device was not, or could not be, unlocked.',
),
]);
final IOSDeployDebugger iosDeployDebugger = IOSDeployDebugger.test(
processManager: processManager,
logger: logger,
);
await iosDeployDebugger.launchAndAttach();
expect(logger.errorText, contains('Your device is locked.'));
});
testWithoutContext('unknown app launch error', () async {
final FakeProcessManager processManager = FakeProcessManager.list(<FakeCommand>[
const FakeCommand(