Skip to content

Add an injectable Apple interactor transport seam for direct providers #1297

Description

@thymikee

Problem

Direct iOS providers such as Limrun currently need a provider-specific interactor because the Apple interactor is coupled to local XCTest runner and simctl execution. Android already has the desired shape: providers supply an AndroidAdbProvider transport and reuse the shared Android interactor.

Scope

Introduce a provider-neutral Apple runner/interaction transport seam that lets a remote provider supply the primitives needed by the shared Apple interaction stack. Keep local XCTest and simctl behavior unchanged behind the default implementation.

Do not move Limrun-specific SDK calls, asset handling, or session lifecycle into core. The target is reusable interaction composition for future providers such as Revyl.

Acceptance criteria

  • Provider-owned iOS sessions can reuse the shared selector, tap, fill, scroll, snapshot, and response-guarantee paths where the provider exposes equivalent primitives.
  • Local iOS/macOS behavior and runner ownership remain unchanged.
  • The seam remains provider-neutral and does not import Limrun SDK code into Apple core.
  • Contract and provider-integration tests cover the provider-backed path.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions