# 老司机 iOS 周报 #308 | 2024-10-21

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

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

## 新闻

### Xcode 16 + withCheckedContinuation 崩溃

[@Kyle-Ye](https://github.com/Kyle-Ye): 如果你的 App 在近期适配了 iOS 18 SDK 并切换到了 Xcode 16 打包，在 App 崩溃监控可能会发现部分 withCheckedContinuation 崩溃。

这里目前上游总结了两个问题：
- @backDeploy 实现修复，只影响 iOS app on macOS，被 #76218 修复在 Swift 6.0.1 上了（还没有相关正式版 Xcode 版本）
  - 如果你的 App 有大量 iOS app on macOS 用户，可以等后续新 Xcode 版本放出后再升级 Xcode 16 系列，[社区总结的临时解决方案](https://github.com/RevenueCat/purchases-ios/issues/4177)是全部切换为 withCheckedThrowingContinuation 变体
- 因为 iOS 18 Beta 上的 ABI 变更导致的 crash。这个 Apple 员工认为符合预期，且在最终的正式版 18.0 上不会有问题。但仍会影响 iOS 18.0 Beta 和部分 iOS 18.1 Beta。
  - 如果你的 App 有大量使用 Beta 系统的用户(>1%)，建议也可以暂时延缓升级 Xcode 16.0 。

详细解释可以参考这篇 [Apple 员工回复](https://github.com/swiftlang/swift/pull/76218#issuecomment-2377064768)。

## 文章

### 🐕 🌟 [二刷 iOS 性能与编译，简单点说](https://mp.weixin.qq.com/s/X96VdTsskmNVCoqMzZjbgg)

[@Leo](https://github.com/leomobiledeveloper)：这篇文章是性能和编译相关的优质好文，文章内容覆盖了卡顿、内存、IO、CPU、启动、Bazel、构建等多个领域，每个领域下通过实践中遇到的问题展开，并给出了充分的代码示例，对想了解性能优化和编译构建领域的同学会很有帮助，推荐阅读。

### 🐎 [AVAudioEffectNode: painless low level audio effects written in Swift](https://orjpap.github.io/swift/low-level/audio/avfoundation/2024/09/19/avAudioEffectNode.html)
[@Smallfly](https://github.com/iostalks)：这篇文章介绍了 AVAudioEffectNode 的概念和用法，包括应用音频效果、创建自定义音效处理节点以及与其他音频节点的连接方法。作者提供了代码示例，展示如何配置和使用 AVAudioEffectNode，以便开发者可以在实时音频处理中轻松添加各种效果，如混响和延迟。通过这些实践，开发者能够增强音频应用的表现力和互动性。

### 🐎 [Copy On Write and the Swift-CowBox Macro](https://swifttoolkit.dev/posts/copy-on-write-cowbox)

[@Kyle-Ye](https://github.com/Kyle-Ye): 一篇关于 Swift Copy on Write 和 Swift-CowBox 原理分析的文章，并给出了 Swift-CowBox 的性能评测。

### 🐕 [Security-scoped bookmarks for URL access](https://www.avanderlee.com/swift/security-scoped-bookmarks-for-url-access/)

[@水水](https://www.xuyanlan.com/categories/iOS/)：本文介绍了 Security-scoped Bookmarks （Mac OS 上的安全区域书签）的在 URL 访问上的作用、使用范围和使用示例、以及使用时发现的一个由于 “ ScopedBookmarksAgent ” 引起的应用挂起的问题 ，虽然苹果已经在 macOS 15.1 beta 4 中修复，但是作者也提供了一个解决方案。 如果您有在 Mac 应用上存储给定 URL 资源的权限、并在后续使用中重新获得访问权限，可以使用安全区域书签功能来实现。

### 🐎 [Discover 3 new features of Xcode 16](https://www.swiftwithvincent.com/blog/discover-3-new-features-of-xcode-16)

[@zoeGuo](https://github.com/zoeGuo)：文章介绍了 Xcode 16 的三个新功能：新增“新建空文件”操作简化文件创建流程、支持直接粘贴代码块到项目导航器自动生成新文件；Asset Catalogs 新增查找引用功能，便于清理未使用资源；调试器推出 Backtrace 视图，优化堆栈跟踪的查看体验。

### 🐎 [Are Android apps THAT much smaller than iOS?](https://www.emergetools.com/blog/posts/are-android-apps-really-that-much-smaller-than-ios)

[@Crazy](https://github.com/jiyan135960)：本文是一篇对于新开发者的入门级文章，本文主要分析了为什么 iOS 应用在应用商店上展示的比 Android 应用在应用商店上展示的大出许多。文章首先言明了两个商店所使用的 Size 意义是不一样的，App Store 用的是安装大小，Goolge play 使用的是下载大小。之后又根据编译方式分析了两种 app 在编译与执行情况下的不同，并且给出了经过各种编译方式后安装到手机上的应用文件大小的对比图。最后文章也给出了关于 iOS 应用瘦身的一些建议，当然在产品的开发过程中，产物大小不能说明什么，但是良好的开发习惯与知识储备，确实可以令你的产物更小，更能节省用户的流量。

## 视频

### 🐎 [SwiftCraft 2024](https://www.youtube.com/playlist?list=PLugrLwuQvERqB4Kj8GOPwCnUMOLxJ0Ny9)

[@Damien](https://github.com/ZengyiMa): 这是今年 SwiftCraft 2024 大会的视频地址，SwiftCraft 是英国一个新的 Swift 开发者大会，在这里你可以学到 Swift 开发中的各种技术，如用 Swift 开发 App/ 游戏，如何做 Mobile 的 DevOps 等等。

## 代码

### [apple-knowledge](https://github.com/hack-different/apple-knowledge)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)：`Apple Knowledge` 是由 Hack Different 团队在 GitHub 上维护的项目，旨在提供关于苹果产品的逆向工程信息以及机器可读的苹果硬件数据库。该项目鼓励社区成员的参与，并且涵盖了多个技术领域，包括但不限于以下内容：

- Apple Silicon 和 ARM 架构：介绍 Apple Silicon 及 ARM 架构的工具、编译器及安全缓解措施
- 协处理器与底层硬件：包括 USB、NVMe、雷电接口等协议的分析，以及苹果神经引擎等协处理器的研究
- 网络与无线协议：涵盖 AWDL（无线分发链路）、iCloud、蓝牙通信及远程通信协议
- 越狱与安全研究：收录历史上的越狱工具和漏洞，例如 checkra1n 和 Fugu，以及与苹果系统保护相关的资源
- 系统配置与诊断：包括苹果的日志系统、恢复模式（FDR）及工厂数据恢复等详细信息


## 内推

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