Receber por email
← Voltar para o catálogo

ios-simulator-skill

29 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management. Optimized for AI agents with minimal token output.

1.1kestrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add conorluddy/ios-simulator-skill

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/ios-simulator-skill-conorluddy/svg)](https://www.skillteca.com.br/skills/ios-simulator-skill-conorluddy)

Skills relacionadas

Ver todas de Desenvolvimento →

Alerta por categoria

Receba novas skills de Desenvolvimento toda segunda

1 email curto, só com as skills novas de Desenvolvimento. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

iOS Simulator Skill

Build, test, and automate iOS applications using accessibility-driven navigation and structured data instead of pixel coordinates.

Quick Start

# 1. Check environment
bash scripts/sim_health_check.sh

# 2. Launch app
python scripts/app_launcher.py --launch com.example.app

# 3. Map screen to see elements
python scripts/screen_mapper.py

# 4. Tap button
python scripts/navigator.py --find-text "Login" --tap

# 5. Enter text
python scripts/navigator.py --find-type TextField --enter-text "user@example.com"

All scripts support --help for detailed options and --json for machine-readable output.

Navigation Strategy

Always prefer the accessibility tree over screenshots for navigation. The accessibility tree gives you element types, labels, frames, and tap targets — structured data that's cheaper and more reliable than image analysis.

Use this priority:

  1. screen_mapper.py → structured element list (5-7 lines, ~10 tokens)
  2. navigator.py --find-text/--find-type/--find-id → semantic interaction
  3. Screenshots → only for visual verification, bug reports, or visual diff

Screenshots cost 1,600–6,300 tokens depending on size. The accessibility tree costs 10–50 tokens in default mode.

29 Production Scripts

Build & Development (2 scripts)

  1. build_and_test.py - Build Xcode projects, run tests, parse results with progressive disclosure
  2. Build with live result streaming
  3. Parse errors and warnings from xcresult bundles
  4. Retrieve detailed build logs on demand
  5. Options: --project, --scheme, --clean, --test, --verbose, --json
  1. log_monitor.py - Real-time log monitoring with intelligent filtering
  2. Stream logs or capture by duration
  3. Filter by severity (error/warning/info/debug)
  4. Deduplicate repeated messages
  5. Options: --app, --severity, --follow, --duration, --output, --json

Device State (2 scripts)

  1. appearance.py - Control simulator appearance: dark mode, Dynamic Type size, and locale/region
  2. Toggle light/dark theme via xcrun simctl ui
  3. Set Dynamic Type size with friendly aliases (XS through AX5)
  4. Write locale and region defaults; optional app restart via --bundle-id
  5. RTL flagged automatically for ar/he/fa/ur/yi locales
  6. Options: --theme, --text-size, --locale, --region, --reset, --bundle-id, --udid, --json, --verbose
  1. location.py - Simulate GPS coordinates, named city presets, and GPX scenario playback
  2. Fix a coordinate with --lat/--lng or pick a city with --city
  3. Play a built-in scenario (City Run, Freeway Drive, etc.) via --gpx <scenario>
  4. Animate multi-waypoint paths with configurable speed via --waypoints and --speed
  5. Clear simulated location with --clear; list available scenarios with --list-scenarios
  6. Options: --lat, --lng, --city, --gpx, --waypoints, --speed, --clear, --list-scenarios, --udid, --json, --verbose

Navigation & Interaction (5 scripts)

  1. screen_mapper.py - Analyze current screen and list interactive elements
  2. Element type breakdown
  3. Interactive button list
  4. Text field status
  5. Options: --verbose, --hints, --json
  1. navigator.py - Find and interact with elements semantically
  2. Find by text (fuzzy matching)
  3. Find by element type
  4. Find by accessibility ID
  5. Enter text or tap elements
  6. Options: --find-text, --find-type, --find-id, --tap, --enter-text, --json
  1. gesture.py - Perform swipes, scrolls, pinches, and complex gestures
  2. Directional swipes (up/down/left/right)
  3. Multi-swipe scrolling
  4. Pinch zoom
  5. Long press
  6. Pull to refresh
  7. Options: --swipe, --scroll, --pinch, --long-press, --refresh, --json
  1. keyboard.py - Text input and hardware button control
  2. Type text (fast or slow)
  3. Special keys (return, delete, tab, space, arrows)
  4. Hardware buttons (home, lock, volume, screenshot)
  5. Key combinations
  6. Options: --type, --key, --button, --slow, --clear, --dismiss, --json
  1. app_launcher.py - App lifecycle management
  2. Launch apps by bundle ID
  3. Terminate apps
  4. Install/uninstall from .app bundles
  5. Deep link navigation
  6. List installed apps
  7. Check app state
  8. Options: --launch, --terminate, --install, --uninstall, --open-url, --list, --state, --json

Testing & Analysis (9 scripts)

  1. accessibility_audit.py - Check WCAG compliance on current screen
  2. Critical issues (missing labels, empty buttons, no alt text)
  3. Warnings (missing hints, small touch targets)
  4. Info (missing IDs, deep nesting)
  5. Options: --verbose, --output, --json
  1. visual_diff.py - Compare two screenshots for visual changes
  2. Pixel-by-pixel comparison
  3. Threshold-based pass/fail
  4. Generate diff images
  5. Options: --threshold, --output, --details, --json
  1. test_recorder.py - Automatically document test execution
  2. Capture screenshots and accessibility trees per step
  3. Generate markdown reports with timing data
  4. Options: --test-name, --output, --verbose, --json
  1. app_state_capture.py - Create comprehensive debugging snapshots
  2. Screenshot, UI hierarchy, app logs, device info
  3. Markdown summary for bug reports
  4. Options: --app-bundle-id, --output, --log-lines, --json
  1. sim_health_check.sh - Verify environment is properly configured
  2. Check macOS, Xcode, simctl, IDB, Python
  3. List available and booted simulators
  4. Verify Python packages (Pillow)
  1. model_inspector.py - Inspect Core Data and SwiftData models from project files
  2. Parse .xcdatamodeld packages (entities, attributes, relationships)
  3. Detect model versions and current active version
  4. Best-effort SwiftData @Model class extraction
  5. Raw source dump for any model on demand (--raw ModelName)
  6. Options: --project-path, --core-data-only, --swiftdata-only, --show-versions, --raw, --verbose, --json
  1. container.py - Inspect app sandbox: files, UserDefaults, and Core Data store paths
  2. List data container files at configurable depth via --ls
  3. Read files with auto-detected plist decoding via --cat (large files cached)
  4. Dump UserDefaults as key=value or JSON via --userdefaults
  5. Locate .sqlite / .sqlite-wal / .sqlite-shm stores via --core-data-path
  6. Export full container snapshot via --export
  7. Options: --ls, --cat, --userdefaults, --core-data-path, --export, --udid, --json, --verbose
  1. hang_watcher.py (HangBuster) - Record + summarise os_log hang events with progressive disclosure
  2. Session mode (HangBuster, agent-native): start a detached recorder, interact with the simulator, stop for a token-tight summary
  3. --start → returns a session ID; detached worker normalises + thresholds events on the fly
  4. --stop SESSION_ID → emits ~80–120 token L1 summary (header + top-N clusters + drill hint)
  5. --get-details SESSION_ID [--cluster N | --raw] → L2 full clusters or L3 per-event detail
  6. --list-sessions / --clear-sessions [--older-than 24h] / --diff A B (cross-session regression report)
  7. Filter pipeline: parse → normalise → threshold → bucket → cluster → aggregate → rank → format (in common/hang_pipeline.py)
  8. --budget-tokens N picks the densest level (L0/L1/L2) that fits; --terse forces L0
  9. --auto-sample captures a main-thread stack on first event per cluster (soft dependency: main_thread_sampler.py #62; graceful no-op if absent)
  10. Raw capture mode (full fidelity for jq exploration): skip the clustering pipeline, dump every matching log line verbatim to raw.ndjson
  11. --start --raw-capture [--max-size-mb 10] [--no-gzip] — spawns log stream --style ndjson
  12. Per-session size
Compartilhar X LinkedIn