在 Cursor 打造高效 iOS 开发环境: AI 编程 + 实时预览完整指南

本文将会介绍如何正确的配置 Curosr/VSCode,以便于在其中进行 iOS 开发。设置完成后,你将可以:

Cursor 与 VSCode 的配置方法基本一致,这里以 Cursor 为例。

为什么要用 Cursor/VSCode 开发 iOS 应用?

Xcode 的罪行罄竹难书:缺失 AI 功能、预览卡顿、布局臃肿。大部分开发者每天都在抱怨 Xcode 中艰难的开发,为了每个人的心理健康和开发效率,强烈推荐使用 Cursor/VSCode 进行 iOS 开发。不过目前而言, Cursor 在交互逻辑和 AI 模型上比 VSCode 更加强大。

配置 iOS 开发环境

可能很多朋友尝试过配置,但会遇到编辑器对自己写的方法报错,提示找不到方法(Cannot find '***' in scope SourceKit),这个问题直接看步骤 3 。

1. 安装 SwiftCodeLLDB 插件

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 的更加好用。

设置热加载的方法有很多,介绍下我的设置:

  1. Xcode 中添加 Inject package
  2. 打开项目对应 Target 的设置 -> Build Settings -> 搜索 Other Linker Flags,分别添加 -Xlinker-interposable
  3. 下载 InjectionIII 最新版。
  4. 打开 InjectionIII,它会在右上角菜单栏中显示一个小图标,选择项目的目录,再次点击小图标,选择 Prepare Project,为项目中所有的 SwiftUI 文件添加注入代码。

    Prepare Project 会给所有的 View 添加 .enableInjection() 方法和 @ObserveInjection var forceRedraw,如果不想一次性给所有的 View 添加,可以在需要的 View 中手动添加。

  5. 在 Xcode 中编译运行项目, console 会显示以下信息:
💉 InjectionIII connected ...
💉 Watching files under the directory ...
  1. 在 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,需要重新编译运行项目即可。

总结

希望这些设置能帮助你提高开发效率,享受更流畅的编程体验。如果你有任何问题或建议,欢迎在评论区留言。祝你开发顺利,代码如行云流水!