(udid)
| 554 | } |
| 555 | |
| 556 | function shutdownSimulatorIfNeeded(udid) { |
| 557 | try { |
| 558 | runText("xcrun", ["simctl", "shutdown", udid], { |
| 559 | timeoutMs: 180_000, |
| 560 | }); |
| 561 | return { ok: true, udid, action: "shutdown" }; |
| 562 | } catch (error) { |
| 563 | if (String(error?.message ?? error).includes("current state: Shutdown")) { |
| 564 | return { ok: true, udid, alreadyShutdown: true }; |
| 565 | } |
| 566 | throw error; |
| 567 | } |
| 568 | } |
| 569 | |
| 570 | function eraseSimulatorReliably(udid) { |
| 571 | return retrySync( |
no test coverage detected