本文将会介绍如何正确的配置 Curosr/VSCode,以便于在其中进行 iOS 开发。设置完成后,你将可以:
- 在 Cursor/VSCode 中开发 iOS 应用,脱离臃肿缓慢的 Xcode,获得好心情好脾气
- 使用领先的 AI 编程功能,提高开发效率,不再做「代码仙人」。
- 使用热加载,即便不用 Xcode 也可以实时预览 UI 变化(甚至比 Xcode 更好用)
- 合理设置 Xcode 与 Cursor/VSCode 的功能,让你的开发更加高效
Cursor 与 VSCode 的配置方法基本一致,这里以 Cursor 为例。
为什么要用 Cursor/VSCode 开发 iOS 应用?
Xcode 的罪行罄竹难书:缺失 AI 功能、预览卡顿、布局臃肿。大部分开发者每天都在抱怨 Xcode 中艰难的开发,为了每个人的心理健康和开发效率,强烈推荐使用 Cursor/VSCode 进行 iOS 开发。不过目前而言, Cursor 在交互逻辑和 AI 模型上比 VSCode 更加强大。
配置 iOS 开发环境
可能很多朋友尝试过配置,但会遇到编辑器对自己写的方法报错,提示找不到方法(
Cannot find '***' in scope SourceKit
),这个问题直接看步骤 3 。
1. 安装 Swift、CodeLLDB 插件
Swift 插件提供了 Swift 语言的基本支持, CodeLLDB 插件提供了调试功能。
2. 安装 SweetPad 插件
可用于配置在编辑器中代码格式化、调试等功能,自行探索配置。
事实上大部分配置都可以通过SweetPad完成,但是也有失败的情况,所以下面具体介绍详细的配置方法。
3. 配置 Swift LSP 能够正确识别项目中的代码
经过上面的步骤,如果你发现编辑器还是报错,很多地方提示:Cannot find '***' in scope SourceKit
。这是因为 swift 的 sourcekit-lsp 没有把你的项目文件加入到索引中,所以编辑器找不到你的方法。可以通过下面的方法解决这个问题:
用 Xcode-Build-Server 配置项目
首先安装
brew install xcode-build-server
然后在项目根目录下根据你的项目文件类型执行对应的命令 :
xcode-build-server config -workspace *.xcworkspace -scheme <XXX>
xcode-build-server config -project *.xcodeproj -scheme <XXX>
例如你用的是 exampleProject.xcodeproj
:
xcode-build-server config -project exampleProject.xcodeproj -scheme exampleProject
重新启动编辑器,即可开始享受用 Cursor/VSCode 开发 iOS 项目,赶快试试丝滑的 AI 开发体验吧!
设置热加载
使用 Cursor/VSCode 开发 iOS 项目的一个问题就是无法在使用 Xcode 的预览功能,导致 UI 调试效率低下。然而我们可以通过热加载来解决这个问题,实时预览 UI 变化,体验甚至比 Xcode 的更加好用。
设置热加载的方法有很多,介绍下我的设置:
- Xcode 中添加
Inject
package - 打开项目对应 Target 的设置 -> Build Settings -> 搜索
Other Linker Flags
,分别添加-Xlinker
和-interposable
。 - 下载 InjectionIII 最新版。
- 打开 InjectionIII,它会在右上角菜单栏中显示一个小图标,选择项目的目录,再次点击小图标,选择
Prepare Project
,为项目中所有的 SwiftUI 文件添加注入代码。Prepare Project
会给所有的 View 添加.enableInjection()
方法和@ObserveInjection var forceRedraw
,如果不想一次性给所有的 View 添加,可以在需要的 View 中手动添加。 - 在 Xcode 中编译运行项目, console 会显示以下信息:
💉 InjectionIII connected ...
💉 Watching files under the directory ...
- 在 Cursor/VSCode 中打开项目,修改 SwiftUI 文件,保存后即可看到 UI 实时更新。如果没有实时更新,可以看看 console 的报错信息调试。
目前体验下来这套方法非常好用, UI 实时更新,不用每次都重新编译运行项目,也不用等 Preview 加载,大大提高了开发效率。
如有问题或想了解更多关于热加载的内容可以参考 Inject 的文档。
其它设置
设置代码格式化
用 SweetPad 插件安装对应的格式化插件(例如:swift-format
)即可。
如何让 Xcode 和 Cursor/VSCode 文件结构保持一致?
Xcode 自有以 Group 为组织方法的文件结构,在 Cursor/VSCode 中不通用,在 Cursor/VSCode 中创建文件 / 文件夹会在 Xcode 中无法识别。
要解决这个问题,只需要把 Xcode 的所有 Group
转变成 Folder
,这样在 Cursor/VSCode 中创建的文件 / 文件夹就会在 Xcode 中显示,反之亦然。转变方法:在 Xcode 中选中 Group
,右键选择 Convert to Folder
即可。
热加载偶尔失败
有时候因为 CoreData 数据变动、 packages 更新或者文件目录变动等原因,热加载会失败,一般来说重新打开 InjectIII,需要重新编译运行项目即可。
总结
希望这些设置能帮助你提高开发效率,享受更流畅的编程体验。如果你有任何问题或建议,欢迎在评论区留言。祝你开发顺利,代码如行云流水!