命令与设置一览
命令面板里全部 KXBuild 命令按用途分组,各在哪里能点到;所有设置项的默认值与作用;调试器 kxbuild 的 launch / attach 字段;四个输出通道。
命令面板(Ctrl+Shift+P)输入 KXBuild 可以看到全部命令,标「仅右键」「仅编辑器内」的只在对应位置出现。设置在「设置」中搜索 kxbuild。
命令
环境
| 命令 | 入口 |
| KXBuild: 体检并修复开发环境 | 命令面板 · 视图标题栏「···」 |
| KXBuild: 安装工具链 | 命令面板 · 视图标题栏「···」 · 视图欢迎页 |
| KXBuild: 选择工具链 | 命令面板 · 视图标题栏「···」 · 视图欢迎页 |
| KXBuild: 设备诊断 | 视图标题栏「···」 · 设备节点「点击配置」 |
工程
运行
| 命令 | 入口 |
| KXBuild: 构建 | 命令面板 · 视图标题栏 · 右键 .xcodeproj / .xcworkspace |
| KXBuild: 构建并运行 | 命令面板 · 视图标题栏 · F5 · 右键 .xcodeproj / .xcworkspace |
| KXBuild: 运行 | 命令面板 · 视图标题栏 |
| KXBuild: 构建该 target / 构建并运行该 target / 运行该 target(不构建) | 仅 target 节点行内按钮 |
| KXBuild: 选择 iOS 设备 | 命令面板 · 状态栏 · 设备节点 |
| KXBuild: 选择构建配置 | 命令面板 · 视图标题栏「···」 · 配置节点 |
| KXBuild: 附加到运行中的 App | 命令面板 · 视图标题栏「···」 |
| 刷新设备列表 | 仅视图标题栏 |
代码
编辑器
| 命令 | 入口 |
| KXBuild: 用属性列表编辑器打开 | 右键 .plist / .entitlements / .xcprivacy / .strings · 文本模式下的编辑器标题 |
| KXBuild: 以文本方式打开 plist | 编辑器标题(属性列表编辑器内) |
| KXBuild: plist 保存格式(XML / 二进制) | 编辑器标题(属性列表编辑器内) |
| KXBuild: 把 plist 转成 XML / 转成二进制 | 右键 .plist / .entitlements / .xcprivacy(可多选) |
| 添加行 · 添加子项 · 删除行 · 复制键路径 · 全部展开 · 全部折叠 | 仅属性列表编辑器内右键 |
| KXBuild: 打开资源目录 | 命令面板 · 右键 .xcassets 文件夹 |
| KXBuild: 用资源目录编辑器打开 / 以文本方式打开 Contents.json | 右键 .xcassets 下的 Contents.json · 编辑器标题 |
| KXBuild: 重新加载资源目录 | 编辑器标题(资源目录编辑器内) |
| KXBuild: 编译检查资源目录 | 命令面板 · 编辑器标题(资源目录编辑器内) |
| 新建 App 图标 / 图片集 / 颜色集 / 数据集 / 符号图片集 / 文件夹 · visionOS 图标 · tvOS 图标与顶架图 · 图片栈 · 重命名 · 删除 · 在资源管理器中显示 · 用一张 1024×1024 图生成全部尺寸… · 转换为单尺寸图标 · 添加平台… · 替换图片… · 移除图片 | 仅资源目录编辑器内右键 |
| KXBuild: 用工程设置编辑器打开 / 以文本方式打开 project.pbxproj | 右键 project.pbxproj · 编辑器标题 |
| 添加用户自定义设置 · 删除设置 · 复制设置名 · 复制值 | 仅工程设置编辑器内右键 |
| KXBuild: 打开图标文档(.icon) | 命令面板 · 右键 .icon 文件夹 |
| KXBuild: 用图标文档编辑器打开 / 以文本方式打开 icon.json | 右键 .icon 下的 icon.json · 编辑器标题 |
| KXBuild: 图标 — 添加组 / 添加图层 / 导入资源… | 仅图标文档编辑器内 |
设置
按 Ctrl+, 打开设置页,搜索框输入 kxbuild 就只剩下面这些项,也可以在左侧「扩展」下点 KXBuild。开关和下拉框当场改,改完立即生效,不用重启。数组和路径类的项点「在 settings.json 中编辑」,写法如下。
settings.json "kxbuild.defaultConfiguration": "Release"
设置页顶部的「用户」对所有窗口生效,「工作区」只对当前工程生效并写进工程目录的 .vscode\settings.json,团队共用的项放这里。标「只在用户设置中生效」的项放工作区不起作用。
KXBuild
| 设置 | 默认 | 作用 |
| kxbuild.toolchainHome | 空 | 工具链目录,优先于 KXBUILD_HOME 和 PATH,只在用户设置中生效 |
| kxbuild.ignoreMissingToolchainWarning | false | 启动找不到工具链不再提示 |
| kxbuild.autoUpdate | true | 启动时检查新版 kxbuild,有则在终端中升级并体检 |
| kxbuild.defaultConfiguration | Debug | 启动时选中的构建配置 |
| kxbuild.build.extraArgs | [] | 追加到每次 kxbuild build 的参数,开关和取值各占一项 |
| kxbuild.debug.killAppOnStop | true | 调试结束时结束设备上的 App |
| kxbuild.flutter.autoAttachDart | true | Flutter App 打印 VM 服务地址时自动附加 Dart 调试会话 |
KXBuild Swift
| 设置 | 默认 | 作用 |
| kxbuild.swiftPath | 空 | Swift 可执行文件所在目录,lldb-dap 也从这里查找,只在用户设置中生效 |
| kxbuild.swiftRuntimePath | 空 | Swift 运行时库目录,空为工具链旁的 Developer\Runtimes\<version>\usr\bin |
| kxbuild.outputChannelLogLevel | info | Swift 输出通道的日志级别,debug、info、warn 或 error |
KXBuild SourceKit-LSP
| 设置 | 默认 | 作用 |
| kxbuild.swiftSourcekitLspServerPath | 空 | sourcekit-lsp 路径,空为与 swift 同目录 |
| kxbuild.swiftSourcekitLspServerArguments | [] | 传给 SourceKit-LSP 的参数 |
| kxbuild.swiftSourcekitLspSupportedLanguages | ["swift"] | SourceKit-LSP 接管的语言,C 系语言由 clangd 负责 |
| kxbuild.swiftSourcekitLspBackgroundIndexing | auto | 后台索引,on、off 或 auto,auto 在 Swift 6.1 及以上开启 |
| kxbuild.swiftSourcekitLspTraceServer | off | 记录与语言服务的通信,off、messages 或 verbose |
| kxbuild.swiftSourcekitLspDisable | false | 禁用 SourceKit-LSP |
KXBuild 属性列表编辑器
| 设置 | 默认 | 作用 |
| kxbuild.plist.defaultSaveFormat | preserve | 保存格式,保持原样、总是 XML 或总是二进制 |
| kxbuild.plist.sortKeysOnSave | false | 保存时字典键按字母排序,和 Xcode 一致 |
| kxbuild.plist.showRootRow | true | 顶层上方显示 Root 行 |
| kxbuild.plist.spacing | compact | 行距,compact、comfortable 或 spacious |
KXBuild 资源目录编辑器
| 设置 | 默认 | 作用 |
| kxbuild.xcassets.deleteUnreferencedFiles | ask | 编辑后不再被引用的图片文件,每次询问、直接删除或保留 |
KXBuild 工程设置
| 设置 | 默认 | 作用 |
| kxbuild.xcodeproj.livePreview | true | 每次改动后重新计算解析后的构建设置 |
| kxbuild.xcodeproj.defaultMode | basic | Build Settings 页打开时的视图,basic、customized 或 all |
调试器 kxbuild
launch.json 中 "type" 为 kxbuild,示例见运行与调试。
| request | 字段 | 说明 |
| launch | build | true 先构建,false 安装上一次的产物(默认) |
| device | 设备 UDID,空为视图中选中的 |
| bundle | 应用 target 的 Bundle ID,空为唯一的应用 target |
| configuration | Debug 或 Release,空为视图中选中的 |
| attach | device | 同上 |
| attachPid | 设备上的进程 pid,0 为运行时弹出列表选择 |
输出通道
| 通道 | 内容 |
| KXBuild | 构建日志、插件自己的日志、模板脚本输出 |
| KXBuild Console | 被调试 App 的 stdout、stderr、NSLog、os_log,已过滤运行时噪声 |
| Swift | Swift 集成的日志,级别由 kxbuild.outputChannelLogLevel 决定 |
| SourceKit Language Server | 与 SourceKit-LSP 的通信记录,需开启 traceServer |
构建错误和资源目录检查结果都显示在「问题」面板。
接下来