# 老司机 iOS 周报 #375 | 2026-07-20

![ios-weekly](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/weekly-header/375.png?raw=true)
老司机 iOS 周报，只为你呈现有价值的信息。

你也可以为这个项目出一份力，如果发现有价值的信息、文章、工具等可以到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 里提给我们，我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 提出。

## 文章

### 🐎 [iOS 27 Adds Mac-Like Recovery Mode for iPhone and iPad](https://www.macrumors.com/2026/06/22/ios-27-adds-mac-like-recovery-mode/)

[@EyreFree](https://github.com/EyreFree)：本文介绍 iOS 27 为 iPhone、iPad 新增类似苹果硅 Mac 的本机轻量化恢复模式。关机后长按电源键开机并持续按住，即可进入独立恢复界面，无需完整加载系统。界面内置恢复助手、在线更新、设备诊断、抹除数据、传统恢复五大功能，可自动连接已存 Wi-Fi、显示电量，支持一键正常重启。以往系统更新失败、设备无限重启等故障，必须借助电脑 DFU 刷机，如今可本机重装稳定系统、自动修复故障，大幅降低设备维修门槛。该功能当前处于开发者测试阶段，公测版下月推出，秋季正式上线。

### 🐎 [Using Cursor in Xcode 27](https://www.polpiella.dev/cursor-xcode-27/)

[@Cooper Chen](https://github.com/cjlcooper)：这篇文章聚焦 Xcode 27 的 Agentic Development 新能力，手把手演示如何将 Cursor 作为 ACP 兼容代理接入 Xcode。内容从安装 Cursor agent CLI、配置可执行文件与参数，到在新会话中选择代理，流程清晰实用。适合希望保留 Xcode 原生体验，同时借助 Cursor 提升开发效率的 iOS/macOS 开发者阅读。

### 🐢 [sim-use - 给 agent 装上眼睛和手，让 mobile 开发跟上 AI 时代](https://onevcat.com/2026/07/sim-use/)

[@JonyFang](https://github.com/JonyFang)：随着 Agent 写代码越来越快，移动端开发的瓶颈也逐渐转向了如何验证结果。本文介绍 onevcat 开源的跨平台工具 `sim-use`，它能让 Agent 看懂并操作 iOS、Android 界面，自主完成交互和验证。文章还分享了 Outline DSL、UI 元素探测、常驻 Daemon 等关键设计，是一篇很有参考价值的 Mobile Agent 工程实践。

### 🐎 [The hidden cost of unstable SwiftUI environment defaults](https://nilcoalescing.com/blog/UnstableDefaultEnvironmentValuesInSwiftUI/)

[@Barney](https://github.com/BarneyZhaoooo)：这篇文章讨论了 Xcode 27 对 SwiftUI `@Entry` 环境值新增的一个警告：如果默认值直接创建 class 实例，每次 fallback 读取都会得到新的引用，SwiftUI 可能把它视为环境变化，连带触发依赖视图的额外 `body` 计算。作者用 logger 示例说明，即使真正变化的是无关的 environment value，读取默认 logger 的子视图也会被重新求值。解决方式是把默认对象放到稳定存储中再引用，或把环境值设计成可选并在 App 层显式注入；类似 `Date()`、`UUID()` 这类每次求值不同的默认表达式也应避免。适合排查 SwiftUI 视图更新噪音和性能问题时参考。

### 🐎 [Previews and MCP](https://cuteios.dev/2026/07/14/previews-and-mcp/)

[@zhangferry](zhagnferry.com)：作者想做一款应用：开发者不必逐个打开源码或在 Xcode 里来回切换，就能看到所有界面预览。但要实现它，第一个难点在于如何让独立运行的应用拿到 Xcode 生成的 Preview 图片。解决思路是利用 Xcode 27 beta 3 提供的 MCP 能力。应用先通过 `xcrun mcpbridge` 与 Xcode 建立连接，再用 MCP 的 RenderPreview 工具指定项目文件和 Preview 序号，让 Xcode 完成渲染。双方按照 JSON-RPC 格式交换消息，应用负责启动进程、通过标准输入输出发送请求，并异步读取返回结果。成功后，Xcode 会提供预览快照、实际运行环境，以及可用的本地化和变体信息。

但这条路很快碰到了 macOS 沙盒限制：mcpbridge 需要访问 Xcode，生成的图片又可能位于主 App 无法读取的临时目录。因此作者提出把连接 Xcode、执行渲染和读取图片的工作交给一个独立的未沙盒化辅助程序，再通过 XPC 将图片数据传回沙盒内的主 App。

### 🐕 [Introducing the Safari MCP server for web developers](https://webkit.org/blog/18136/introducing-the-safari-mcp-server-for-web-developers/)

[@Smallfly](https://github.com/iostalks)：WebKit 介绍了 Safari MCP server，它把 Safari 浏览器窗口接入支持 MCP 的 AI 编程工具，让 Agent 可以直接读取 DOM、网络请求、控制台日志、截图和页面状态。这篇文章的价值在于展示了「浏览器可观测能力 + Agent」如何改变调试流程：少一些截图描述和窗口切换，多一些真实页面验证。适合关注 AI 开发工具、Safari 兼容性、性能分析和可访问性检查的开发者阅读。

### 🐎 [由于 iOS 26 的键盘变化，Flutter 又要重构键盘区域逻辑](https://mp.weixin.qq.com/s/hCysdBf1q5yzhPXNtbbcjQ)

[@david-clang](https://github.com/david-clang)：iOS 26 的 Liquid Glass 让系统键盘变成了半透明、圆角形态，打破 Flutter 过去的隐含假设：键盘区域是不可见的、不透明矩形，现在键盘会“透出”背后的颜色，BottomSheet、Modal、Overlay 等场景就可能出现明显的背景断裂。

Flutter 官方的[解决思路](https://docs.google.com/document/d/1WU1XhnVQYIgdab8dAqpVjLLviK02BeOmjDjektpYHRk/edit?usp=sharing)是：内容照样被键盘顶上去，但背景要补到键盘后面。这样输入框、列表等可交互内容不会被键盘挡住，同时 BottomSheet、Modal、Overlay 的背景色也能延伸到半透明键盘背后，避免露出不一致的底色。但目前相关实现还在 draft 阶段。

### 🐎 [The SwiftUI Performance Skill](https://livsycode.com/swiftui/the-swiftui-performance-skill/)

[@DylanYang](https://github.com/Dylan19Yang)：本文介绍了一款面向 AI Agent 的 SwiftUI 性能专项 review 技能，以「变更局部性」为核心思路，设定了视图身份、渲染开销、依赖范围等优先审查顺序与证据分级规则，拆分 8 个细分性能模块，可针对滚动卡顿、多余视图重绘等场景，输出贴合 SwiftUI 更新机制的精准优化方案。

## 内推

重新开始更新「iOS 靠谱内推专题」，整理了最近明确在招人的岗位，供大家参考

具体信息请移步：https://www.yuque.com/iosalliance/article/bhutav 进行查看（如有招聘需求请联系 iTDriverr）

## 关注我们

我们是「老司机技术周报」，一个持续追求精品 iOS 内容的技术公众号，欢迎关注。

**关注有礼，关注【老司机技术周报】，回复「2024」，领取 2024 及往年内参**

![](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/qrcode_for_wechat.jpg?raw=true)

同时也支持了 RSS 订阅：https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。

## 说明

🚧 表示需某工具，🌟 表示编辑推荐

预计阅读时间：🐎 很快就能读完（1 - 10 mins）；🐕 中等 （10 - 20 mins）；🐢 慢（20+ mins）
