// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import '../base/platform.dart'; import '../doctor_validator.dart'; import '../features.dart'; import '../macos/xcode.dart'; class IOSWorkflow implements Workflow { const IOSWorkflow({ required Platform platform, required FeatureFlags featureFlags, required Xcode xcode, }) : _platform = platform, _featureFlags = featureFlags, _xcode = xcode; final Platform _platform; final FeatureFlags _featureFlags; final Xcode _xcode; @override bool get appliesToHostPlatform => _featureFlags.isIOSEnabled && _platform.isMacOS; // We need xcode (+simctl) to list simulator devices, and libimobiledevice to list real devices. @override bool get canListDevices => appliesToHostPlatform && _xcode.isInstalledAndMeetsVersionCheck && _xcode.isSimctlInstalled; // We need xcode to launch simulator devices, and ios-deploy // for real devices. @override bool get canLaunchDevices => appliesToHostPlatform && _xcode.isInstalledAndMeetsVersionCheck; @override bool get canListEmulators => false; }