Xcode ui test stabilizer
Skill Xopoko/build-swift-apps/skills/xcode-ui-test-stabilizer
Swift-focused AI agent skills for iOS and macOS: build, debug, simulator, SwiftUI, Xcode, App Store workflows. Part of Plug'n Skills.
npx -y skills add Xopoko/build-swift-apps --skill xcode-ui-test-stabilizerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Create, stabilize, and run UI end-to-end tests with Xcode (XCUIApplication/xcodebuild), including environment setup, focus/input stabilization, logging/attachments, and flakiness triage. Use when adding or debugging UI automation, writing new UI tests, or making them reliable.
SKILL.md
2.4 KB, as published. Nobody here has run it
Xcode UI Test Stabilizer
Overview
Build deterministic UI end-to-end tests and debug flaky runs. Prefer stable accessibility identifiers, environment-driven setup, and explicit wait conditions. Always attach logs and screenshots on failure.
Workflow
-
Define the flow and success signals.
- Identify the UI state that proves success (accessibility identifiers, log markers, or system-visible views).
- Decide which logs to capture (app log, build log, UI test log).
-
Add or update the UI test.
- Use stable identifiers (avoid labels that can change or be localized).
- Avoid typing into complex text components when possible; prefer injecting text via test-only defaults.
- Gate test-only behavior behind env flags so production behavior is unchanged.
-
Stabilize the app for UI tests.
- Ensure the app activates and brings windows to front in UI test mode.
- Disable modal blockers or auto-approve when tests run.
- Use in-memory persistence for tests if persistent stores are fragile.
-
Run the test with the provided script or your own command.
- Use
scripts/run_ui_test.sh(from this skill) or runxcodebuild testwith-only-testing.
- Use
-
Triage failures.
- Attach logs and screenshots.
- Search logs for build/preview errors and unexpected user-stop messages.
- Iterate until the test is deterministic.
Stability checklist (quick wins)
- Use
waitForExistencefor every critical element. - Assert the app is running foreground before input.
- Avoid
typeTextfor long text; prefer env-injected defaults. - Click the window before interacting.
- Keep timeouts explicit and generous for CI machines.
- Attach logs and screenshots on failure.
References
- Read
references/ui-e2e-playbook.mdfor generic flags, focus fixes, typing workarounds, and debugging patterns.
Resources
scripts/
scripts/run_ui_test.sh— run a single UI test with optional .env loading and xcodebuild args.
references/
references/ui-e2e-playbook.md— general UI E2E playbook, flags, and troubleshooting.