iOS App 从 0 到 1

Xcode 界面图解

对照真机截图认主窗口、工具栏、导航器、编辑器、检查器与工程设置。

01主窗口六大区

默认布局:上工具栏,左导航器,中源码 + Canvas,右检查器;底可选调试区。

Xcode 主窗口分区:1工具栏 2导航器 3源码编辑器 4 Canvas预览 5检查器 6调试区

① 工具栏 · ② 导航器 · ③ 源码编辑器 · ④ Canvas 预览 · ⑤ 检查器 · ⑥ 调试区。点图可放大。

记不住名字没关系:左找文件、中写代码、右调属性、上点三角形 Run、下看报错日志。

02工具栏:你每天要点的按钮

从左到右:停止 / 运行 → Scheme 与设备 → 状态 → 右侧检查器开关。

Xcode 工具栏标注:1停止 2运行 3 Scheme与设备 4状态 5检查器开关

① 停止 · ② 运行(⌘R)· ③ Scheme + 目标设备 · ④ 状态(Ready / Building…)· ⑤ 显隐右侧检查器。点图可放大。

编号控件作用新手提醒
①■ Stop停止当前运行快捷键 ⌘.
②▶ Run编译并启动到所选设备/模拟器⌘R
③Scheme + 设备选 Target / Debug·Release,以及模拟器或真机日常 Debug + 任意一台模拟器即可
④状态栏Ready、Building、报错摘要都在这卡住先看这里有没有红字
⑤检查器开关显隐右侧 Inspector和左侧导航器开关成对

04中间编辑器:代码 + Canvas

左边写 SwiftUI 代码,右边 Canvas 实时预览;底栏用来 Resume、切预览模式和选机型。

Xcode 编辑器与 Canvas:1源码 2预览 3-7为 Canvas 底栏控件

① 源码编辑器 · ② Canvas 预览 · 黄框为 Canvas 底栏(③ Resume · ④ Live · ⑤ 变体 · ⑥ 真机预览 · ⑦ 预览机型)。点图可放大。

编号区域作用
①源码编辑器写 ContentView 等 SwiftUI 代码
②Canvas按代码即时画出界面预览
③Resume / 播放预览停住时点它刷新;也可 ⌘⌥P
④Live Preview可交互的实时预览(当前常亮)
⑤变体多尺寸 / 深浅色等对照(稍后用)
⑥真机预览把预览送到已连接的真机
⑦预览机型选 Canvas 用哪台模拟器外观
预览不刷新时:点 ③ Resume,或 ⌘⌥P。Canvas 挂了不影响工具栏 ▶ / ⌘R 进模拟器。

05右侧检查器与项目设置

选中某个 .swift 文件时,右侧是 File Inspector(文件属性)。选中蓝色工程名时,才会进 Target 设置(签名、版本号)。

Xcode File Inspector 标注:顶部页签与文件属性各字段

①~③ 检查器页签 · ④~⑦ Identity and Type · ⑧ 按需资源标签 · ⑨ Target 归属 · ⑩~⑭ 文本设置。点图可放大。

编号项新手要知道的
①File Inspector文件属性(本图)
②History本地 / 源码控制历史
③Quick Help光标处 API 的简短说明
④Name文件名
⑤Type一般保持 Default 即可
⑥Location相对工程怎么引用;新手别乱改
⑦Full Path磁盘上的真实路径;右侧箭头可在 Finder 中显示
⑧On Demand Resource源码文件通常不可打标签,可忽略
⑨Target Membership勾选后才会编进 App;漏勾会导致「找不到类型」
⑩~⑭Text Settings编码、换行、缩进;新手保持默认(空格、宽度 4)
要改 App 显示名、版本号、签名:在左侧点蓝色工程名 HelloIOS(锤子图标),不要点单个 .swift。详见下一节 工程与 Target。

06工程与 Target:点蓝色工程名

点导航器最上方蓝色锤子图标后,中间会出现 PROJECT / TARGETS。日常改 App 信息选 Target;PROJECT → Info 里的配置与本地化以后再用。

Xcode 工程 Info:选中 PROJECT,含 Configurations 与 Localizations

① 选中 PROJECT「HelloIOS」· ② Configurations · ③ 命令行并行编译 · ④ Localizations · ⑤ Base Internationalization。点图可放大。

编号项干啥新手
①PROJECT 选中进入工程级设置;下方还有 TARGETS → HelloIOS必会:先分清点的是谁
②ConfigurationsDebug / Release 两套配置名知道有即可;日常跟 Scheme 走
③命令行并行编译给 xcodebuild 用的开关可忽略
④Localizations多语言列表做国际化再来
⑤Base Internationalization用 Base 做界面本地化基底默认勾选即可
改显示名、版本、最低系统、签名:左侧再点 TARGETS → HelloIOS(不要停在 PROJECT),然后打开下面页签。
Target 页签你要改的东西
GeneralDisplay Name、Version、Build、Minimum Deployments
Signing & CapabilitiesTeam、Bundle Identifier、自动签名
Info权限说明文案(相机、相册等)
Assets.xcassetsAppIcon、颜色、图片(在文件树里打开)
若你另有「TARGETS → General / Signing」标注图,发路径后可替换本节示意,对照更直观。

