pub struct SessionAppLifecycleRequest {
pub session_id: String,
pub args: Vec<String>,
pub env: BTreeMap<String, String>,
pub wait_for_foreground_ms: Option<u64>,
pub wait_for_interactive_ms: Option<u64>,
}Expand description
Request body shared by POST /session/terminate-app and
POST /session/launch-app.
Carries launch-argument / launch-environment injection so consumers can bypass scaffolding like Expo dev-launcher server pickers that vanish on clearAppData (SDK 57 stops auto-navigating on URL scheme).
Fields§
§session_id: StringSession whose cached XCUIApplication binding will be acted on.
args: Vec<String>launchArguments passed to XCUIApplication.launch(). Empty vec
leaves whatever the runner already had cached on
entry.app.launchArguments (empty by default).
Ignored by /session/terminate-app.
env: BTreeMap<String, String>launchEnvironment passed to XCUIApplication.launch(). Empty map
leaves the runner’s cached environment untouched. Ignored by
/session/terminate-app.
wait_for_foreground_ms: Option<u64>After .launch() dispatches, poll XCUIApplication.state at
250 ms cadence until .runningForeground (or timeout). Prevents
callers from firing a subsequent terminateApp before the process
has signalled launchd ready — the root cause of
bug_type: 309 exec_terminated_before_ready .ips writes.
None = fire-and-return semantics; Some(0) = wait one
iteration then return terminal state (useful for tests).
Default: Some(15000) at the SDK layer.
wait_for_interactive_ms: Option<u64>After .runningForeground is observed (or immediately when
wait_for_foreground_ms == None), poll the a11y tree at 500 ms
cadence looking for ≥ minIdentifierCount descendants with a
non-empty accessibilityIdentifier NOT in the interactive-probe
ignore list. Fires launchAppReachedInteractive when found; on
timeout fires launchAppTimedOutBeforeInteractive. Both counters
live on SessionLifecycleCounters.
None = fire-and-return (no interactive polling). Consumer config
.smix/config.yaml interactiveProbe: { minIdentifierCount, ignore: [...] }
forwards to the runner via TEST_RUNNER_SMIX_INTERACTIVE_PROBE_JSON
at boot; defaults are minIdentifierCount: 3 and
ignore: ["SplashScreenLogo"].
Trait Implementations§
Source§impl Clone for SessionAppLifecycleRequest
impl Clone for SessionAppLifecycleRequest
Source§fn clone(&self) -> SessionAppLifecycleRequest
fn clone(&self) -> SessionAppLifecycleRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more