在 Xcode 中审查代码和协作
Review code and collaborate in Xcode
2021年6月10日
一句话判断
Xcode 13 终于有了原生的 code review 工具——你可以在 Xcode 里完成大部分 GitHub PR 审查操作,不用再切到浏览器了。
这场 Session 讲了什么
Session 展示了 Xcode 13 中全新的代码审查功能。核心是在 Xcode 中直接连接 GitHub 或 GitLab 仓库,浏览 Pull Request(PR),查看文件差异(diff),添加行内评论,批准或请求修改——整个过程不需要离开 Xcode。
新的源代码管理导航器(Source Control Navigator)增加了 PR 列表视图,显示所有打开的 PR、作者、状态和审查进度。点击某个 PR 后,Xcode 会在编辑器中显示逐文件的 diff 视图,支持并排对比和内联对比两种模式。你可以在任意代码行上添加评论,评论会同步到 GitHub/GitLab。
还展示了在 Xcode 中直接 checkout 别人的 PR 分支进行本地测试的能力。这对于审查涉及 UI 变更或复杂逻辑的 PR 特别有用——光看 diff 不够,你需要跑起来看看效果。
值得深挖的点
本地 checkout PR 的价值
纯 Web 端的 code review 有一个根本缺陷:你只能看代码,不能跑代码。Xcode 13 允许你一键 checkout PR 的分支到本地,编译运行,看到真实效果。审查完切回自己的分支继续开发。这个流程对于 SwiftUI 的改动特别重要——ContentView 的 diff 看不出动画和布局是否正确,你需要跑起来在真机或模拟器上看。
审查流程的集成深度
Xcode 的 PR 审查不是简单的 diff 浏览器。它集成了编译器和静态分析器——在审查视图中就能看到编译警告和静态分析结果。这意味着你在审查代码时就能知道”这段代码有潜在问题”,而不是等合并后 CI 跑完才发现。
代码片段
在 Xcode 中浏览和审查 PR
// Source Control Navigator (Cmd+2) > Pull Requests 标签
// 显示所有打开的 PR 列表
// 点击某个 PR 后:
// 1. 查看 PR 描述和评论
// 2. 浏览改动的文件列表
// 3. 点击文件查看逐行 diff
// 4. 在任意行添加评论
// 5. 提交审查(Approve / Request Changes / Comment)
// checkout PR 到本地测试
// 点击 PR 列表中的 "Checkout" 按钮
// Xcode 切换到该分支,可以编译运行
添加行内评论
// 在 diff 视图中:
// 1. 点击某行代码左侧的 "+" 号
// 2. 输入评论内容
// 3. 可以 @ 其他团队成员
// 4. 点击 "Submit Review" 统一提交所有评论
// 评论会同步到 GitHub/GitLab 的 PR 页面
// 在 PR 页面上也能看到 Xcode 提交的评论
多人协作场景
// 团队工作流:
// 1. 开发者在 Xcode 中创建分支和 commit
// 2. 在 Source Control Navigator 中创建 PR
// 3. 审查者在 Xcode 中收到 PR 通知
// 4. 审查者 checkout PR,本地测试
// 5. 添加行内评论,提交审查
// 6. 作者修改后推送新 commit
// 7. 审查者 Approve,合并
// 所有操作在 Xcode 中完成,不需要打开浏览器
最佳实践
审查习惯: 把 Xcode 作为主要的 code review 工具。Web 端的审查适合快速扫一眼,但涉及逻辑变更或 UI 变更的 PR 应该在 Xcode 中 checkout 后审查。养成在审查时运行编译的习惯,利用 Xcode 的编译器警告辅助判断。
团队规范: 在 PR 描述中写清楚改动意图和测试步骤,方便审查者 checkout 后知道要验证什么。小型改动可以用 Web 审查,大型改动约定在 Xcode 中本地审查。
还有什么值得关注
- Xcode 13 支持同时打开多个 PR 的 diff,方便交叉比较。
- PR 列表支持按作者、状态、标签筛选。
- 新的 Git staging 功能让你在 commit 前选择性地 stage 某些行的改动,不用整个文件提交。