# 老司机 iOS 周报 #221 | 2022-10-31

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

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

## 新闻

### [全新升级 | 第十七届 D2 终端技术大会终于来了~](https://mp.weixin.qq.com/s/e1ilPhCaJDT9takQE9vpBA)

D2 的前身是「前端技术论坛」，应该有不少前端朋友对它非常了解，去年大概有 2000 多个人报名。今年也升级成了「终端技术大会」，加入了不少客户端的内容，D2 不仅会重视内容的深度，同时也会拓宽内容的广度，希望和大家一起了解一线互联网在前端 / 客户端领域的技术探索与未来。此外，本届 D2 两大方向所擦出的火花，将为单一技术栈的同学带来更多方向性的输入。

从目前报名的议题上看含金量应该会非常不错。目前活动也已经正式官宣了，感兴趣的可以关注下。

### [Apple 的安全研究平台正式公开上线](https://mp.weixin.qq.com/s/M_NZF8F9r9PNkKTQbOycNg)

苹果的安全平台 [Apple Security Research](https://security.apple.com/) 正式公开上线，可以看作苹果将更加重视社区提交的安全报告。苹果承诺将更快地对提交的内容做出回应，并且提供了更便捷地追踪提交漏洞的方式，开发者能够及时获得状态的更新。并且团队上线了一篇 XNU 内存安全的 [kalloc_type 介绍](https://security.apple.com/blog/towards-the-next-generation-of-xnu-memory-safety/)文章。

同时直到 11月 30 日截止，[Apple Security Research Device Program](https://security.apple.com/research-device) 还在接收报名，对安全研究感兴趣的同学可以报名。

## 文章

### 🐢 [iOS 高级之美（六）—— malloc 分析](https://juejin.cn/post/6844904033908424717)

[@xuyafei86](https://github.com/xiaofei86)：“iOS 高级之美” 是作者对自己工作中研究的一些总结，涵盖了常见的 Runtime 面试考点。此系列文章围绕底层进行源码分析、LLDB 调试、源码断点和汇编调试，共有 6 篇文章：

1. iOS_objc4-756.2 最新源码编译调试
2. OC 对象底层上篇
3. OC 对象底层下篇
4. isa 原理分析
5. 类结构分析
6. malloc 分析

本篇针对 malloc 展开分析，感兴趣的同学可以阅读原文一探究竟。

### 🐎 [iOS ADRP 汇编指令与虚拟内存](https://juejin.cn/post/7159152535062888479)
[@Damien](https://github.com/ZengyiMa)：你了解 ADRP 吗？ ADRP 意为符号的页数地址，那么它是如何生成和确定的呢？本文作者会从最基本的 UITextView 的使用出发，深入汇编源码，一步步为我们展示阐述其中的原理，感兴趣的同学不妨一读。

### 🐎 [iOS SIGKILL 信号量崩溃抓取以及优化实践](https://mp.weixin.qq.com/s/2S3XIpKXMnYNFayeBE_d2Q)
[@JonyFang](https://github.com/JonyFang): 和其他信号不同，SIGKILL 不可被捕获，这是 Linux/Mach 内核的限制，为了让操作系统在程序无法响应的时候，可以从上一层控制进程的生命周期。自 iOS 13 后，引入了 MetricKit 框架，可以用来汇总和分析有关异常和崩溃诊断以及电源和性能。本文即介绍了如何使用 MetricKit 收集 SIGKILL 信号量、获取崩溃信息，基于 Code 的含义解析 SIGKILL 日志的过程。最后，也介绍了百度 App 常见的 SIGKILL 问题。

### 🐎 [Compiling Swift generics, Part I](https://forums.swift.org/t/compiling-swift-generics-part-i/60898)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)：这是讲解 Swift 泛型如何工作系列文章中的第一部，并且提供了文档和源码。文中首先对 Swift 泛型背后的关键思想进行了总体概述，然后继续讨论对理解 Swift 编译器很重要的基础材料：编译管道、模块系统、请求评估器、类型和声明，最后深入探讨了泛型实现的细节：从泛型声明的 AST 开始，然后讨论泛型签名、替换映射、一致性和泛型环境。


## 代码

### [推荐一个 Swift Concurrency 拓展库](https://github.com/ChimeHQ/ConcurrencyPlus)

[@Cooper Chen](https://github.com/cjlcooper)：这是一个轻量级的 Swift Concurrency 拓展库，在开发 Swift 并发相关方面提供了一些优秀的工具拓展。
- 提供基于 FIFO 排队的 TaskQueue
- 提供 CheckedContinuation 扩展用于提升效率
- 在桥接非异步代码时提升任务扩展的性能
- 提供了安全的异步集成 NSXPCConnection 扩展
- 提供 MainActor.runUnsafely 来解决不受控制的错误或注释不足的代码

## 内推

重新开始更新「iOS 靠谱内推专题」，整理了最近明确在招人的岗位，供大家参考

- [上海] 拼多多 - 特效团队 - Android/iOS
- [上海] 七猫小说 - iOS/Android/前端/go/大数据 高级、资深工程师
- [武汉] 微派网络 - 会玩app/青藤之恋 - iOS/Android
- [杭州] 手机淘宝 - 基础链路客户端团队 - iOS/Android
- [杭州] 淘宝 - 原生研发模式 - iOS/Android
- [杭州] 淘宝 - 跨端引擎与开放技术 - iOS/Android/C++
- [北京/深圳/广州/三亚] 字节跳动 - 剪映 - iOS / Android / PC / Web / C++ 工程师

具体信息请移步：https://www.yuque.com/iosalliance/article/bhutav 进行查看（如有招聘需求请联系 iTDriverr）

## 关注我们

我们是「老司机技术周报」，一个持续追求精品 iOS 内容的技术公众号，欢迎关注。

**关注有礼，关注【老司机技术周报】，回复「2021」，领取 2017/2018/2019/2020 内参**

![](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）
