fix(ios): stop the app before clearing its state

Launch terminated and then cleared; the clear moved to construction and
left nothing stopping the app first. The container wipe deletes files a
live app still holds open, and the CI ios leg passes no app path so the
wipe is the path it takes. simctl stops it, since the clear now runs
before any automation session exists. On a device the uninstall that is
its only clear takes the running app with it.
This commit is contained in:
pj committed 2026-08-16 01:02:57 +05:30
1 parent f911079e32
commit 119877c78a
2 files changed
+31 -1

No files matched your search

+5 -1
View File
@@ -111,13 +111,17 @@ func NewDevice(ctx context.Context, options DeviceOptions) (*Driver, error) {
// Device seams: clear-state reinstalls via devicectl; the container reset and
// paste grant are simulator-only and become no-ops. The runner types
// natively, so no paste prompt is ever hit.
// natively, so no paste prompt is ever hit. Stopping the app before the
// clear is a no-op too: devicectl addresses processes by pid rather than by
// bundle, and the uninstall that is the device's only clear takes the
// running app with it, which is what a terminate here would be for.
d.reinstallApp = options.reinstallApp
if d.reinstallApp == nil {
d.reinstallApp = d.devicectlReinstall
}
d.resetContainer = d.deviceResetContainerUnsupported
d.grantPaste = func(context.Context) error { return nil }
d.terminateApp = func(context.Context) error { return nil }
d.restart = d.respawnDevice
d.processContext, d.processCancel = context.WithCancel(ctx)