# 老司机 iOS 周报 #361 | 2025-12-29

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

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

## 文章

### 🐕 [Exploring interactive snippet intents](https://www.nutrient.io/blog/wwdc25-snippet-intents/)

[@BluesJiang](https://github.com/BluesJiang): 这篇文章主要探索了一下 App Intent 框架。苹果在 WWDC25 上引入了 App Intent 的可交能力，在 Widget、App Shortcut、Intent 中都可以使用。作者探索了这个 App Intent 的交互框架和编码逻辑，旨在了解这个交互框架可以做什么，不可以做什么，交互分范式是什么样的。
这个框架使用 SwiftUI 编码，但是交互逻辑与方式则有很大的不同，在 App Intent 框架下，不存在传统生命式框架下的状态和交互变化，甚至按钮的触发事件也不是直接的，而是间接通过注册的 Intent 来完成响应。
如果有需要在 App 外做即时响应的功能，可以考虑研究一下。

### 🐎 [使用 "git mv" 命令记录 Git 中文件名的大小写更改](https://oleb.net/2025/git-mv-case-change/)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)：这篇文章主要介绍了在 macOS 和 Windows 默认的大小写不敏感但保留大小写的文件系统中，直接修改文件名大小写时 Git 不会记录该名称变更，可能导致文件系统与 Git 存储的文件名不一致，进而引发后续使用（如跨大小写敏感文件系统、CI 打包）的问题，同时给出解决方案：使用 git mv 命令记录文件名大小写变更，若不便使用该命令，可通过 “先重命名为临时名称、再改为目标名称” 的两阶段提交方式实现同样效果。

### 🐎 [Swift Configuration 1.0 released](https://www.swift.org/blog/swift-configuration-1.0-released/)

[@AidenRao](https://weibo.com/AidenRao)：Swift Configuration 1.0 的正式发布。该项目旨在为 Swift 应用提供一套统一的配置管理方案，帮助开发者优雅地处理来自环境变量、配置文件乃至远程服务的各类配置项。通过它，我们可以告别过去分散繁琐的配置逻辑，以更清晰、安全和可维护的方式构建应用。

### 🐎 [Using associated domains alternate mode during development](https://tanaschita.com/ios-associated-domains-alternate-mode/)

[@DylanYang](https://github.com/Dylan19Yang)：作者向我们介绍了如何在调试 AASA(apple-app-site-association) 相关能力时，通过开发者模式使域名相关的改动可以即时的被同步到。开发者模式需要我们在对应域名上加上特定后缀，并且只对开发模式的签名文件生效。有调试相关能力需求的开发者可以参考一下。

### 🐢 [Command Line Interface Guidelines](https://clig.dev/)

[@zhangferry](zhangferry.com)：这篇文章是一份开源的《命令行界面（CLI）设计指南》，核心目标是结合传统 UNIX 原则与现代需求，帮助开发者打造更易用、更友好的 CLI 程序。虽然现在 GUI 非常普及，但 CLI 以其灵活、稳定、跨平台的优势在很多场景（例如 DevOps）都在放光发热。所以了解如何更好的设计 CLI 仍有必要，以下是从文章内挑选的几条重要设计指南：

* 基础规范：使用对应语言的命令行参数解析库，Swift 下是 [swift-argument-parser](https://github.com/apple/swift-argument-parser)；成功时返回 0，失败返回非 0；核心输出到 `stdout`（支持管道传递），日志，错误信息输出到 `stderr`（避免干扰管道）
* 帮助和文档：默认运行无参数时显示简洁的帮助，`-h/--help` 对应完整的帮助说明。
* 输出设计：人类可读最重要，如果为了人类可读破坏了机器可读，可以增加 `--plain` 参数输出机器可读内容，这有利于 grep、awk 工具的集成
* 错误处理：避免冗余输出，核心错误应该放在末尾
* 参数和标志：优先使用 `flags`，而不是依赖位置读参数；所有 `flags` 都提供短格式和长格式两种（`-h/--help`）；危险操作增加一个保护措施：输入名称、`--force` 标志等
* 健壮性与兼容性：及时响应用户的输入（100ms 以内），如果流程耗时增加进度反馈（进度条）
* 环境变量：避免占用 POSIX 标准变量；本地用 `.env` 管理但不应把 `.env` 当做配置文件；不要使用环境变量存储密钥等重要信息，这样很容易泄漏，推荐通过文件或密钥管理服务

### 🐕 [SwiftUI Group Still(?) Considered Harmful](https://twocentstudios.com/2025/12/12/swiftui-group-still-considered-harmful/)

[@Damien](https://github.com/ZengyiMa)：本文指出 SwiftUI 的 Group 会把修饰符“分发”给每个子视图，曾让 onAppear 被多次触发。onAppear/task 虽被苹果特殊处理，但文档未改，且自定义修饰符与在 List 内仍照分发。解决方案为：除非必须一次性给兄弟视图统一加修饰符，否则别用 Group，直接重复代码或拆视图更稳妥。

## 代码

### 🐢 [SwiftAgents](https://github.com/christopherkarani/SwiftAgents)

[@阿权](https://github.com/bqlin)：SwiftAgents 为 Swift 开发者提供了一套现代化、类型安全、并发友好的 AI Agent 开发框架，兼具强大的功能与优雅的 API 设计，适合在苹果全平台及 Linux 上构建下一代智能应用。

实现能力：

- Agent 框架：支持 ReAct、PlanAndExecute、ToolCalling 等多种推理模式
- 灵活内存系统：包含对话内存、滑动窗口、摘要记忆及可插拔持久化后端
- 类型安全工具：通过 `@Tool`、`@Parameter` 宏大幅减少样板代码
- 多代理编排：支持监督者-工作者模式、并行执行与智能路由
- 全平台支持：兼容 iOS 17+、macOS 14+、Linux（Ubuntu 22.04+）
- 强并发安全：基于 Swift 6.2 的 Actor 隔离与 Sendable 类型
- 可观测性与弹性：内置日志追踪、指标收集、重试策略与熔断器

适用场景：

- 对话式 AI 助手
- 自动化任务执行与决策流程
- 多  Agent 协同分析系统
- 需要持久化记忆与工具调用的复杂应用

### 🐕 [XcodeBuildMCP 1.15.0 released](https://github.com/cameroncooke/XcodeBuildMCP)

[@Cooper Chen](https://github.com/cjlcooper)：XcodeBuildMCP 是一个基于 Model Context Protocol（MCP）的开源工具，将 Xcode 的构建、运行与模拟器能力以标准化接口暴露给 AI Agent，使其能够真正参与 iOS / macOS 的开发流程。开发者只需在首次调用时设置好 project、simulator 和 scheme，之后的每一次调用都可以直接复用配置，“一次设定，次次生效”。

这一设计显著降低了上下文和参数负担：
- 上下文占用减少 24.5%（smaller context footprint）
- 每次调用所需参数更少（fewer params per call）

对于依赖 AI 自动编译、跑测试、定位问题的场景而言，这意味着更低的 Token 消耗、更稳定的 Agent 行为，以及更高效的工具调用体验。XcodeBuildMCP 是连接 Xcode 与 AI 工作流的关键基础设施，尤其适合构建长期、可持续的智能开发系统。

## 音视频

### 🐕 [CS193 Stanford 2025](https://cs193p.stanford.edu/)

[@极速男孩](https://github.com/ztlyyznf001)：这是是斯坦福大学计算机科学系著名的公开课程 CS193p: Developing Applications for iOS（iOS 应用程序开发）。主要涵盖最新的 iOS SDK 特性。根据网站最新信息（Spring 2025 版本），内容包括 Xcode 的使用、SwiftUI 的视图与修饰符、Swift 类型系统、动画、数据持久化（SwiftData）以及多线程等。

## 内推

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