Summary
src/platforms/ios/runner-xctestrun.ts still uses regex-based plist/XML extraction in the fallback path for reading:
ProductPaths
DependentProductPaths
TestHostPath
TestBundlePath
UITargetAppPath
We recently added src/platforms/ios/xml.ts and already use it in the iOS perf path and plist fallback path. The remaining regex parsing in runner-xctestrun.ts should be moved to the same shared helper so we stop maintaining multiple XML/plist parsing approaches.
Why
- Reduce duplicated XML parsing logic across iOS platform code.
- Remove brittle regex parsing for plist/XML structures.
- Keep the shared XML handling centered in one small helper.
- Make future parsing fixes apply consistently across perf, plist, and xctestrun code paths.
Scope
- Replace
extractPlistStringValues and extractPlistArrayStringValues in src/platforms/ios/runner-xctestrun.ts with traversal built on src/platforms/ios/xml.ts.
- Preserve the current best-effort fallback behavior.
- Keep the change scoped to the runner/xctestrun path.
- Add or update focused tests around fallback extraction behavior.
Notes
This is intentionally separate from PR #358 so the iOS device perf work stays focused.
Summary
src/platforms/ios/runner-xctestrun.tsstill uses regex-based plist/XML extraction in the fallback path for reading:ProductPathsDependentProductPathsTestHostPathTestBundlePathUITargetAppPathWe recently added
src/platforms/ios/xml.tsand already use it in the iOS perf path and plist fallback path. The remaining regex parsing inrunner-xctestrun.tsshould be moved to the same shared helper so we stop maintaining multiple XML/plist parsing approaches.Why
Scope
extractPlistStringValuesandextractPlistArrayStringValuesinsrc/platforms/ios/runner-xctestrun.tswith traversal built onsrc/platforms/ios/xml.ts.Notes
This is intentionally separate from PR #358 so the iOS device perf work stays focused.