Skip to content

老司机 iOS 周报 #378 | 2026-08-31

Latest

Choose a tag to compare

@ChengzhiHuang ChengzhiHuang released this 30 Aug 15:16

ios-weekly
老司机 iOS 周报,只为你呈现有价值的信息。

你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

新闻

ITMS-90068: MinimumOSVersion too low

MinimumOSVersion too low - This app has a MinimumOSVersion of 13.0. Starting 2027, all iOS apps must have a MinimumOSVersion of 15.0 or later in order to be uploaded to App Connect or submitted for distribution.

最近提审的时候收到苹果的邮件提醒,本次苹果将强制要求最低支持 OS 升级到 iOS 15。还坚持在 iOS 12/13 的 App 维护者可以借机一把梭到 iOS 15 享受到 Page-in linking 和 chained fixups 了。预期能收获 AA 可观察的冷启动性能优化,尤其在中低端机上。

文章

🌟 🐕 Flutter iOS 的深度优化 PR,搞笑的是贡献者被 Gemini 评审折磨

@JonyFang:这篇文章以 Flutter iOS 的 PR #191368为例,复盘了一次由历史兼容逻辑引发的性能优化。SmoothPointerDataDispatcher 原本是为 iPhone X/XS 时代不稳定的触摸事件投递设计的,但在现代 iOS 上触摸投递已经明显稳定,该机制却仍让约 99% 的事件等待下一次 VSync,额外增加一帧触摸到画面的延迟。单纯删除平滑器后,又暴露出 VSync waiterCADisplayLink 唤醒流程的问题,部分设备甚至会从 60/120 fps 降到 30/60 fps。

因此,PR 并不是简单删代码,而是同时调整事件分发、RunNowOrPostTaskAwaitVSync 以及 CADisplayLink 生命周期,把触摸处理到 VSync 请求压回同一个 run-loop turn,减少无意义的调度等待。

