# 老司机 iOS 周报 #357 | 2025-11-03

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

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

考虑到 iOS 内容近期较少，即使增加 Vibe Coding 相关实践以及优秀的大模型科普，内容也时长不够撑起一期高质量的周报。因此我们考虑暂时将节奏调整为双周报，后续会随着内容的丰富程度随时变化，下一期更新的时间将在 11 月 17 日。

## 新闻

### [Swift SDK for Android 正式发布](https://www.swift.org/blog/nightly-swift-sdk-for-android/)

Swift 在 nightly toolchain 提供了 Android SDK 的支持，底层基于 JNI 与 Java/Kotlin 进行通信。目前还没有提供任何 UI 框架的 Binding，所以目前主要用途还是替代 C/C++ 在 Android 上的作用。

### [Swift 类型检查优化路线图发布](https://forums.swift.org/t/roadmap-for-improving-the-type-checker/82952)

Swift 的 type-checker 终于要迎来一波优化，像下面这段代码在 6.2 里会提示 `the compiler is unable to type-check this expression in reasonable time`，但在目前 Swift 的 main 分支里只需要 4ms 就可以完成类型检查：

```swift
func test(n: Int) -> Int {
  return n == 0 ? 0 : (0..<n).reduce(0) { x, y in
    (x > 0 && y % 2 == 0) ? (((x + y) - (x + y)) / (y - x)) + ((x + y) / (y - x)) : x
  }
}
```

除此之外还有其它各种针对性的优化，并且核心开发组也给出了详细的 Roadmap，大家可以期待一下 Swift 6.3 的类型检查提升。

## 文章

### 🌟 🐢 [iOS 崩溃防护全新方案，可配置兜底任意的崩溃。超详细解读，含 MVP 代码](https://mp.weixin.qq.com/s/4YcdW_K46WZAiXbfYEBofA)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)：本文主要介绍了快手自研的 Ekko 安全气垫框架。文章首先指出传统 iOS 安全气垫存在硬编码导致的可扩展性差、被动防御及 “盲兜” 带来的潜在风险等问题，提出需解决增强兜底能力和降低兜底影响两个核心问题。接着阐述 Ekko 的设计思路，其区别于传统方案，在异常发生后闪退前，通过异常特征信息决策是否兜底，实现控制流转移让 App 免于崩溃，具备能力全量覆盖和影响精准可控的突破。随后详细讲解其核心原理，包括函数调用约定、C++ 异常处置中的栈回溯机制，以及基于 libunwind 栈回溯的实现、触发入口和判断已捕获异常的逻辑优化。还给出了 MVP 版本的核心代码及验证示例，最后说明 Ekko 是崩溃处置的最后防线，且其能力并未止步于 NSException，后续将探讨更多如 Mach 崩溃、Android 系统的 Java/Native Exception 等崩溃的兜底止损。

### 🐎 [How to hide a view in a screenshot](https://www.swiftwithvincent.com/blog/how-to-hide-a-view-in-a-screenshot)

[@david-clang](https://github.com/david-clang)：作者利用 UITextField 在 isSecureTextEntry = true 时自带的“截图防泄露”机制，将需要隐藏的视图嵌入其安全子视图中，从而实现内容在截图与录屏时自动隐藏的效果，作者还用 UIViewRepresentable 封装出 .hideInScreenshot() 修饰符，让 SwiftUI 也能轻松实现防截图效果。

### 🐕 [static const in header cost: dyld ships with redundant 2KB data copy](https://kyleye.top/posts/dyld-redundant-data-copy/)

[@阿权](https://github.com/bqlin)：作者发现 dyld 代码库存在一个微妙但代价高昂的问题：`sVersionMap` 符号因头文件定义不当导致的冗余数据拷贝。问题原因是 `sVersionMap` 被定义为 `static const`，且定义在头文件中，该头文件被多个源文件包含，导致最终二进制产物出现大量冗余的 `sVersionMap` 副本。作者给出最低成本且现代的解决方案：将 `static const` 替换为 `inline constexpr`。修复后，dyld 的 `__const` 段大小减半！dyld 作为系统核心组件，即使是 2KB 的冗余也会随着进程的加载放大其影响。

给我们带来的启示是在头文件实现代码都要特别小心，头文件定义方法实现虽然方便，但也会带来额外的资源开销。

此外[本文作者 Kyle-Ye](https://github.com/Kyle-Ye) 还是苹果 swiftlang 多个 repo 的主要维护者，为作者的技术热情与专业致敬🫡

### 🐢 [Build performance analysis for speeding up Xcode builds](https://www.avanderlee.com/optimization/analysing-build-performance-xcode/)

[@Cooper Chen](https://github.com/cjlcooper)：这篇文章系统介绍了如何分析与优化 Xcode 的构建性能，是一份面向 iOS/Mac 开发者的高效实践指南。文章从构建时间测量入手，讲解了如何利用 `Build Timeline` 和 `Build Timing Summary` 工具定位性能瓶颈，并通过实用示例展示了多种优化策略，包括精简构建脚本、降低 Swift 类型检查复杂度、合理配置构建参数以及优化 Swift Package 插件等。作者强调“先测量、后优化”的原则，鼓励开发者用数据驱动改进，而非凭经验猜测。文中还提供了可直接使用的命令与配置技巧，如仅在 Release 构建中执行脚本、使用编译器参数检测慢函数、开启脚本并行执行等，帮助团队显著提升构建效率。文章最后提醒，构建优化是一个持续的过程，需要长期监控与团队协作。整体来看，这是一篇兼具实用性与指导性的技术文章，非常适合希望让 Xcode 构建更快速、更稳定的开发者阅读与参考。

### 🐕 [微信开发工程师总结的20条C++性能陷阱与实用特性，读起来很过瘾](https://mp.weixin.qq.com/s/fDb82xdDKk9ONGCKvDialg)

[@老驴](https://weibo.com/u/6090610445)：这是一篇来自微信团队的内容扎实、视角独到的 C++ 实践总结。作者从编译器优化与性能陷阱出发，系统梳理了现代 C++ 中最常被忽视的隐性开销与最佳实践。从 shared_ptr 到 string_view，从语言特性到工程经验，每一条经验都源自真实的项目反思与优化实战。无论是关注性能的资深开发者，还是希望深入理解现代 C++ 的工程师，都能从中获得启发与思考。

## 工具

### [Sideloadly: The Ultimate iOS Sideloading Tool](https://sideloadly.io/)

[@EyreFree](https://github.com/EyreFree)：Sideloadly 是一款轻量高效的 iOS 侧载工具，支持在非越狱设备上安装 IPA 包，无需 App Store 审核。核心优势：兼容 iOS 16+ 及最新 Xcode 版本，支持 Apple ID 签名（免费可用），可自定义应用名称、图标，还能保留应用数据迁移。操作极简，拖拽 IPA 即可完成安装，解决开发测试中 “快速分发内测包”、“绕过 App Store 临时安装” 等需求，对比其他工具更稳定、无设备数量限制。适合团队内部测试包分发、第三方 IPA 安装场景，大幅提升开发迭代与测试效率，是 iOS 开发者必备的实用工具。

## 内推

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