# 老司机 iOS 周报 #360 | 2025-12-15

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

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

## 文章

### 🌟 [Teaching AI to Read Xcode Builds](https://tuist.dev/blog/2025/11/27/teaching-ai-to-read-xcode-builds)

[@zhangferry](zhangferry.com)：Xcode 原始构建日志对人和 AI 都不够友好，仅提供扁平信息输出。作者通过截获 Xcode 与 SWBBuildService 的通信，挖掘出日志之外的结构化数据，包括构建依赖、详细耗时等核心信息，现在随着 [swift-build](https://github.com/swiftlang/swift-build) 的开源，可以更系统的了解这些构建信息，利用它们可以实现这些功能：

* 精准排错：链接错误源于 NetworkKit 模块构建失败，其依赖的 CoreUtilities 正常，问题仅集中在 NetworkKit 本身
* 慢构建分析：47 秒构建中仅 12 秒是实际编译，其余时间用于等待代码签名；8 核 CPU 仅达成 3.2 倍并行，XX 模块是主要瓶颈
* 主动提醒：近一个月构建时间上涨 40%，与 Analytics 模块新增 12 个 Swift 文件相关
* 自然语言查询：支持 “上次构建最慢的模块是什么？”“上周比这周多多少警告？” 等直接提问

利用这项能力对 Wikipedia iOS 应用完成 “体检”，找到多个编译耗时瓶颈，AI 还结合结果给出了模块拆分、并行处理的优化建议。

未来潜力更值得期待：若 Apple 官方支持实时获取构建消息，AI 可在构建中途发现异常（比如 “某模块比平时慢 2 倍，是否暂停检查？”），还能实时监控 CI 构建进度，甚至自动修复问题。作者基于 swift-build 开发了 [Argus](https://github.com/tuist/argus)，已经实现部分实时功能。

### 🐕 [豆包手机为什么会被其他厂商抵制？它的工作原理是什么？](https://mp.weixin.qq.com/s/MEmRkf5MaHDa5zl9n_bbmw)

[@EyreFree](https://github.com/EyreFree)：豆包手机因采用底层系统权限实现 AI 自动化操作，遭微信、淘宝等厂商抵制。其核心工作原理为：通过 aikernel 进程与 autoaction APK 协同，利用 GPU 缓冲区读取屏幕数据、注入输入事件，借助独立虚拟屏幕后台运行，无需截屏或无障碍服务，还能绕过部分应用反截屏限制。AI 操作主要依赖云端推理，本地每 3-5 秒向字节服务器发送 250K 左右图片，接收 1K 左右操作指令。这种模式虽提升自动化效率，但存在隐私安全隐患，易被灰产利用，且冲击现有移动互联网商业逻辑，相关规范与监管仍需完善。感兴趣的同学可以结合视频 [【老戴】豆包手机到底在看你什么？我抓到了它的真实工作流程](https://www.bilibili.com/video/BV1rNmHBLEN1) 一起看看。

### 🐢 [How we built the v0 iOS app](https://vercel.com/blog/how-we-built-the-v0-ios-app)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)：Vercel 首款 iOS 应用 v0 的移动端负责人 Fernando Rojo 详细分享了应用的构建过程：团队以角逐苹果设计奖为目标，经多轮试验选定 React Native 和 Expo 技术栈，核心聚焦打造优质聊天体验，通过自定义钩子（如 useFirstMessageAnimation、useMessageBlankSize 等）、依赖 LegendList 等开源库实现消息动画、空白区域处理、键盘适配、漂浮作曲家等功能，解决了动态消息高度、滚动异常、原生交互适配等难题；同时在 Web 与原生应用间共享类型和辅助函数，通过自研 API 层保障跨端一致性，优先采用原生元素并针对 React Native 原生问题提交补丁优化；未来团队计划开源相关研究成果，持续改进 React Native 生态。

### 🐎 [Opening up the Tuist Registry](https://tuist.dev/blog/2025/11/26/opening-registry)

[@Kyle-Ye](https://github.com/Kyle-Ye)：Tuist Registry 宣布完全开放，无需认证或创建账户即可使用。作为 Swift 生态首个完全开放的 Package Registry，目前已托管近 10,000 个包和 160,000+ 个版本。使用 Registry 的团队可获得高达 91% 的磁盘空间节省（从 6.6 GB 降至 600 MB），CI 缓存恢复时间从 2 分钟缩短至 20 秒以内。开发者只需运行 `tuist registry setup` 或 `swift package-registry set` 命令即可配置，支持标准 Xcode 项目、Tuist 生成项目和 Swift Package。未认证用户每分钟可发起 10,000 次请求，对于大多数项目已足够使用。

### 🐕 [Initializing @Observable classes within the SwiftUI hierarchy](https://nilcoalescing.com/blog/InitializingObservableClassesWithinTheSwiftUIHierarchy/)

[@AidenRao](https://weibo.com/AidenRao)：本文探讨了在 SwiftUI 中正确初始化和管理 `@Observable` 对象的几种模式。作者通过清晰的代码示例，层层递进地讲解了使用 `@State` 的必要性、如何通过 `.task` 修饰符避免不必要的初始化开销，以及如何利用 `environment` 实现跨场景的状态共享。如果你对 `@Observable` 的生命周期管理还有疑惑，这篇文章会给你清晰的答案。

### 🐕 [Demystifying the profraw format](https://leodido.dev/demystifying-profraw/)

[@david-clang](https://github.com/david-clang)：本文深入剖析了 LLVM 用于代码覆盖率分析的 `.profraw` 二进制文件格式及其生成机制。其核心原理分为编译时插桩与运行时记录两步：

1. 编译时，Clang 的 `-fprofile-instr-generate` 选项会在程序中插入计数器 (`__profc_*`) 和元数据 (`__profd_*`) 到特定的 ELF 节中，并在关键执行点插入 Load/Add/Store 指令进行实时计量。
2. 运行时，LLVM 运行时库通过 `atexit()` 钩子，在程序终止时自动将内存中这些节的最终数据序列化到 `.profraw` 文件中。该文件依次包含 Header、Data 段（元数据）、Counters 段（执行次数）和 Names 段，完整记录了代码执行轨迹。

## 工具

### 🐕 [CodeEdit](https://github.com/CodeEditApp/CodeEdit)

[@JonyFang](https://github.com/jonyfang)：CodeEdit 是一个面向 macOS 的开源代码编辑器项目，使用 Swift/SwiftUI 开发并由社区维护。README 将其定位为纯 macOS 原生编辑器，并以 TextEdit 与 Xcode 作为两端参照：在保持更简洁的使用体验的同时，按需扩展到更完整的编辑与开发能力，并遵循 Apple Human Interface Guidelines。项目目前处于开发中，官方提示暂不建议用于生产环境，可通过 pre-release 版本试用并在 Issues/Discussions 反馈。README 列出的功能包括语法高亮、代码补全、项目级查找替换、代码片段、内置终端、任务运行、调试、Git 集成、代码评审与扩展等。

## 代码

### 🐕 [mlx-swift-lm](https://github.com/ml-explore/mlx-swift-lm)

[@Barney](https://github.com/BarneyZhaoooo)：MLX Swift LM 是一个面向 Apple 平台的 Swift 包 , 让开发者能够轻松构建 LLM 和 VLM 应用。通过一行命令即可从 Hugging Face Hub 加载数千个模型 , 支持 LoRA 微调和量化优化。提供 MLXLLM、MLXVLM、MLXLMCommon、MLXEmbedders 四个库 , 涵盖语言模型、视觉模型和嵌入模型的完整实现。开发者只需几行代码就能创建对话系统 , 所有功能通过 Swift Package Manager 便捷集成。

## 内推

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