
SwiftWin 让 Windows 用户无需 Mac 即可构建并在 iPhone 上运行 SwiftUI 应用
来源标题:SwiftWin – build and run SwiftUI iPhone apps from Windows, no Mac
SwiftWin 支持在 Windows PC 上编译、签名、安装并运行 SwiftUI 应用,全程无需 Mac。它通过 USB 连接真实 iPhone,以约 23fps 镜像屏幕并支持点击、拖拽和输入操作,同时提供 MCP 服务器让 Claude Code 和 Codex 直接编辑、运行和调试应用。iOS SDK 需用户用自己的 Apple ID 从 Xcode 下载。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
SwiftWin:你的 iPhone,你的 Windows PC,别的什么都不用。
在 Windows 上通过 USB 在真实 iPhone 上构建、签名、安装并运行 SwiftUI 应用,还能让 Claude Code 或 Codex 来驱动它。
下载 ·
网站 ·
首次运行 ·
Claude Code & Codex ·
更新日志
SwiftWin-demo-github.mp4
你知道这个痛点。你想做一个 iPhone 应用,手上有一台不错的 Windows PC 和一部 iPhone,而
每篇教程开头都是“首先,买一台 Mac”。SwiftWin 跳过了这一步:它用开源 Swift 工具链编译你的 SwiftUI 应用,
用你的 Apple ID 签名,安装到插在你 PC 上的 iPhone,并把手机画面实时显示在你的屏幕上,点一下就是一次点击。
Claude Code 和 Codex 通过 SwiftWin 的 MCP server 获得同样的能力:它们编辑你的应用、在手机上运行、看屏幕、点按操作并读取日志。
不需要 Mac:Windows 上的 Swift 目标平台是 arm64-apple-ios;iOS SDK 来自 Xcode,用你自己的 Apple ID 下载(绝不捆绑分发)。
你的真实 iPhone:一键通过 USB 完成构建、签名(免费 Apple ID 或付费开发者账号)、安装和启动。
可用的实时镜像:通过 USB 大约 23 fps;点击即点按,拖动即滑动,打字即输入。
可选的 AirPlay 接收器。
SwiftWin Studio:文件树、Monaco 代码编辑器、只显示你应用的日志、崩溃报告。
AI 模式:连接 Claude Code 或 OpenAI Codex,然后看着它在手机上做出的每一次点按和滑动。
AI agent 集成(MCP、Claude Code 和 Codex):build、install_run、screenshot、ui_tree、tap、swipe、
type、logs、launch_app 等等。在 Claude 桌面应用中,手机会显示在聊天窗口旁边。
Inspo:截取你手机上某个应用的屏幕,把它们转成色板、字号层级
和间距指南,供你自己的应用使用。
swiftwin doctor:针对 USB 驱动、信任、开发者模式、隧道、签名
等的 PASS/FAIL 检查清单,并给出每一项的确切修复方法。
云端发布:当你准备发布时,在 macOS GitHub Actions runner 上构建 TestFlight 版本。
可选账号:仅在云功能(TestFlight 构建、
上传项目到 GitHub)时需要 Google 或 GitHub 登录。其他所有功能无需账号即可使用。
主页
AI 模式
Inspo
上传到 GitHub
截图使用内置的模拟 iPhone(--mock)。
Windows 10 或 11,x64
一部 iPhone(iOS 17 或更新)和一根 USB 线,并开启开发者模式
(设置 → 隐私与安全性 → 开发者模式)
一个 Apple ID(免费版即可;应用 7 天后过期,需要重新运行)
Apple 的 USB 服务(iTunes)、Python 3.11+、Windows 版 Swift 6.2.4 工具链、LLVM 和
iOS SDK:SwiftWin 的“Set up this PC”会从官方来源安装所有这些(winget,以及
SDK 需要你自己的 Apple 登录)。不捆绑任何 Apple 的东西
可选:Claude Code 或 OpenAI Codex,用于 AI 功能
安装
从 Releases 页面下载 SwiftWin_<version>x64-setup.exe 并运行。它仅为你当前用户安装(无需管理员权限)。安装程序尚未代码签名,所以 Windows 可能会提示
“Windows 已保护你的电脑”:点击“更多信息”→“仍要运行”。
从开始菜单打开 SwiftWin。登录,或选择“Continue without an account”:只有云端 TestFlight 构建和上传到 GitHub 才需要账号。
当缺少某些组件时会打开“Set up this PC”:点击“Set up everything”,接受 Windows
权限提示,并在被要求时用你的 Apple ID 登录(用于 iOS SDK)。随时可以从
头像菜单重新运行,或在终端运行 swiftwin setup。
连接你的 iPhone 并按照 docs/first-run.md 操作。swiftwin doctor 会告诉你
缺了什么。
还没有手机?选择“Try with a simulated iPhone”,或运行 swiftwin --mock demo。
claude.cmd mcp add --scope user swiftwin -- "$env:LOCALAPPDATA\SwiftWin\bin\swiftwin.exe" mcp
对于 OpenAI Codex(其 MCP server 是全局的,位于 ~.codex\config.toml):
codex.cmd mcp add swiftwin -- "$env:LOCALAPPDATA\SwiftWin\bin\swiftwin.exe" mcp
启动一个新的 Claude Code 或 Codex 会话,然后比如这样问:“Use swiftwin: run my app, take a screenshot,
tap 'Tap me' three times and check the logs.” 在 Claude 桌面应用中,安装一个小型
swiftwin-phone 插件,实时 iPhone 画面就会自动在聊天窗口旁边打开;参见
first-run.md 的“Working in the Claude Code app”。
两个 agent 在调用工具前都会先询问,除非你在它们各自的设置中允许;参见
docs/security.md。SwiftWin Studio 中的 AI 模式会显示这些命令并带有复制按钮,
并在手机上实时显示 agent 的点按和滑动。
你需要 Rust(stable,MSVC 工具链)和 Node.js 20+。
cargo test --workspace # 所有 Rust 测试,针对模拟 iPhone
cargo build --release -p swiftwin-cli # swiftwin 命令行
cd app; npm ci; npm run tauri build # 桌面应用及其安装程序
安装程序位于 app\src-tauri\target\release\bundle\nsis\SwiftWin<version>_x64-setup.exe。请
从普通的 PowerShell 或 Claude 桌面应用的 Terminal 面板中安装,
不要从 Claude 应用自身启动的进程中安装(docs/open-questions.md, 23)。浏览器 UI 测试的描述位于
app/tests/ui-mock.mjs 顶部。发布和签名更新:docs/releasing.md。
没有手机也能试用:每个命令都接受 --mock(或 SWIFTWIN_MOCK=1):
cargo run -p swiftwin-cli -- --mock demo
cargo run -p swiftwin-cli -- --mock doctor
命令
领域
命令
设备
devices, info, pair, apps, install, uninstall, launch, terminate, screenshot, logs [-f], crashes
控制
tap [x y | --label], swipe, type, button, home, ui-tree, wda status|start|stop|prepare|install|serve
构建
new, build, run, sign, signing setup|status, sdk list|import|download
镜像
mirror [--airplay] [--mode auto|usb|video]
Claude
mcp(stdio MCP server)、phone(仅手机窗口)
账号
login, logout, whoami, upload
发布
release setup, release [--dry-run](通过 macOS GitHub Actions runner 构建 TestFlight)
安装配置
doctor [--fix], setup, ui(在浏览器中打开桌面 UI,用于开发)
代码结构
crates/
swiftwin-core 共享类型、错误、路径、配置
swiftwin-device Device trait、MockDevice、RealDevice(usbmuxd + lockdown + pymobiledevice3)
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。