VSCode 上的 swift 开发配置

news/2024/11/24 13:27:42/

安装Xcode和VsCode

在下列网址下载安装即可
VsCode: https://code.visualstudio.com/
Xcode:https://developer.apple.com/xcode/resources/ 或者apptore
打开xcode要求安装的东西都允许安装一下

启用 Swift 语言支持

确保你已经安装了 Xcode 和 VSCode。这是开始运行的最简单方法,因为sourcekit-lsp 它预捆绑了 Xcode。打开终端并运行:

$ xcrun sourcekit-lsp

假设您没有看到任何输出,这是正常的,意味着它按预期工作。

与您可能在其他地方阅读的内容相反,您根本不需要编辑扩展的源代码。

配置扩展

在vscode插件市场 搜索并安装swift扩展:
在这里插入图片描述

配置识别swift包

将此 JSON 插入到settings.json中。您可能需要根据您安装的当前版本更新x86_64-apple-ios13.6-simulator行。

“sourcekit-lsp.serverArguments”:[-Xswiftc”,
“-SDK”,
“-Xswiftc”,
“/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk”,-Xswiftc”,
“-目标”,
“-Xswiftc”,
“x86_64-apple-ios13.6-模拟器”,
],

这适用于引用 UIKit 等 iOS 框架的 Swift 包。

添加“app”目标支持
到目前为止,我们添加了 iOS 支持,但仅限于 Swift 包。如果您想处理典型的应用程序目标怎么办。尝试打开根文件夹会出现此错误:

建立Swift 包清单文件文件

SourceKit-LSP 正在寻找Swift 包清单文件文件
如果你想在 iOS 应用程序上工作而不是在 Swift 包上工作怎么办?SourceKit-LSP 总是在根文件夹中寻找 package.json 假设它总是处理 Swift 包。iOS 应用程序不是 Swift 包,因此我们需要通过添加虚拟Package.swift 来欺骗 SourceKit-LSP。将此文件添加到项目的根目录(与 .xcodeproj 相同级别),比如我新建一个项目叫TestSwift,那么这个文件里面可以这样写:

// swift-tools-version:5.2
import PackageDescription
let packageName = "TestSwift"// <-- Change this to yourslet package = Package(name: "TestSwift",// platforms: [.iOS("9.0")],products: [.library(name: packageName, targets: ["TestSwift"])],targets: [.target(name: "TestSwift", path: "TestSwift")])

仔细检查文件的位置
最后一次重启 VSCode,瞧!正确的 UIKit 自动完成

需要注意这样配置后cocopods依赖的库 vscode链接不上,没有代码提示等

参考文章:
https://medium.com/swlh/ios-development-on-vscode-27be37293fe1


http://www.ppmy.cn/news/53715.html

相关文章

北京 Meetup 预告 | 内含六个话题,满满干货,期待见面!

在春之末尾&#xff0c;夏之开始的5月&#xff0c;响应社区小伙伴们的呼唤&#xff0c;我们泽拓科技将在北京举办线下社区技术交流活动。 此次我们泽拓科技邀请了去哪儿网、ScaleFlux、美团、SphereEx的相关资深专家来分享他们的数据库探索与实践。我们真诚邀请数据库技术社区…

全国各省份影像下载地址(11级别)

安徽省https://pan.baidu.com/s/1fMuWhVZFvSH1UlCGU1bPpA?pwdeasy澳门特别行政区https://pan.baidu.com/s/1aU2D4o2bfeHTJTb6AkUtVA?pwdeasy北京市https://pan.baidu.com/s/1eaNzAWm1pUx_rjhD_wHHhA?pwdeasy福建省百度网盘 请输入提取码甘肃省https://pan.baidu.com/s/1mAqf…

day36—选择题

文章目录 1.下列关于线程的说法错误的是&#xff08;B&#xff09;2.在下列进程的四个特征中&#xff0c;最基本的特征是&#xff08;B&#xff09;3.什么是内存抖动&#xff08;Thrashing&#xff09;&#xff08;A &#xff09;4.假设如下代码中&#xff0c;若t1线程在t2线程…

铁路应答器传输系统介绍

应答器传输系统 应答器传输系统是安全点式信息传输系统&#xff0c;通过应答器实现地面设备向车载设备传输信息。 应答器可根据应用需求向车载设备传输固定的&#xff08;通过无源应答器&#xff09;或可变的&#xff08;通过有源应答器&#xff09;上行链路数据。 当天线单…

OSCP-Pwned1(pwn题)

目录 扫描 FTP HTTP FTP ssh 提权 扫描 sudo nmap 192.168.218.95 -p- -sS -sCPORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 fe:cd:90:19:74:91:a…

4月份读书学习好文记录

4月份学习记录 找到自己感兴趣的方向&#xff0c;而不是人云亦云&#xff0c;知道自己想要的是什么&#xff0c;而不是一直得过且过&#xff01; 差距是怎么出现的&#xff0c;四年来的点点滴滴&#xff01;&#xff01;&#xff01; 一个前端大佬的十年回顾 | 漫画前端的前世…

electron+vue3全家桶+vite项目搭建【13】封装加载进度显示,新建窗口 演示主进程与渲染进程通信

文章目录 引入实现效果演示&#xff1a;1.封装新建窗口工具2.测试新建窗口3.封装进度条加载4.测试进度条加载 引入 这里我们通过封装electron的工具类来演示electron中的主进程和渲染进程利用ipc进行通信 demo项目地址 electron官方文档ipc通信 实现效果演示&#xff1a; …

Springboot +Flowable,通过代码绘制流程图并设置高亮

一.简介 通过代码绘制一张流程图&#xff0c;并设置成高亮。 首先先来看一下绘制出来的效果图&#xff0c;截图如下&#xff1a; 已经执行的节点和连线用红色标记出来&#xff0c;大致上就是这么一个效果。 二.怎么实现 将一个流程图绘制成图片&#xff0c;相关的 API 在…