Goal
Use Xcode's official devicectl for physical iOS devices and remove ios-deploy completely.
Scope
- Discover available paired devices from structured
devicectl output.
- Select
--device-id exactly; auto-select only when unambiguous and report actionable errors otherwise.
- Install the signed
.app and launch its bundle identifier.
- Define
crossbundle run ios --device modes consistently:
- default: attach the application console;
--detach: launch and return immediately;
--debug: start and attach an interactive LLDB session; conflict with --detach.
- Preserve the existing
simctl path for Simulator runs.
- Detect unsupported Xcode versions with a clear remediation message.
- Update
doctor, tests, and documentation to require Xcode's device tooling only.
- Remove all
ios-deploy commands, checks, documentation, and fallback behavior.
Keep command construction and output parsing in crossbundle-tools; the CLI should expose Crossbundle concepts rather than raw devicectl flags. Prefer machine-readable output and typed parsing over human-output matching.
Done when
crossbundle run ios --device can select, install, and launch on a modern physical device with predictable attached, detached, and debug behavior; failures identify the device or Xcode action required; Simulator behavior is unchanged; and the repository contains no ios-deploy integration or setup requirement.
Goal
Use Xcode's official
devicectlfor physical iOS devices and removeios-deploycompletely.Scope
devicectloutput.--device-idexactly; auto-select only when unambiguous and report actionable errors otherwise..appand launch its bundle identifier.crossbundle run ios --devicemodes consistently:--detach: launch and return immediately;--debug: start and attach an interactive LLDB session; conflict with--detach.simctlpath for Simulator runs.doctor, tests, and documentation to require Xcode's device tooling only.ios-deploycommands, checks, documentation, and fallback behavior.Keep command construction and output parsing in
crossbundle-tools; the CLI should expose Crossbundle concepts rather than rawdevicectlflags. Prefer machine-readable output and typed parsing over human-output matching.Done when
crossbundle run ios --devicecan select, install, and launch on a modern physical device with predictable attached, detached, and debug behavior; failures identify the device or Xcode action required; Simulator behavior is unchanged; and the repository contains noios-deployintegration or setup requirement.