anchor.diff:  
     IOSSimulator._(String id) : super._(id);
   
  -  static String _getRunningSimulatorID([IOSSimulator mockIOS]) {
  +  static _IOSSimulatorInfo _getRunningSimulatorInfo([IOSSimulator mockIOS]) {
       String xcrunPath = mockIOS != null ? mockIOS.xcrunPath : _xcrunPath;
       String output = runCheckedSync([xcrunPath, 'simctl', 'list', 'devices']);
   
       Match match;
  -    Iterable<Match> matches = new RegExp(r'[^\(]+\(([^\)]+)\) \(Booted\)',
  -        multiLine: true).allMatches(output);
  +    /// iPhone 6s Plus (8AC808E1-6BAE-4153-BBC5-77F83814D414) (Booted)
  +    Iterable<Match> matches = new RegExp(
  +      r'[\W]*(.*) \(([^\)]+)\) \(Booted\)',
  +      multiLine: true
  +    ).allMatches(output);
       if (matches.length > 1) {
         // More than one simulator is listed as booted, which is not allowed but
         // sometimes happens erroneously.  Kill them all because we don't know
         // which one is actually running.
         logging.warning('Multiple running simulators were detected, '
             'which is not supposed to happen.');
  -      for (Match m in matches) {
  -        if (m.groupCount > 0) {
  -          logging.warning('Killing simulator ${m.group(1)}');
  -          runSync([xcrunPath, 'simctl', 'shutdown', m.group(1)]);
  +      for (Match match in matches) {
  +        if (match.groupCount > 0) {
  +          // TODO: We're killing simulator devices inside an accessor method;
  +          // we probably shouldn't be changing state here.
  +          logging.warning('Killing simulator ${match.group(1)}');
  +          runSync([xcrunPath, 'simctl', 'shutdown', match.group(2)]);
           }
         }
       } else if (matches.length == 1) {
  
positive.code: 
    @override
    bool installApp(ApplicationPackage app) {
      if (!isConnected()) {
        return false;
      }
      try {
        if (id == defaultDeviceID) {
          runCheckedSync([xcrunPath, 'simctl', 'install', 'booted', app.localPath]);
  
negative.code:       ApplicationPackage app, String localFile, String targetFile) async {
      if (Platform.isMacOS) {
        String simulatorHomeDirectory = _getSimulatorAppHomeDirectory(app);
        runCheckedSync(['cp', localFile, path.join(simulatorHomeDirectory, targetFile)]);
        return true;
      }
      return false;
  