# 老司机 iOS 周报 #184 | 2021-12-06

![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) 提出。

## 线下沙龙

### 🌟 [有赞移动技术沙龙火热报名中~](https://mp.weixin.qq.com/s/EdiV-CO80ONqx9-bKgciAA)

[@Parsifal](https://github.com/ParsifalC)：老司机今年联合企业举办的最后一场技术沙龙来啦~这次我们与有赞移动技术团队一起带来 **「质量·极致」** 为主题的线下沙龙活动。本次沙龙将涵盖中大型团队中把控线上稳定性的方方面面，共有 5 个主题，欢迎大家来现场学习！扫码即可参与报名！

- 《有赞移动 APM 实践》
- 《爱逛 Flutter 图片优化实践》
- 《有赞 Flutter 热修落地实践》
- 《有赞移动质量提升探索与实践》
- 《有赞移动质量保障体系》

![image](https://user-images.githubusercontent.com/7930911/144743442-165b0f36-d75a-4d38-8150-941960647068.png)

## 🌟 [Tech Talks 2021 - 中文专场 1217](https://developer.apple.com/cn/tech-talks/)

[@Parsifal](https://github.com/ParsifalC)：Tech Talks 2021 最后一批中文专场来啦~

- [探索出色 AR 体验的要素 （普通话）](https://developer.apple.com/events/tech-talks/dashboard/SR68FKF3QV/dashboard)
- [充分利用 App Review 流程（普通话）](https://developer.apple.com/events/tech-talks/dashboard/74LR339842/dashboard)，错过第一场的可以参加这次
- [设计出色的 iPad app（普通话）](https://developer.apple.com/events/tech-talks/dashboard/K2J9AL6RYT/dashboard)
- [将高性能视频与Metal集成（普通话）](https://developer.apple.com/events/tech-talks/dashboard/3VMP4RXSC4/dashboard)
- [使用 StoreKit 2 和 App Store Server API 为客户提供支持（普通话）](https://developer.apple.com/events/tech-talks/dashboard/7DH6V3D8RM/dashboard)
 
![image](https://user-images.githubusercontent.com/7930911/144744488-48e43b3c-835e-40bc-b06a-ffc9d993dff1.png)

## 新手推荐

### 🌟 [戴铭的 Swift 小册子](https://github.com/ming1016/SwiftPamphletApp)

[@老峰](https://github.com/Gesantung)：[小册子](https://github.com/ming1016/SwiftPamphletApp) 内容主要包括 Swift 语法特性、 Swift 官方社区动态、SwiftUI 等几个板块，面向 Swift 零基础的同学，包括一些直接可用的小例子，例子可以直接在工程中用或自己调试着看，可以使用作者开发的 macOS 程序来浏览，特别的程序是 Swift 写的，按照声明式 UI，响应式编程范式开发，源码也可以看看，推荐 Swift 新手及感兴趣的同学学习使用。

## 文章

### 🌟 🐢 [“杀死” App 上的疑难崩溃！](https://mp.weixin.qq.com/s/dHAiuHeF2n34DaPIGOtJaw)

[@水水](https://www.xuyanlan.com)： 作者分享了一个 58 同城 App 上遇到的疑难的崩溃，引出了 bugly 符号化不能正确解析的一些解决方案，过程中又发现了弱符号的问题，并按照这个研究方向在集团内做了一系列工具并解决了多个版本的历史遗留问题。

crash 解决方案是开发者需要持续关注的问题，周报中也多次推荐一些好的 crash 解决思路、工具等。小编建议读者们不管是否遇到类似问题都可以加以关注和思考。

### 🌟 🐎 [Solving Mysterious Logout Issues on iOS 15](https://sourcediving.com/solving-mysterious-logout-issues-on-ios-15-8b818c089466)

[@Smallfly](https://github.com/iostalks)：Cookpad App 在 iOS 15 上冷启动登录状态异常登出，作者经过一系列的排查，最终定位到和 iOS 15 系统的「pre-warm」机制有关，该机制的相关内容目前还不多，感兴趣的同学可以关注下。

### 🐕 [Web API Client in Swift](https://kean.blog/post/new-api-client)

[@JonyFang](https://github.com/JonyFang)：有了 Async/Await 和 Actors 的特性，现在在 Swift 中设计自定义 Web API 相比以往可以通过少量的抽象，使代码易于理解和扩展，文中进行了一些实践演示应用。

### 🐕 [自己搞一个 MemoryGraph 工具行不行？](https://mp.weixin.qq.com/s/pggPc5gWpV6ZX0rnVpN22Q)

[@Barney](https://github.com/BarneyZhaoooo)：答案是行！本文主要记录了自己搞一个 MemoryGraph 的调研过程，对比了业内方案，有自己的分析和思考。

### 🐕 [如果 Safari 做不到对，快有何用？](https://coderemixer.com/2020/10/21/safari-is-fast-but-so-what/)

[@JonyFang](https://github.com/JonyFang)：描述了 Safari cache POST 请求和 Safari cache GET requests with cache disabled 问题的现象和复现过程。

### 🐎 [What role do Tasks play within Swift’s concurrency system?](https://www.swiftbysundell.com/articles/the-role-tasks-play-in-swift-concurrency/)

[@zvving](https://github.com/zvving)：Swift5.5 引入的并发编程，Task 带来结构化并发 API，提供创建、组织、取消任务的简明方式；Actor 提供良好数据隔离方式，保障并发安全。本文作者通过页面中后台加载网络数据并主线程刷新内容的例子，介绍如何更好的使用 Task + MainActor。

### 🐎 [Editing Multiple Constraints](https://useyourloaf.com/blog/editing-multiple-constraints/)

[@J_Knight_](https://github.com/knightsj)：本文介绍了批量编辑 Interface Builder 里约束的方法，习惯用 Interface Builder 的读者可以参考借鉴。

### 🐎 [M1 设备的 Xcode 编译问题深究](https://juejin.cn/post/7037037120158269448)

[@Parsifal](https://github.com/ParsifalC)：苹果推出 M1 芯片的 MacBook 已经一年了，不少小伙伴都陆续用其进行开发。M1 芯片是属于 ARM 架构，而之前的 Intel 则是 x86_64 架构，这对于我们做 iOS/Mac 开发就有了些不同，比如原来 64 位设备后模拟器架构只包含 x86_64，现在多了个 ARM64。虽然为了方便开发者平滑过渡，苹果已经尽可能地解决了一些问题，但实际开发过程中仍然会存在部分问题。这篇文章归纳总结了 M1 设备推出后 Xcode 可能存在的编译问题，并都给出了解决方案。

## 摸鱼周报

[@摸鱼周报 #36](https://mp.weixin.qq.com/s/K_JHs1EoEn222huWIoJRmA)：第三十六期摸鱼周报来啦，一起来看下本期概要：

* 话题：Typora 开启收费模式，支持！（补充：目前国内网站被封锁，暂无法访问）
* Tips：混编｜为 Objective-C 添加枚举宏，改善混编体验。
* 面试模块：事件传递及响应链。
* 优秀博客：几篇关于 Swift 字符串的优秀博客。
* 学习资料：独立开发者经验分享。
* 开发工具：思源笔记，一款本地优先的个人知识管理系统， 支持细粒度块级引用和 Markdown 所见即所得。

本期访谈邀请到的是一位优秀的 iOS 程序媛，一起来聊一下她眼中的 iOS。可以点击这里查看全文：[人物访谈 | 一位 iOS 程序媛](https://mp.weixin.qq.com/s/XIaiNY2oNEtayPcGNSos_A)

## 赞助者

虚位以待..

**非常感谢以上赞助者的支持，如果你也有赞助我们的兴趣，欢迎添加微信 iTDriverr 哦~**

## 内推

老司机周报团队联合知识小集和 SwiftGG 翻译组收录了一份靠谱的内推职位。

如果你想**找工作**，点这里：https://www.yuque.com/iosalliance/article/bhutav

如果你想**招人**，点这里：https://www.yuque.com/iosalliance/article/ycyhf3

当然，也欢迎你关注我们每一期的周报，我们会在每期周报底部及时更新编辑内推岗位。

## 关注我们

我们开通了公众号，每期发布时公众号（LSJCoding）会推送消息，欢迎关注。

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