From 1428a818846e306eb871a764fab2e01bad9eaa0a Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Tue, 26 Nov 2013 18:15:49 -0800 Subject: [PATCH] go ahead and kill sims before launching a new one --- lib/devices/ios/ios.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/devices/ios/ios.js b/lib/devices/ios/ios.js index 7a36c2e4d..62ea63d7a 100644 --- a/lib/devices/ios/ios.js +++ b/lib/devices/ios/ios.js @@ -632,14 +632,17 @@ IOS.prototype.setDeviceAndLaunchSimulator = function(cb) { cb(new Error(msg)); } else { - var iosDeviceString = this.getDeviceString(); - var isiPhone = iosDeviceString.toLowerCase().indexOf("ipad") === -1; + this.endSimulator(function(err) { + if (err) return cb(err); + var iosDeviceString = this.getDeviceString(); + var isiPhone = iosDeviceString.toLowerCase().indexOf("ipad") === -1; - logger.debug("Launching device: " + iosDeviceString); - var iosSimArgs = ["-SimulateDevice", iosDeviceString]; - this.iosSimProcess = spawn(iosSimPath, iosSimArgs); + logger.debug("Launching device: " + iosDeviceString); + var iosSimArgs = ["-SimulateDevice", iosDeviceString]; + this.iosSimProcess = spawn(iosSimPath, iosSimArgs); - this.setDeviceTypeInInfoPlist(isiPhone ? 1 : 2, cb); + this.setDeviceTypeInInfoPlist(isiPhone ? 1 : 2, cb); + }.bind(this)); } } }; @@ -763,7 +766,11 @@ IOS.prototype.endSimulator = function(cb) { } else { var cmd = 'killall -9 "iPhone Simulator"'; exec(cmd, { maxBuffer: 524288 }, function(err) { - cb(err); + if (err && err.message.indexOf('matching processes') === -1) { + cb(err); + } else { + cb(); + } }); } };