# 老司机 iOS 周报 #273 | 2023-12-25

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

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

## 文章

### 🐎 [独立开发提高产品定位成功率：找到 3 个对标产品](https://juejin.cn/post/7312640704404832283)

[@zoeGuo](https://github.com/zoeGuo)：这是一篇独立开发者从自身经验中总结出的关于怎么找到产品方向，以及怎么提高产品定位成功率的文章。作者通过几个例子分别描述了“大池小鱼”原则，分别找到目标用户正在用的产品、同样卖点的产品以及你的参照产品，来快速定位你的独立开发产品。有多少读者是独立开发者或者正跃跃欲试独立开发呢？这篇文章也许会打开你的独立开发的思路哦～

### 🐕 [货拉拉 iOS 模块化路由框架：TheRouterSwift](https://juejin.cn/post/7281889329584275471)

[@EyreFree](https://github.com/eyrefree)：这篇文章介绍了货拉拉团队开发的 iOS 模块化路由框架 TheRouterSwift，这是 TheRouter 系列的 Swift 版本，旨在提供给 Swift 开发者一个高效的路由框架，用于模块间解耦和通信。它支持页面导航跳转、路由自动注册、路由映射文件导出、服务自动注册、动态化能力、链式编程、Objective-C 的适配、本地和远程服务调用等功能，还支持异步获取注册类和路由本地缓存能力，以优化性能和提高灵活性。文章详细介绍了 TheRouterSwift 的功能和使用方法，感兴趣的同学可查看原文获取更多信息。

### 🐢 [苹果 iOS 分发和安装 App 的那些趣事](https://juejin.cn/post/7315260397371490319)
[@享耳先森](https://github.com/iblacksun)：本文介绍了苹果 iOS 应用分发和安装的一些有趣的事。讨论了不同的开发者计划和分发方式：包括企业签名、超级签名、TestFlight 签名和 MDM 超级签名，还提到了开发者模式、企业账号、设备注册限制以及自定 App 和非公开 App 分发的解决方案。最后，讨论了欧盟的《数字市场法》对苹果的影响和可能改变苹果软件生态的可能性。

### 🐎 [云音乐自研客户端 UI 自动化项目-Athena](https://mp.weixin.qq.com/s/CX9j63Wxe8qlvqVMjyRhpg)

[@老峰](https://github.com/gesantung)：本文介绍了云音乐在 UI 自动化测试上的一站式解决方案 Athena，其采用了录制的方式解决传统自动化方案录制门槛高、效率低下的问题，在回放过程中前置准备用例执行环境以及结合曙光埋点提升用例执行的稳定性，并且会保留执行过程中的现场信息以便后续溯因。最后通过私有云部署，在云端即可统一调度 Android 和 iOS 设备来执行任务。

### 🐎 [Symbolicating SwiftUI (and any Apple Framework)](https://www.emergetools.com/blog/posts/symbolicating-swiftui-and-any-apple-framework)

[@Damien](https://github.com/ZengyiMa)：这篇博客文章介绍了如何使用 Emerge Tools 的开源 ETSymblication 库和 symbolicator 来符号化 SwiftUI 等 Apple 框架。这个过程包括使用 Framework 选择器和两个步骤：线程和偏移量来提取符号。然后，将这些符号以 CSV 格式存储在数据库中，以便在 symbolicator 中引用。文章还详细解释了如何下载和理解崩溃报告，以便从中提取和解释信息。对符号化感兴趣的同学不妨一读。

### 🐕 [Trigger property observers from initializers in Swift](https://nilcoalescing.com/blog/TriggerPropertyObserversFromInitializersInSwift/)

[@Barney](https://github.com/BarneyZhaoooo)：本文介绍了几种 workarounds 使得 property observers 在 initialization 阶段也可以被触发。
简短实用，大家可以选择适合自己的方式。

- Set properties after initialization
- Separate property setup method
- Create a defer closure
- Manually trigger side effects

## 工具

### [MacSymbolicator](https://github.com/inket/MacSymbolicator)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)：这是一个用于符号化 macOS/iOS 崩溃报告的 Mac 应用程序，可以方便快捷的符号化 crash 和 ips 文件。

## 内推

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

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

## 关注我们

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

**关注有礼，关注【老司机技术周报】，回复「2023」，领取 2023 及往年内参**

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