diff --git a/lib/common/helpers.ts b/lib/common/helpers.ts index 46068b7114..df3ade61a7 100644 --- a/lib/common/helpers.ts +++ b/lib/common/helpers.ts @@ -463,11 +463,11 @@ export function getHash(str: string, options?: { algorithm?: string, encoding?: } export async function connectEventuallyUntilTimeout(factory: () => Promise, timeout: number): Promise { - return new Promise(async(resolve, reject) => { + return new Promise(async (resolve, reject) => { let lastKnownError: Error; let isResolved = false; - setTimeout(function () { + const connectionTimer = setTimeout(function () { if (!isResolved) { isResolved = true; reject(lastKnownError); @@ -484,13 +484,18 @@ export async function connectEventuallyUntilTimeout(factory: () => Promise { - socket.removeListener("error", tryConnectAfterTimeout); - isResolved = true; - resolve(socket); - }); - socket.on("error", tryConnectAfterTimeout); + try { + const socket = await factory(); + socket.on("connect", () => { + socket.removeListener("error", tryConnectAfterTimeout); + isResolved = true; + clearTimeout(connectionTimer); + resolve(socket); + }); + socket.on("error", tryConnectAfterTimeout); + } catch (e) { + lastKnownError = e; + } } await tryConnect(); diff --git a/lib/services/ios-debug-service.ts b/lib/services/ios-debug-service.ts index 86ab0644e3..303ac16c97 100644 --- a/lib/services/ios-debug-service.ts +++ b/lib/services/ios-debug-service.ts @@ -142,6 +142,7 @@ export class IOSDebugService extends DebugServiceBase implements IPlatformDebugS } this._lldbProcess.stderr.pipe(process.stderr); this._lldbProcess.stdin.write("process continue\n"); + this._lldbProcess.stdin.write("detach\n"); return this.wireDebuggerClient(debugData, debugOptions); } diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 2f7261e7eb..125e626888 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -3258,9 +3258,9 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "ios-device-lib": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/ios-device-lib/-/ios-device-lib-0.4.14.tgz", - "integrity": "sha512-e0srWzIoMqaHyLOjYQSlLzYF8uVE8oYOvWBaBMons6OcCNg8rTQaGuu5368x8dKKqTUtLkNkU4Husa7qAD1DXQ==", + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/ios-device-lib/-/ios-device-lib-0.4.15.tgz", + "integrity": "sha512-OzyKbLxrmpTB87hPelpAsvtmPYeucSP53IaLb2QHaIDW6ZqHjJV4XCHMpwtLGvLOcMNb2WVUHxoirQ+rwC21dQ==", "requires": { "bufferpack": "0.0.6", "node-uuid": "1.4.7" diff --git a/package.json b/package.json index c4cdfa412f..9be1234a8f 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "gaze": "1.1.0", "iconv-lite": "0.4.11", "inquirer": "0.9.0", - "ios-device-lib": "0.4.14", + "ios-device-lib": "0.4.15", "ios-mobileprovision-finder": "1.0.10", "ios-sim-portable": "4.0.2", "istextorbinary": "2.2.1",