# 老司机 iOS 周报 #325 | 2025-03-03

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

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

## 文章

### 🐎 [Presenting and Managing Expandable Sections in SwiftUI](https://serialcoder.dev/text-tutorials/swiftui/presenting-and-managing-expandable-sections-in-swiftui/)

[@DylanYang](https://github.com/Dylan19Yang)：作者为我们介绍了如何在 SwiftUI 中实现一个可通过交互来展开和收起的 Section。在 Section 的 header 上实现一个自定义 view，并在点击时反转 Section 的 isExpanded 属性来达成目标。文章内容非常简单基础，并且有丰富的代码演示，适合刚接触 SwiftUI 的同学学习。

### 🐕 [First analysis of Apple's USB Restricted Mode bypass (CVE-2025-24200)](https://blog.quarkslab.com/first-analysis-of-apples-usb-restricted-mode-bypass-cve-2025-24200.html)

[@david-clang](https://github.com/david-clang)：本文分析了 iOS 中 [CVE-2025-24200](https://support.apple.com/en-ca/122174) 漏洞的技术细节，该漏洞利用 Accessibility 框架中状态管理不严密的问题，使得攻击者能够在设备锁定时绕过 [USB Restricted Mode](https://support.apple.com/en-us/111806)，从而实现未授权的 USB 数据连接。文章中的分析思路和手段很值得学习。

作者通过对比补丁前后的固件，详细说明了漏洞修复涉及的关键代码改动，例如在 AXSpringBoardServerInstance 和 profiled 守护进程中新增的状态检查逻辑。接着展示了利用辅助功能（如 Assistive Touch 或 Switch Control ）触发漏洞的可能攻击路径，即在设备锁定且辅助功能激活时，通过触发警告弹窗诱导用户点击“ OK ”，进而调用 `_setUSBRMPreferenceDisabled` 函数禁用 USB Restricted Mode，使攻击者有机会绕过物理安全防护措施。

### 🐎 [How Swift's server support powers Things Cloud](https://www.swift.org/blog/how-swifts-server-support-powers-things-cloud/)

[@阿权](https://github.com/bqlin)：文章分享了 Things App 如何将自身的后端服务使用 Swift 重写的经验。

Things Cloud（Things App 后端服务），原本是使用 Python 2 和 Google App Engine 构建的，虽然稳定，但面临内存占用高、响应速度慢、后端语言缺乏类型静态安全检查导致上线错误不可预知的问题。在探索了多种后端语言后，因为 Things App 开发已经深度使用 Swift，熟悉其优势（可能是客户端人力充足🐶），最终选择使用 Swift 重写后端。使用 Vapor + SwiftNIO 编写主要的后端业务，通过 RediStack 调用 Rdis、MySQLKit 调用 Aurora、Soto 调用 S3、APNSwift 调用 APNs。最终通过 Linux 编译产物，构建到 Docker 中以便部署到集群中。最终算力节省 3 倍多，响应时间缩短 4 倍多。

在降本增效的大流中，或许用 Swift 也能闯出一番天地。

### 🐕 [What ’ s new in Swift 6.1?](https://www.donnywals.com/whats-new-in-swift-6-1/)

[@Cooper Chen](https://github.com/cjlcooper)：这篇文章介绍了 Swift 6.1 的最新特性和改进。Swift 6.1 是一个较小的版本，主要包含错误修复和用户体验提升。其中主要讨论了两个特性：
1. **Task Groups 的变化**：Swift 6.1 对 TaskGroup 进行了改进，开发者不再需要显式定义子任务的返回类型。编译器可以根据第一个添加的任务自动推断类型，这样可以简化代码。
2. **导入成员可见性的新模式**：Swift 6.1 引入了一种新的成员可见性模式，允许开发者在导入特定模块时，仅使用该模块中的扩展。这解决了当多个模块中有相同函数名时，编译器可能产生混淆的问题。通过这种方式，开发者可以更明确地控制代码中使用的扩展，避免意外调用错误版本的函数。

总体而言，这些改进增强了 Swift 的易用性，提升了开发体验。

## 工具

### 🐎 [Interactive & Beautiful CLI Tools with Noora](https://swifttoolkit.dev/posts/noora-package)

[@Smallfly](https://github.com/iostalks)：Noora 是一款创新性的 Swift 命令行工具包，致力于将枯燥的黑白终端转化为专业、交互式的开发者体验。它提供了丰富的组件——从醒目的成功 / 错误提示、智能的 Yes/No 选择框，到动态进度指示器，再到灵活的主题定制功能——让 CLI 工具瞬间焕发活力。如果你的应用需要进行命令行交互，值得一试。

### 🐎 [基于 WWDC 内容的 AI 问答平台 Ask WWDC](https://askwwdc.com)

[@xiaofei86](https://github.com/xiaofei86)：Ask WWDC 以 WWDC 内容对 LLM 进行检索增强。基于 LangChain 和  GPT-4o，目前免费使用，响应速度尚可。作者同时开放了其基于 Next.js、Upstash 和 ModalLabs 的服务，用户也可以构建自己的 Ask Site。

## 内推

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