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

Wait 5 sec.

老司机 iOS 周报,只为你呈现有价值的信息。你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。文章🐎 iOS 27 Adds Mac-Like Recovery Mode for iPhone and iPad@EyreFree:本文介绍 iOS 27 为 iPhone、iPad 新增类似苹果硅 Mac 的本机轻量化恢复模式。关机后长按电源键开机并持续按住,即可进入独立恢复界面,无需完整加载系统。界面内置恢复助手、在线更新、设备诊断、抹除数据、传统恢复五大功能,可自动连接已存 Wi-Fi、显示电量,支持一键正常重启。以往系统更新失败、设备无限重启等故障,必须借助电脑 DFU 刷机,如今可本机重装稳定系统、自动修复故障,大幅降低设备维修门槛。该功能当前处于开发者测试阶段,公测版下月推出,秋季正式上线。🐎 Using Cursor in Xcode 27@Cooper Chen:这篇文章聚焦 Xcode 27 的 Agentic Development 新能力,手把手演示如何将 Cursor 作为 ACP 兼容代理接入 Xcode。内容从安装 Cursor agent CLI、配置可执行文件与参数,到在新会话中选择代理,流程清晰实用。适合希望保留 Xcode 原生体验,同时借助 Cursor 提升开发效率的 iOS/macOS 开发者阅读。🐢 sim-use - 给 agent 装上眼睛和手,让 mobile 开发跟上 AI 时代@JonyFang:随着 Agent 写代码越来越快,移动端开发的瓶颈也逐渐转向了如何验证结果。本文介绍 onevcat 开源的跨平台工具 sim-use,它能让 Agent 看懂并操作 iOS、Android 界面,自主完成交互和验证。文章还分享了 Outline DSL、UI 元素探测、常驻 Daemon 等关键设计,是一篇很有参考价值的 Mobile Agent 工程实践。🐎 The hidden cost of unstable SwiftUI environment defaults@Barney:这篇文章讨论了 Xcode 27 对 SwiftUI @Entry 环境值新增的一个警告:如果默认值直接创建 class 实例,每次 fallback 读取都会得到新的引用,SwiftUI 可能把它视为环境变化,连带触发依赖视图的额外 body 计算。作者用 logger 示例说明,即使真正变化的是无关的 environment value,读取默认 logger 的子视图也会被重新求值。解决方式是把默认对象放到稳定存储中再引用,或把环境值设计成可选并在 App 层显式注入;类似 Date()、UUID() 这类每次求值不同的默认表达式也应避免。适合排查 SwiftUI 视图更新噪音和性能问题时参考。🐎 Previews and MCP@zhangferry:作者想做一款应用:开发者不必逐个打开源码或在 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@Smallfly:WebKit 介绍了 Safari MCP server,它把 Safari 浏览器窗口接入支持 MCP 的 AI 编程工具,让 Agent 可以直接读取 DOM、网络请求、控制台日志、截图和页面状态。这篇文章的价值在于展示了「浏览器可观测能力 + Agent」如何改变调试流程:少一些截图描述和窗口切换,多一些真实页面验证。适合关注 AI 开发工具、Safari 兼容性、性能分析和可访问性检查的开发者阅读。🐎 由于 iOS 26 的键盘变化,Flutter 又要重构键盘区域逻辑@david-clang:iOS 26 的 Liquid Glass 让系统键盘变成了半透明、圆角形态,打破 Flutter 过去的隐含假设:键盘区域是不可见的、不透明矩形,现在键盘会“透出”背后的颜色,BottomSheet、Modal、Overlay 等场景就可能出现明显的背景断裂。Flutter 官方的解决思路是:内容照样被键盘顶上去,但背景要补到键盘后面。这样输入框、列表等可交互内容不会被键盘挡住,同时 BottomSheet、Modal、Overlay 的背景色也能延伸到半透明键盘背后,避免露出不一致的底色。但目前相关实现还在 draft 阶段。🐎 The SwiftUI Performance Skill@DylanYang:本文介绍了一款面向 AI Agent 的 SwiftUI 性能专项 review 技能,以「变更局部性」为核心思路,设定了视图身份、渲染开销、依赖范围等优先审查顺序与证据分级规则,拆分 8 个细分性能模块,可针对滚动卡顿、多余视图重绘等场景,输出贴合 SwiftUI 更新机制的精准优化方案。内推重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)关注我们我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。关注有礼,关注【老司机技术周报】,回复「2024」,领取 2024 及往年内参同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。说明🚧 表示需某工具,🌟 表示编辑推荐预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)