# 老司机 iOS 周报 #193 | 2022-02-28

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

## 文章

### 🐎 [【StoreKit2 JWS 签名验证】Code-Level Support 下的 X.509 证书链验证之旅](https://juejin.cn/post/7039622474274701348#heading-14)

[@ChengzhiHuang](https://github.com/ChengzhiHuang)：本文提供了通过 PHP 实现服务端校验 JWS 票据真实性的具体实现代码，并附上了与苹果 PKI 团队的邮件交流记录，也很有意思： ~~beg you~~ 以及加上代码注释以明确问题的理解一致等。[苹果根证书下载地址](https://www.apple.com/certificateauthority/)。

### 🐎 [iOS 逆向工具：逆向做的好，码农下班早丨音视频工具](https://mp.weixin.qq.com/s/QhVyUzyZN_h1qjEZhO9jYQ)

[@Barney](https://github.com/BarneyZhaoooo)：App 逆向工程是做竞品分析的常用方法，本文对 iOS 如何逆向做了简单的介绍。

1. 非越狱 App 调试
  - 环境配置
  - 安装 MonkeyDev
  - 使用 MonkeyApp 调试 App
  - 导出调试 App 的沙盒文件
2. 越狱
3. 砸壳

### 🌟 🐕 [iOS 音频采集 Demo：采集音频数据并存储为 PCM 文件](https://mp.weixin.qq.com/s/FDR_5cMfAJQgZhSvjgeWYA)

[@JonyFang](https://github.com/JonyFang)：iOS/Android 端开发同学如果想开始学习音视频开发，最丝滑的方式是对[音视频基础概念知识](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MjM5MTkxOTQyMQ==&action=getalbum&album_id=2140155659944787969&scene=21#wechat_redirect)有一定了解后，再借助本地平台的音视频能力上手去实践音视频的采集 → 编码 → 封装 → 解封装 → 解码 → 渲染过程，并借助[音视频工具](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MjM5MTkxOTQyMQ==&action=getalbum&album_id=2216997905264082945#wechat_redirect)来分析和理解对应的音视频数据。

本篇是「音视频工程示例」的第一篇：iOS 音频采集 Demo。这个 Demo 里包含以下内容：

1. 实现一个音频采集模块；
2. 实现音频采集逻辑并将采集的音频存储为 PCM 数据；
3. 详细的代码注释，有助理解代码逻辑和原理。

### 🌟 🐕 [iOS微信全文搜索技术优化](https://mp.weixin.qq.com/s/Ph0jykLr5CMF-xFgoJw5UQ)

[@kemchenj](https://kemchenj.github.io/)：这篇文章讲述了微信团队 2021 年优化 iOS 客户端搜索体验的过程，从技术选型开始，到方案落地以及最后的性能调优，非常具有学习价值，强烈推荐有类似需求的同学阅读。

### 🐎 [cocoapods-downloader 设计概要](https://mp.weixin.qq.com/s/J10EbVTAb_u_yDCThxFJYg)

CocoaPods 是我们非常熟悉的工具了，本文就介绍了 cocoapods-downloader 的代码设计，并在文末给出了工厂类对具体子类解耦的一个优化方案。

### 🐕 [高级 SwiftUI 动画 — Part 2：GeometryEffect](https://mp.weixin.qq.com/s/rE_HILLt-uxzScS7wXh5jw)

[@AidenRao](https://weibo.com/AidenRao)：在 [本系列的第一部分](http://mp.weixin.qq.com/s?__biz=MzAxNzgzNTgwMw==&mid=2247487817&idx=1&sn=2dc07e2a4a58e4b0ba02b05ea5952734&chksm=9bde233daca9aa2b8312a91b61e259ba17f88be9e7863e7a159262bdd36825c9479baeba471f&scene=21#wechat_redirect) 介绍了 Animatable 协议，以及我们如何使用它来为路径制作动画。

本系列的第二部分，介绍一个新的工具 GeometryEffect，用同样的协议对变换矩阵进行动画处理。

第三部分介绍强大的 AnimatableModifier：[高级 SwiftUI 动画 — Part 3：AnimatableModifier](https://mp.weixin.qq.com/s/M6MW3idXS6jZJtl4Mz5DGQ)，用于实现复杂动画。

文章结合动画 Gif 和源码为案例，深入的探讨了一些创建 SwiftUI 动画的高级技术。

## 代码

### [Mocha](https://github.com/White-White/mocha)
[@Smallfly](https://github.com/iostalks)：Mocha 是一款 Swift 编写的 Mach-O 文件可视化工具，通过解释 Mach-O 文件中每一个字节的含义，帮助使用者理解 Mach-O。

### [ScreenShield](https://github.com/RyukieSama/Swifty)
[@Damien](https://github.com/ZengyiMa)：ScreenShield 是极其轻量化的截屏防护方案，任何需要被保护的 View 作为子视图放入保护的视图中即可达到截屏时隐藏内容的效果。

### [MetalPetal: An image processing framework based on Metal ](https://github.com/MetalPetal/MetalPetal)
[@莲叔](http://github.com/aaaron7)：顾名思义，MetalPetal 是一个用 Metal 做图像处理的框架。GPU 的图像处理框架，我们很容易想到的就是大名鼎鼎的 GPUImage，MetalPetal 可以说就是一个 Metal 版的 GPUImage。苹果近几年推广 Metal 的决心相信大家都有目共睹，Metal 不仅能提供了现代化的 API，也提供了碾压 OpenGL 的性能，是 iOS 上做 GPU 计算的不二之选。但如果我们希望用 Metal 来做图像和视频处理的时候，你会发现需要写非常多的代码才能够完成功能，比如图片加载，上传成纹理，创建 gpu 的 pipelie 等等，而视频则更复杂，涉及到解码、调度、丢帧等一系列逻辑。MetalPetal 这类框架就是为了这个这样的问题而生，让你通过简单的函数调用就完成 GPU 的计算。大幅提升开发效率。

## 摸鱼周报

[@摸鱼周报 #44](https://mp.weixin.qq.com/s/q__-veuaUZAK6xGQFxzsEg)：第四十四期摸鱼周报来啦，一起来看下本期概要：

* 话题：Apple 将推出 Tap to Pay 功能
* Tips：解决 iOS 15 上 APP 莫名其妙地退出登录
* 面试模块：Dealloc 使用注意事项及解析
* 优秀博客：ARM64 汇编入门及应用
* 学习资料：Github: How to Cook
* 开发工具：文件搜索应用：EasyFind

## 赞助者

虚位以待..

**非常感谢以上赞助者的支持，如果你也有赞助我们的兴趣，欢迎添加微信 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）