07Build Settings 认路

Build Settings 是编译参数大表。项非常多——新手用 Basic 或搜索框,不要一上来开 All 硬背。

Xcode Build Settings 标注:页签、过滤条与常见分组

① Build Settings 页签 · ② 与 Info / Package 并列 · ③ Basic·Customized·All / Combined·Levels / 搜索 · ④~⑩ 各设置分组。点图可放大。

编号区域干啥如何用
①②页签Info / Build Settings / Package Dependencies改编译细节进 Build Settings;第三方包见下一节
③过滤条控制显示哪些项先点 Basic;改过的看 Customized;用搜索框搜名字(如 Deployment)
④ArchitecturesCPU 架构、Base SDK、是否只编当前架构保持默认。Debug 常「只编当前」更快;Release 编完整
⑤Assets按需资源等默认 No,可忽略
⑥Build Locations产物 / 中间文件路径几乎别改
⑦Build Options校验产物等杂项默认即可
⑧Compilation Caching编译缓存加速默认即可
⑨Deployment部署系统版本等相关优先在 Target → General → Minimum Deployments 改
⑩Headers头文件搜索路径SwiftUI 新手基本不用

和 General 的关系

  • 显示名、版本、最低系统 → 先改 General
  • 签名 → Signing & Capabilities
  • General 改不动、或排错时 → 再来 Build Settings 搜索

推荐操作顺序

  • 确认左侧是 TARGETS → HelloIOS
  • 过滤选 Basic 或 Combined
  • 搜索关键字,改完到 Customized 核对
  • 仍异常:Product → Clean Build Folder 再编
记住口诀:界面能改的不进表;进表先 Basic / 搜索;PROJECT 与 TARGET 别点错。

08Package Dependencies:第三方 Swift 包

文件树最下方会出现 Package Dependencies——这是 Swift Package Manager(SPM)拉进来的第三方库。空工程没有这一段;加过包之后才会出现。下图来自真实项目 Snapzy,用来认界面。

Xcode 导航器 Package Dependencies:1 GRDB 2 libwebp 3 Sparkle 4 WebP

导航器侧:① GRDB · ② libwebp · ③ Sparkle · ④ WebP。包名旁是当前解析到的版本。点图可放大。

编号包版本干什么新手怎么看
①GRDB7.10.0Swift 侧操作 SQLite 的常用库(读写本地数据库)和「本地存储」同一类需求;新手也可先用 UserDefaults / SwiftData
②libwebp1.5.0Google 的 WebP 编解码 C 库多数是被上层 Swift 包装拉进来的底层依赖,你很少直接 import
③Sparkle2.8.1macOS App 常用的应用内自动更新框架本教程主讲 iOS;iPhone/iPad App 不会用 Sparkle(更新走 App Store)
④WebP0.6.1Swift 侧使用 WebP 的包装包常与 ② libwebp 成对出现:④ 给你用,② 做底层

要添加 / 更新 / 删除包:在左侧点蓝色工程名(锤子图标),中间打开 Package Dependencies 页签——不要停在单个 .swift 文件上。

Xcode 工程 Package Dependencies 页签:1左侧工程名 2页签 3包列表 4加号

① 左侧点蓝色工程名「Snapzy」· ② Package Dependencies 页签 · ③ Packages 列表(Name / Location / Dependency Rule)· ④ 「+」添加依赖。点图可放大。

编号区域干啥新手提醒
①导航器工程名点蓝色锤子图标,打开工程设置不要点单个 .swift;中间会出现 PROJECT / TARGETS
②Package Dependencies 页签与 Info / Build Settings 并列,专门管 SPM和导航器底部那串纸箱是同一套依赖的不同视图
③Packages 列表显示你直接添加的包:Git 地址、版本规则(如 Up to Next Major)本图 3 项;导航器有 4 项是因为 libwebp 是 WebP 的传递依赖,不会单独出现在这张表
④「+」/「−」添加或移除依赖也可菜单 File → Add Package Dependencies…;减号要先选中一行

两处界面怎么对照

  • 导航器底部:看「解析出来」的全部包(含传递依赖)与当前版本
  • 本页签表格:看你显式加了谁、仓库 URL、允许升到哪一档版本

怎么读表格一行

  • Name:包名
  • Location:Git 仓库地址
  • Dependency Rule:如 7.0.0 < 8.0.0 = 自动跟到下一个大版本之前
认界面即可:导航器纸箱 = 已解析依赖;工程页签表 = 你声明的依赖。本教程前几章的 HelloIOS 不必加包;需要时再回来对照。
图中工程名是 Snapzy(含 macOS 更新库 Sparkle)。你跟着教程建的 iOS App 左侧可能暂时没有 Package Dependencies,属正常。

iOS App 从 0 到 1 · 主讲 SwiftUI / iOS