# 老司机 iOS 周报 #179 | 2021-11-01

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

## 新闻

### [App 内活动正式开放](https://developer.apple.com/cn/news/?id=zghdvfza)

[@Parsifal](https://github.com/ParsifalC)：WWDC 21 中提到的 App 内活动于 10 月 27 日正式开放了。需要注意的是，要开始相关操作，**帐户持有人需要在 App Store Connect 里加入新版 App Store 提交体验**。您将能够体验更多功能，包括在一次提交中包含多至 10 个活动、**不使用新的 App 版本即可提交活动**等。创建活动后，App Store 中进入对应 App 的主页后就会弹出该活动卡片，并允许分享至社交平台，后续苹果也会继续迭代优化 App 内活动的运营数据等功能。

### [TestFlight 公开链接名额管理策略调整](https://developer.apple.com/cn/testflight/)

[@Parsifal](https://github.com/ParsifalC)：TestFlight 是苹果官方提供的内测平台，苹果也一直在优化它的使用体验。最近一次比较大的更新或许是 2019 年推出的公开链接，也自那个时候开始，国内也越来越多的厂家采用了 TestFlight 进行内测。按照 TestFlight 的使用文档，开发者可以通过公开链接提供 10000 个名额给内测用户。以往在实际使用中，部分开发者都会通过删除已经接受邀请的用户来释放名额，从而突破 10000 额度的限制。但最近，苹果似乎调整了这一策略。经过测试，目前单个 App 的 10000 个额度将会锁定在 90 日以内不变，也就是说不管是通过新建测试组、更新 build，还是通过删除已邀请用户或手动过期 build 等等这些方式，均不能释放 10000 以内的名额。

## 文章

### 🌟 🐕 [iOS 性能检测新方式 - AnimationHitches](https://mp.weixin.qq.com/s/SQgxvBztLQFZ6QV43iN2Vg)

[@JonyFang](https://github.com/JonyFang)：本篇主要介绍了 RenderLoop 及新的一帧展现给用户的整个流程。着眼于什么是卡顿，及它的两种类型：提交卡顿和渲染卡顿，最终定义了卡顿时间比，用以测量当前 App 的卡顿程度和性能。本篇可以带着读者对整个渲染循环和卡顿类型有更清晰的认识，日常编码中也可以尽量避免这些问题。

### 🌟 🐕 [58 同城 iOS 混编项目无用代码检测方案介绍](https://mp.weixin.qq.com/s/RU8jhQJ_LSFEJcZX3bXmLg)

[@Barney](https://github.com/BarneyZhaoooo)：本文介绍了混编项目无用代码检测在 58 的实践步骤和心得，已开源。

- **混编项目无用代码检测的几种手段**
* OC 和 Swift 各自的实现
- 遇到的困难

### 🐎 [苹果官方 “隐私洞见” 来了](https://mp.weixin.qq.com/s/jo9sb2AfrnzZWpDDuqJnCw)

[@Smallfly](https://github.com/iostalks)：苹果在 iOS 15.2 测试版中引入了应用隐私报告，旨在向用户提供已开启隐私权限的应用被获取敏感信息的频率。其中包括位置、联系人、相机、麦克风和照片等信息。

Apple 还会记录应用程序在后台访问了哪些域名，这个功能可以说让偷窥应用无处遁形。

通过如下方式可以启用隐私报告：
* 打开 **设置** 应用程序
* 进入 **隐私** 页面，滑到底部
* 点击 **应用隐私报** 告，打开「应用隐私报告」页面
* 点击 **打开应用隐私报告**

### 🐢 🚧 [iOS 隱私與便利的前世今生](https://medium.com/zrealm-ios-dev/ios-隱私與便利的前世今生-9a05f632eba0)

本文综述性的介绍了从 iOS 7 到 15 Apple 在隐私方面做的持续改进：这些改进背后的原因以及对用户来说有什么好处？

> 推荐人 [zhgchgli0718](https://github.com/zhgchgli0718)

### 🐕 [干货 | 携程 APP Native/RN 内嵌 Flutter UI 混合开发实践和探索](https://mp.weixin.qq.com/s/yqChBHJ_QEpjuGYdIJsVzg)

[@ChengzhiHuang](https://github.com/ChengzhiHuang)：携程当前 Flutter 的使用占比逐步提高，而老页面的技术栈还有 Native 或者 RN，因此做出了混栈的尝试。RN 嵌套 Flutter 的具体实现，其他资料相对较少，方案较为原始，仅供参考。相对于 RN 底层还是原生控件，Native 与 Flutter 交互还有很多细节值得研究。

携程团队当前的选择可能基于历史负担，但个人还是不推荐同时维护三种技术栈，新项目选型更是不可取：内存问题与开发成本都将逐步不可控。可以观察携程团队的后续的取舍。

### 🐕 [【译】 Flutter 延迟加载组件 【包体积优化 | 动态化】](https://juejin.cn/post/6970870114316976142)

[@CrazyCoderShi](https://github.com/CrazyCoderShi)：Flutter 2.2 带来了很多新的功能，其中就有一个大家期待已久的功能: 按需加载「Deferred Components」。 这一特性可以让我们将 Flutter 产物拆分为多个组件，并在需要时再进行下载。 借助于这一特性，官方 Gallery 演示程序安装时的大小压缩了 46% （200KB 的代码和 43MB 的资源减少）本文向大家介绍，如何使用延迟加载功能。遗憾的是，该功能只能在 Android 平台使用，iOS 上不可用 😄。

## 摸鱼周报

[@摸鱼周报 #31](https://mp.weixin.qq.com/s/DQpsOw90UsRg6A5WDyT_pg)：第三十一期周报来啦，从本期开始周报里面会尝试加入一些 Apple 最近公布的相关活动介绍。

* 本期话题：关于 In-App Events 的一些介绍。
*  Tips：优化 Xcode 增量编译的几个小技巧。
* 面试模块：一道 RunLoop 相关题目。
* 优秀博客：本期博客主题是 Swift 的高级中间语言：SIL。
* 学习资料：raywenderlich 新出的 Flutter 教程；一份认知者偏差手册。
* 开发工具：一个终端命令补全工具：fig。

## 工具

### [Aquarius](https://github.com/CrazyFanFan/Aquarius/blob/master/README_CN.md)

[@红纸](https://github.com/nianran): Aquarius 是一个解析 Podfile.lock 的 GUI 工具，输出相比于 [cocoapods-graph](https://github.com/erickjung/cocoapods-graph) 的图输出更加友好（依赖数量、依赖关系等），其使用 SwiftUI 进行编写，开发者可以定制自己的各种需求~

> 推荐人：[lijianfeigeek](https://github.com/lijianfeigeek)

## 赞助者

虚位以待..

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