文章后半部分还记录了 Gemini Code Assist 因误解 Flutter 的 merged UI/platform thread,而反复提出 data race、deadlock 和加锁建议的过程,说明 AI Review 不能替代工程师对线程模型和运行时证据的判断。这与本期 PerfAgent 强调的“测量—修改—验证”闭环,以及 Using AI while exercising your critical thinking 对批判性校验的提醒形成呼应;也与历史上“旧调度优化随系统演进反而变成负担”的案例相似(见 #373)。对关注 Flutter Engine、iOS VSync、性能调度和 AI 代码审查的开发者有参考价值。

PerfAgent: Profiler-Guided Iterative Refinement for Repository-Level Code Optimization

@ChengzhiHuang: 这篇论文研究的不是让 Agent 把代码修改正确,而是让它在真实仓库中做出更接近性能专家的性能优化。作者发现普通 Coding Agent 有三个通病:不做深入的性能分析,容易错过藏在 C/C++ 等原生扩展里的真正瓶颈;找到一个稍有提速的方案后便过早停止;为了追求性能做出复杂修改,却没有充分验证正确性。

PerfAgent 没有训练新模型,而是在现有 Agent 外增加一套闭环:先用 py-spy 找出热点并整理成简洁报告;Agent 提交补丁后,重新构建并只运行受改动影响的测试;测试通过后再次测量、分析新的瓶颈,继续下一轮;最后保留所有轮次中最快且正确的补丁。

核心结论是:对于性能优化 Agent,关键不只是多尝试几次,而是每一轮都提供准确的瓶颈、性能和正确性反馈。

类似的方法论同样可以使用在任意的性能优化中。以我当前的经验观察,即使只是从 Instruments 中通过 xctrace 导出 TimeProfile 火焰图,并使用 Perfetto 或者别的消费工具进行自动化消费已经是明确可以跑通的路径。

🐎 Using AI while exercising your critical thinking

@阿权:工程师的核心价值不是会调 AI 提示词,而是对 AI 输出进行批判性思考与校验。新技术无法解决 LLM 的固有缺陷,唯有主动运用批判性思维,才能在工作中保持主导权。这是整篇文章的核心观点,作者并给出三条实操指南:

  1. 把 AI 当作辅助工具,不是全权执行者;复杂任务不能放任 AI 自由跑,需要持续监督干预,幻觉、遗忘指令是 LLM 固有缺陷,新版本不能彻底消除。
  2. 质疑 AI 每一个观点,要求提供证据,并且亲自核验证据,不能直接相信 AI 给出的引用,系统提示词不足以约束大模型。
  3. AI 生成的代码哪怕能运行,也要逐行审阅:校验逻辑、边界条件,同时保证自己读懂代码,避免编程能力退化。

🐕 Apple Foundation Models: Hybrid AI with Dynamic Profiles

@Cooper Chen:这篇文章深入探讨了苹果在 WWDC 26 上对 Foundation Models 框架的重要升级——通过引入 Dynamic Profiles(动态配置文件)特性,让开发者能够以极其优雅的方式实现混合 AI 架构。

文章指出,苹果的端侧模型虽然具备免费、私密、无需联网等优势,但受限于移动设备的内存、算力和散热条件,其上下文窗口(仅 8K tokens)和推理速度都无法满足复杂任务的需求。作者通过对比测试发现,即使是 Gemini 3.5 Flash Lite 这样的轻量级云端模型,在处理各类文本时的速度也普遍优于苹果端侧模型。

文章的核心亮点在于,苹果通过 LanguageModel 协议将 Foundation Models 框架向第三方开放,Anthropic 和 Google 均在 WWDC 26 首日就提供了 Claude 和 Gemini 的实现。而 Dynamic Profiles 则更进一步——开发者可以在一个 Profile 中封装路由逻辑、token 预算检查和模型专属提示词,让系统根据输入长度自动在端侧模型和 Gemini 之间切换。调用端代码因此变得极其简洁,真正实现了“分离关注点”和“声明式组合”。

这篇文章为 Swift 开发者提供了一条清晰的道路:如何在保持端侧 AI 优势的同时,无缝接入云端最强模型的能力,真正实现“鱼与熊掌兼得”。

🐕 The AI-Native SDLC playbook

@zhangferry:Anthropic 的 Applied AI 团队 8 月 21 日发布了一份 AI-native SDLC(软件开发生命周期) playbook,主要应对的问题是 agent 让写代码从数周缩减到数小时,但 plan、review、deploy 还按人的节奏走,整体效率提升仍然有限,解法是把六个阶段全部重造。

  • Plan 阶段想法直接跟 Claude 聊成 intent.md,产品负责人审而不写。
  • Design 阶段,需求和 spec 压进一个 session,政策在 spec 写下时就被 skills 应用。
  • Build 先在 plan mode 里迭代出 plan.md,代码排在计划后面。
  • Test 让 session 自己跑测试自查。bug 要先写成失败的测试再修,hook 禁止 agent 动测试文件。
  • Deploy 的 review 两头都要有 Claude。人守在 production gate 上。
  • Maintain 用确定性监控加分层响应,事故写成新的 intent.md 重新进流程。循环在这里闭合。

这套路程运行的背后还有一套设计支撑:每个阶段以提交一个产物结束,下一个阶段读取它开始,这条链同时是审计链,中间产物都进 git 历史;控制分三层,skill 整理违规问题,hook 让违规接近不可能,最终判断留给人;CLAUDE.md、skills、hooks 也按代码对待,进 CI 跑回归,线上事故沉淀成用例供后续持续使用。

🐢 Detecting (Evil) Dylibs

@Smallfly:这篇文章从 macOS 安全视角系统梳理了 dylib 被攻击者利用的方式,包括持久化、供应链投毒和 SIP 绕过等案例,并进一步介绍如何在静态文件、运行中进程以及加载时枚举动态库。文章重点展示了借助 proc_pidinfo 与 Endpoint Security 的 AUTH_MMAP 事件,安全工具可以在 dylib 完全加载前完成检测甚至阻断。适合关注 macOS 安全、客户端运行时机制和防护工具实现的同学阅读。

工具

🐎 Veilpath: 更完善的 iOS 的沙盒浏览器

@Damien:这篇文章介绍了作者基于 bad_query 开发的 iOS/iPadOS 沙盒浏览器 Veilpath,它能发现并解析各类 App 容器,把 UUID 转换成可识别的 Bundle ID,并支持浏览、搜索、预览和导出文件。 应用还提供 plist、JSON、SQLite、Mach-O、ZIP/IPA 等格式的检查能力,并通过备份、哈希校验、临时草稿和回滚机制降低修改或删除文件的风险。 Veilpath 主要面向安全研究人员,需要自行编译,目前谨慎宣称支持 iOS/iPadOS 26 至 27 beta 4。 作者强调,它的目标不是单纯绕过沙盒,而是把底层安全研究变成一个可读、可控、可恢复的专业工具。

内推

重新开始更新「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)