AI开发:iOS转向VSCode/Cursor,告别Xcode
序
近期我在推上看到一位大佬(@junpingyi)分享了iOS应用开发方案,我跟着折腾了一下。这个方案真的相当丝滑,根据路径整理了一下,并在此分享给大家。
接下来将详细介绍如何正确配置Cursor/VSCode进行流畅的iOS开发。通过以下步骤,你将能够享受轻盈高效的开发环境,并显著提升开发效率。
为什么选择Cursor/VSCode开发iOS应用?
Xcode作为苹果官方的开发工具虽然功能强大,但存在一些不足:AI功能缺失、预览卡顿、界面布局臃肿等问题让许多开发者感到疲惫。为了改善开发体验,Cursor/VSCode成为了许多开发者的新选择。特别是Cursor,在交互逻辑和AI模型上表现出色,能够助力开发者更高效地编写代码。
二、在VSCode中配置iOS开发环境
安装必要插件
1. Swift
marketplace.visualstudio.com/items?itemN…
2. CodeLLDB
marketplace.visualstudio.com/items?itemN…
3. SweetPad
marketplace.visualstudio.com/items?itemN…
使用Xcode-Build-Server编译项目
首先安装 xcode-build-server 编译项目
brew install xcode-build-server
然后在项目根目录下根据你的项目文件类型执行对应的命令 :
xcode-build-server config -workspace *.xcworkspace -scheme
xcode-build-server config -project *.xcodeproj -scheme
例如你用的是 xxxProject.xcodeproj:
xcode-build-server config -project xxxProject.xcodeproj -scheme xxx
三、设置热加载
为了解决Cursor/VSCode中无法直接使用Xcode预览功能的问题,我们可以设置热加载来实时预览UI变化。以下是设置步骤:
当然热更新还有其他方案,自己按需配合使用即可。
在Xcode中添加Inject package。
github.com/krzysztofza…
打开项目对应Target的设置,搜索Other Linker Flags,并添加-Xlinker和-interposable。
下载并安装InjectionIII最新版。
github.com/johnno1962/…
使用InjectionIII为项目中的SwiftUI文件添加注入代码。可以选择为所有View添加,也可以手动添加。
在Xcode中编译运行项目,当console显示InjectionIII连接成功信息后,即可在Cursor/VSCode中修改SwiftUI文件并实时预览UI变化。
四、常见问题及解决方案
Swift LSP无法正确识别项目代码?
这个地方我卡了好久。怎么都加载不了第三方包,总是报错找不到 😭
如果编辑器报错提示找不到某些方法或变量,可能是因为swift的sourcekit-lsp没有将项目文件加入索引。可以尝试重新构建项目索引或重启编辑器。
代码格式化设置?
首次配置一下默认格式化就行了,当然你也可以选择其他插件来做格式化
使用SweetPad插件安装对应的格式化插件(如swift-format)即可实现代码自动格式化。
Xcode和Cursor/VSCode文件结构不一致?
这里最好保持一致。不然 vscode 里新建文件,项目里找不到
将Xcode中的所有Group转变成Folder,这样在Cursor/VSCode中创建的文件/文件夹就会在Xcode中显示。
五、目前使用槽点
热更新能力有限,需要频繁重启。特别是社会布局结构的时候,可以试试其他热更新方案
有一定的代码入侵性,上架前需要移除注入代码。
以上的问题都存在于热更新,希望有更好的方法可以替代,这样就完美了。最后一句不用来回切换 xocde 与 cursor 真的太棒了,特别是在入门新手的 iOS 开发中,我现在基本很少打开 xcode 了,除了提交打包,与一些静态资源的配置
六、总结
通过正确配置Cursor/VSCode,你可以告别Xcode的沉重,享受轻盈高效的开发环境。配合AI编程功能和热加载技术,你将能够显著提升开发效率,让编程变得更加智能与便捷。
尽管目前还存在一些槽点,但相信随着技术的不断进步,这些问题将得到更好的解决。现在就开始尝试在Cursor/VSCode中开发iOS应用吧!
七:参考
1、 在 Cursor 打造高效 iOS 开发环境: AI 编程 + 实时预览完整指南 - JUNPING
2、 使用 Visual Studio Code 进行 Swift 开发