VS Code 和 Xcode 可以同时打开同一个 iOS 工程。装上免费插件快蝎(KXApp)后,VS Code 直接用你的 .xcodeproj / .xcworkspace,不转换、不复制:编译缓存两边共用,在一边构建过,另一边不用重新编译;在 Xcode 里改了 Scheme 或工程设置,VS Code 会自动刷新。日常写代码、运行、调试放在 VS Code,需要 Interface Builder、Instruments、归档上传时切到 Xcode 即可。这篇讲两边哪些东西互通、怎么切换、新建文件和版本管理要注意什么,截至 2026 年 10 月,适用 Xcode 16 及以上。
还不确定 VS Code 能做到哪些事的,先看VS Code 开发 iOS 应用可行吗?。
两边哪些东西是共用的
| 内容 | 是否互通 | 说明 |
|---|---|---|
| 工程文件(.xcodeproj / .xcworkspace) | 同一份 | VS Code 不生成自己的工程,同事继续用 Xcode 不受影响 |
| 编译缓存 | 共用 | 在 VS Code 里构建过,切到 Xcode 运行不用从头编译,反过来也一样 |
| 代码索引 | 共用 | 跳转定义、查找引用用的是同一份索引 |
| Scheme 和构建配置 | 同一份 | 在 Xcode 里新建或修改 Scheme,VS Code 的列表自动更新 |
| 当前选中的 Scheme、运行目标 | 各自记 | VS Code 记住自己的选择,不跟随 Xcode 工具栏 |
| 工程设置、Info.plist、资源目录 | 同一份文件 | 在任一边修改并保存,另一边读到的是新内容 |
| 签名设置、Apple ID | 用 Xcode 的 | 账号在 Xcode「设置 › 账户」登录,VS Code 构建时直接使用 |
什么时候切到 Xcode
| 要做的事 | 在哪里做 |
|---|---|
| 写代码、代码补全、跳转 | VS Code |
| 构建、运行到模拟器或 iPhone、断点调试 | VS Code(⌘R) |
| 单元测试、UI 测试 | VS Code 测试资源管理器 |
| 改 Info.plist、App 图标、多语言、Build Settings | VS Code 可视化编辑器,或 Xcode |
| Storyboard / XIB 可视化布局 | Xcode Interface Builder |
| SwiftUI 预览画布 | Xcode |
| 性能分析(Time Profiler、Allocations 等) | Xcode Instruments |
| 归档、上传 App Store / TestFlight | Xcode Product › Archive、Organizer |
| 编辑 Scheme(勾选测试 target、环境变量等) | Xcode 的 Scheme 编辑器 |
切换时不需要关掉另一边。在 Xcode 里做完再回到 VS Code,按 ⌘R 继续即可。

同时编辑同一个文件时
- 源代码:两边都是普通文本编辑器的行为。在一边保存后,另一边会读到磁盘上的新内容;两边都有未保存的修改时,以后保存的一方为准,注意不要同时改同一个文件。
- Info.plist 等属性列表:VS Code 里打开着的属性列表编辑器,会在 Xcode 保存后自动载入新内容。
- 工程设置:在 Xcode 里改了 target、Scheme 或 Build Settings,VS Code 的 Xcode 工程视图会自动刷新。
- 构建:不要在两边同时构建同一个工程,等一边构建完再在另一边操作。
新建文件要注意
快蝎插件不会把新建的文件自动加入工程。新文件能否参与编译,取决于工程里这个目录的组织方式:
| 目录在 Xcode 里的样子 | 新文件 |
|---|---|
| 文件夹(Xcode 16 起新建工程的默认方式,图标是蓝色文件夹) | 放进文件夹就自动参与编译,在 VS Code 里新建即可 |
| 分组(旧工程常见,图标是黄色文件夹) | 要在 Xcode 里把文件加入对应的 target 才会编译 |
用 Claude Code、Copilot 等 AI 工具生成新文件时也是同样的规则。旧工程可以在 Xcode 里把分组转换成文件夹(右键分组 › Convert to Folder),之后新文件就不用再手动添加。
版本管理
- 插件第一次打开工程时,会在打开的文件夹根目录写一个
buildServer.json,代码补全要用它。它和本机路径有关,建议加进.gitignore。 - 插件不会在工程里生成其他文件,
.xcodeproj只在你通过可视化编辑器修改工程设置或资源时才会变化,写法和 Xcode 一致,提交时的 diff 和在 Xcode 里改的一样。 .vscode/launch.json(如果你写了)可以提交,团队成员共用调试配置。
常见问题
Xcode 需要一直开着吗?
不需要。Xcode 只要装好、打开过一次就行。VS Code 构建、运行、调试时不需要 Xcode 窗口,但同时开着也没问题。
在 VS Code 里构建过,切到 Xcode 为什么不用重新编译?
两边用的是同一份编译缓存。只要 Scheme、构建配置和运行目标相同,Xcode 会直接复用已有的编译结果。
在 VS Code 里新建的 Swift 文件编译时找不到怎么办?
看这个目录在 Xcode 里是文件夹还是分组。分组方式要在 Xcode 里把文件加进 target;文件夹方式会自动包含。
团队里有人用 Xcode、有人用 VS Code,会互相影响吗?
不会。工程文件是同一份,VS Code 这边不会生成或改写额外的工程文件;只需要把 buildServer.json 加进 .gitignore。