ios-simulator-skill
21 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing,…
它会碰到什么
逐条看命中(30 条严重或高危)
- 高
scripts/app_launcher.py:44exec-spawnresult = subprocess.run(cmd, capture_output=True, text=True, check=True)
- 高
scripts/app_launcher.py:70exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/app_launcher.py:88exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/app_launcher.py:106exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/app_launcher.py:124exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/app_launcher.py:139exec-spawnresult = subprocess.run(cmd, capture_output=True, text=True, check=True)
- 高
scripts/app_launcher.py:146exec-spawnconvert_result = subprocess.run(
- 高
scripts/app_launcher.py:193exec-spawnresult = subprocess.run(cmd, capture_output=True, text=True, check=True)
- 高
scripts/app_state_capture.py:62exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/app_state_capture.py:112exec-spawnresult = subprocess.run(cmd, check=False, capture_output=True, text=True, timeout=5)
- 高
scripts/app_state_capture.py:146exec-spawnresult = subprocess.run(cmd, capture_output=True, text=True, check=True)
- 高
scripts/clipboard.py:49exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/common/device_utils.py:43exec-spawnComplete command list ready for subprocess.run()
- 高
scripts/common/device_utils.py:92exec-spawnComplete command list ready for subprocess.run()
- 高
scripts/common/device_utils.py:141exec-spawnresult = subprocess.run(
- 高
scripts/common/device_utils.py:220exec-spawnresult = subprocess.run(cmd, capture_output=True, text=True, check=True)
- 高
scripts/common/device_utils.py:334exec-spawnresult = subprocess.run(cmd, capture_output=True, text=True, check=True)
- 高
scripts/common/idb_utils.py:56exec-spawnresult = subprocess.run(cmd, capture_output=True, text=True, check=True)
- 高
scripts/common/screenshot_utils.py:243exec-spawnsubprocess.run(cmd, capture_output=True, text=True, check=True)
- 高
scripts/gesture.py:147exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/gesture.py:188exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/keyboard.py:138exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/keyboard.py:169exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/keyboard.py:206exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/keyboard.py:230exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/log_monitor.py:81exec-spawnself.log_process: subprocess.Popen | None = None
- 高
scripts/log_monitor.py:255exec-spawnself.log_process = subprocess.Popen(
- 高
scripts/navigator.py:206exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/navigator.py:237exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
- 高
scripts/privacy_manager.py:81exec-spawnsubprocess.run(cmd, capture_output=True, check=True)
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
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.
21 Production Scripts
Build & Development (2 scripts)
- build_and_test.py - Build Xcode projects, run tests, parse results with progressive disclosure
- Build with live result streaming
- Parse errors and warnings from xcresult bundles
- Retrieve detailed build logs on demand
- Options:
--project,--scheme,--clean,--test,--verbose,--json
- log_monitor.py - Real-time log monitoring with intelligent filtering
- Stream logs or capture by duration
- Filter by severity (error/warning/info/debug)
- Deduplicate repeated messages
- Options:
--app,--severity,--follow,--duration,--output,--json
Navigation & Interaction (5 scripts)
- screen_mapper.py - Analyze current screen and list interactive elements
- Element type breakdown
- Interactive button list
- Text field status
- Options:
--verbose,--hints,--json
- navigator.py - Find and interact with elements semantically
- Find by text (fuzzy matching)
- Find by element type
- Find by accessibility ID
- Enter text or tap elements
- Options:
--find-text,--find-type,--find-id,--tap,--enter-text,--json
- gesture.py - Perform swipes, scrolls, pinches, and complex gestures
- Directional swipes (up/down/left/right)
- Multi-swipe scrolling
- Pinch zoom
- Long press
- Pull to refresh
- Options:
--swipe,--scroll,--pinch,--long-press,--refresh,--json
- keyboard.py - Text input and hardware button control
- Type text (fast or slow)
- Special keys (return, delete, tab, space, arrows)
- Hardware buttons (home, lock, volume, screenshot)
- Key combinations
- Options:
--type,--key,--button,--slow,--clear,--dismiss,--json
- app_launcher.py - App lifecycle management
- Launch apps by bundle ID
- Terminate apps
- Install/uninstall from .app bundles
- Deep link navigation
- List installed apps
- Check app state
- Options:
--launch,--terminate,--install,--uninstall,--open-url,--list,--state,--json
Testing & Analysis (5 scripts)
- accessibility_audit.py - Check WCAG compliance on current screen
- Critical issues (missing labels, empty buttons, no alt text)
- Warnings (missing hints, small touch targets)
- Info (missing IDs, deep nesting)
- Options:
--verbose,--output,--json
- visual_diff.py - Compare two screenshots for visual changes
- Pixel-by-pixel comparison
- Threshold-based pass/fail
- Generate diff images
- Options:
--threshold,--output,--details,--json
- test_recorder.py - Automatically document test execution
- Capture screenshots and accessibility trees per step
- Generate markdown reports with timing data
- Options:
--test-name,--output,--verbose,--json
- app_state_capture.py - Create comprehensive debugging snapshots
- Screenshot, UI hierarchy, app logs, device info
- Markdown summary for bug reports
- Options:
--app-bundle-id,--output,--log-lines,--json
- sim_health_check.sh - Verify environment is properly configured
- Check macOS, Xcode, simctl, IDB, Python
- List available and booted simulators
- Verify Python packages (Pillow)
Advanced Testing & Permissions (4 scripts)
- clipboard.py - Manage simulator clipboard for paste testing
- Copy text to clipboard
- Test paste flows without manual entry
- Options:
--copy,--test-name,--expected,--json
- status_bar.py - Override simulator status bar appearance
- Presets: clean (9:41, 100% battery), testing (11:11, 50%), low-battery (20%), airplane (offline)
- Custom time, network, battery, WiFi settings
- Options:
--preset,--time,--data-network,--battery-level,--clear,--json
- push_notification.py - Send simulated push notifications
- Simple mode (title + body + badge)
- Custom JSON payloads
- Test notification handling and deep links
- Options:
--bundle-id,--title,--body,--badge,--payload,--json
- privacy_manager.py - Grant, revoke, and reset app permissions
- 13 supported services (camera, microphone, location, contacts, photos, calendar, health, etc.)
- Batch operations (comma-separated services)
- Audit trail with test scenario tracking
- Options:
--bundle-id,--grant,--revoke,--reset,--list,--json
Device Lifecycle Management (5 scripts)
- simctl_boot.py - Boot simulators with optional readiness verification
- Boot by UDID or device name
- Wait for device ready with timeout
- Batch boot operations (--all, --type)
- Performance timing
- Options:
--udid,--name,--wait-ready,--timeout,--all,--type,--json
- simctl_shutdown.py - Gracefully shutdown simulators
- Shutdown by UDID or device name
- Optional verification of shutdown completion
- Batch shutdown operations
- Options:
--udid,--name,--verify,--timeout,--all,--type,--json
- simctl_create.py - Create simulators dynamically
- Create by device type and iOS version
- List available device types and runtimes
- Custom device naming
- Returns UDID for CI/CD integration
- Options:
--device,--runtime,--name,--list-devices,--list-runtimes,--json
- simctl_delete.py - Permanently delete simulators
- Delete by UDID or device name
- Safety confirmation by default (skip with --yes)
- Batch delete operations
- Smart deletion (--old N to keep N per device type)
- Options:
--udid,--name,--yes,--all,--type,--old,--json
- simctl_erase.py - Factory reset simulators without deletion
- Preserve device UUID (faster than delete+create)
- Erase all, by type, or booted simulators
- Optional verification
- Options:
--udid,--name,--verify,--timeout,--all,--type,--booted,--json
Common Patterns
Auto-UDID Detection: Most scripts auto-detect the booted simulator if --udid is not provided.
Device Name Resolution: Use device names (e.g., "iPhone 16 Pro") instead of UDIDs - scripts resolve automatically.
Batch Operations: Many scripts support --all for all simulators or --type iPhone for device type filtering.
Output Formats: Default is concise human-readable output. Use --json for machine-readable output in CI/CD.
Help: All scripts support --help for detailed options and examples.
Typical Workflow
- Verify environment:
bash scripts/sim_health_check.sh - Launch app:
python scripts/app_launcher.py --launch com.example.app - Analyze screen:
python scripts/screen_mapper.py - Interact:
python scripts/navigator.py --find-text "Button" --tap - Verify:
python scripts/accessibility_audit.py - Debug if needed:
python scripts/app_state_capture.py --app-bundle-id com.example.app
Requirements
- macOS 12+
- Xcode Command Line Tools
- Python 3
- IDB (optional, for interactive features)
Documentation
- SKILL.md (this file) - Script reference and quick start
- README.md - Installation and examples
- CLAUDE.md - Architecture and implementation details
- references/ - Deep documentation on specific topics
- examples/ - Complete automation workflows
Key Design Principles
Semantic Navigation: Find elements by meaning (text, type, ID) not pixel coordinates. Survives UI changes.
Token Efficiency: Concise default output (3-5 lines) with optional verbose and JSON modes for detailed results.
Accessibility-First: Built on standard accessibility APIs for reliability and compatibility.
Zero Configuration: Works immediately on any macOS with Xcode. No setup required.
Structured Data: Scripts output JSON or formatted text, not raw logs. Easy to parse and integrate.
Auto-Learning: Build system remembers your device preference. Configuration stored per-project.
Use these scripts directly or let Claude Code invoke them automatically when your request matches the skill description.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
skills_all/ios-simulator-skill/skill/SKILL.md同一个仓库里的其他技能
同名技能的其他版本
有 4 个不同仓库或目录里都有叫 ios-simulator-skill 的技能。它们内容并不相同,别混用:
- Microck/ordinary-claude-skills — 21 production-ready scripts for iOS app testing, building, and automation. Provides semant
- Microck/ordinary-claude-skills — 21 production-ready scripts for iOS app testing, building, and automation. Provides semant
- Microck/ordinary-claude-skills — 21 production-ready scripts for iOS app testing, building, and automation. Provides semant