老司机 iOS 周报 #327 | 2025-03-17 #4938
ChengzhiHuang
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
新闻
iOS Versions Market Share in 2025
网页展示了使用 iOS 系统(包括 iPadOS)的用户的分布变化,其中有两条结论:
新手推荐
🐎 通过覆写方法看 Swift 方法派发
@DylanYang:作者通过一个子类覆写方法的 Demo 向我们解释了 Swift 内静态派发和动态派发两种机制,并介绍了 @objc 和 dynamic 关键字的含义,讲述了如何在 extension 中正确的覆写父类方法。看完以后感兴趣的同学也可以尝试再研究下 Protocol 方法的派发机制。
文章
🐢 A Journey to understand LLVM-IR
@ChengzhiHuang:对于 iOS 开发来说,接触 LLVM-IR 的机会不多,一般逆向研究系统库时会直接反汇编,研究 Swift 时大部分情况阅读 sil(Swift Intermediate Language) 即可解决大部分问题。但也有极端情况下,需要研究 IR 优化时,就需要这块知识了。作者虽然是以 C/Rust 语言的视角进行讲解,但是对于 OC/Swift 是一样的。文章内容大致包含下面几块:
🐕 op run
@AidenRao:这篇文章探讨了传统 .env 文件在开发中的痛点(配置同步难、多环境管理复杂、变更追踪缺失),并介绍了 1Password CLI(op)的解决方案。通过 op run 命令动态注入环境变量,开发者可用 op://URL 引用密钥库中的敏感数据,实现配置与代码分离。步骤包括安装 CLI、创建共享保险库、迁移密钥、更新.env 文件为引用格式,并调整启动命令。
🐕 What drives your users to pay? Jobs to Be Done has the answers
@含笑饮砒霜:本文探讨了 Jobs to Be Done (JTBD) 理论如何帮助企业理解用户真正的需求,并通过精准定位驱动更强的产品变现能力。主要内容如下:
🐢 当 Swift 编译器删除了标准库中的代码 - 记修复 Swift 6 中的冗余 Load 指令消除优化器
@david-clang:本文首先通过最小复现代码,展示了在
-Osize
优化级别下使用AutoreleasingUnsafeMutablePointer
导致的 use-after-free(UAF)崩溃问题。通过反汇编和 SIL 分析,发现 Swift 编译器在冗余 Load 消除优化(RLE)过程中,因误判
_reserveCapacityAssumingUniqueBuffer
函数的副作用,错误删除了数组扩容后必须重新加载缓冲区地址的load
指令,致使后续代码访问已释放内存。作者还给出了修复方案,通过调整逃逸分析对
unchecked_ref_cast
指令中 Optional 转换的路径追踪逻辑,确保编译器正确识别副作用,从而避免冗余load
指令消除,修复 UAF 崩溃问题。文章结尾还分享了调试 Swift 编译器的技巧,全文为深入理解 Swift 编译优化机制提供了宝贵参考。
代码
RealityShaderExtension
@BluesJiang: visionOS 开发官方有两套可选的开发方式,一种是使用 RealityKit,另一种是使用基于 Metal 的自制引擎来自己绘制。苹果推荐使用的 Unity 的 PolySpatial,一种将 Unity 的内容直接导出到 visionOS 上的方式,也是通过第二种模式运行的。
但是第二种模式会存在许多限制,比如没有眼动追踪等。所以有时候还是需要使用原生的开发方式。但是为了保证渲染效果的一致性,作者经常需要将在 Unity 中实现的 Shader 再在 ShaderGraph 中实现一遍。而二者默认提供的 Shader 节点并不一致。
所以作者将 Unity 中有而 RealityKit 中没有的 Shader 效果实现了一遍,并且开源。visionOS 的原生开发玩家可以关注一下。
音视频
How to Do Apple Search Ads (ASA) Right and Grow Your Downloads
@Kyle-Ye: 如何使用 Apple Search Ads 提升你的下载。作者分享了配置使用 ASA 完整流程和一些实用技巧,有自己的独立 App 需要推广的可以学习下。
内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
[上海] TikTok - iOS 高级开发工程师(跨端方向)& 实习生(跨端方向)
具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)
关注我们
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
关注有礼,关注【老司机技术周报】,回复「2024」,领取 2024 及往年内参
同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。
说明
🚧 表示需某工具,🌟 表示编辑推荐
预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)
This discussion was created from the release 老司机 iOS 周报 #327 | 2025-03-17.
Beta Was this translation helpful? Give feedback.
All reactions