Files
WerkoutIOS/docs/step12_hardware_disconnect_pass.md

2.4 KiB
Raw Blame History

Step 12 Hardware Disconnect/Reconnect Pass

Date

  • 2026-02-11 (UTC timestamp used during check: 2026-02-11T18:45:42Z)

Coverage Attempted

  • Device inventory:
    • xcrun xcdevice list
  • iOS destination eligibility:
    • xcodebuild -project iphone/Werkout_ios.xcodeproj -scheme 'Werkout_ios' -showdestinations
  • watchOS destination eligibility:
    • xcodebuild -project iphone/Werkout_ios.xcodeproj -scheme 'Werkout_watch Watch App' -showdestinations

Findings

  1. Hardware watch pass could not be executed from this environment.
    • Evidence:
      • watch scheme showed simulator destinations only under available destinations.
      • the only physical watch destination was ineligible:
        • Hollies Apple Watch with error indicating watchOS version mismatch/unknown against deployment target watchOS 9.4.
  2. Physical iOS devices are present/eligible.
    • Evidence:
      • available iOS hardware destinations included:
        • Gary Tartts iPad
        • ihollieb
        • Peeeeeeeeellll
  3. Physical watch pairing/connectivity state is the blocking dependency for true hardware disconnect/reconnect validation.

What Was Added For Immediate Re-Run

  • Hardware run script:
    • scripts/hardware/watch_disconnect_hardware_pass.sh
  • Script behavior:
    • validates eligible physical iOS + watch destinations
    • performs hardware-targeted preflight builds (CODE_SIGNING_ALLOWED=NO)
    • emits manual disconnect/reconnect checklist and pass criteria artifact

Manual Hardware Scenario (Pending Once Watch Is Eligible)

  1. Start iOS + watch apps on physical paired devices.
  2. Start workout from iOS.
  3. Break transport (Bluetooth off on iPhone or Airplane Mode on watch) for ~30s.
  4. While disconnected, trigger multiple state changes on iOS.
  5. Reconnect transport and verify watch converges to latest state without crash/replay loop.
  6. Repeat for two disconnect/reconnect cycles.

Current Status

  • Blocked on eligible physical watch destination.
  • Queue/replay behavior is covered by automated tests in SharedCore/Tests/SharedCoreWatchOSTests/BoundedFIFOQueueTests.swift, but physical transport behavior remains unverified until watch eligibility is fixed.
  • In this Codex shell, scripted destination probing/building is additionally constrained by sandboxed write restrictions to Xcode/SwiftPM cache paths; manual run on your local terminal is expected once watch hardware is eligible.