老司机 iOS 周报 #380| 2026-09-28 #5448
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 提出。
文章
🐕 Apple Reference Image
@阿权:Apple Reference Image 是 iPhone18 Pro 的特供功能,用于密码学验证照片是真实相机传感器拍摄,对抗 AI 伪造图片,同时保护用户隐私,不暴露拍摄者身份。
基本原理:
这项技术不会用公开凭证把多张照片追溯绑定到同一个拍摄设备(避免用于用户追踪),兼顾可验证真实性与用户隐私。
🐢 Inside iOS 27's Reworked Stub Islands
@Smallfly:文章从反汇编角度分析 iOS 27 在
dyld_shared_cache中对 stub islands 的调整:移除冗余__auth_stubs、合并 Objective-C 元数据,并引入新的跳板编码方式来减少内存加载和指针认证开销。适合关注 dyld、Objective-C runtime、二进制优化和 Apple 平台性能细节的读者。🐕 In-House Over-the-Air Localizations in a Modular iOS App
@EyreFree:本文介绍 Just Eat Takeaway 团队为大型模块化 iOS App 自研的 OTA 远程本地化方案,实现不发版即可修复翻译、迭代文案。方案不重新实现语言匹配逻辑,充分复用系统
Bundle的多语言降级、复数规则能力;客户端为无依赖轻量模块,各业务模块仅需一行改动接入。服务端由 CI 打包各模块资源包,经 CDN 分发,依靠哈希校验与原子文件替换,避免出现损坏、部分更新的资源包。更新在后台拉取,仅冷启动时生效,还配备完整关闭开关。文章同时列举被否决的各类备选方案,给出 SwiftLint、日志监控等落地保障手段,对多模块大型 iOS 项目本地化优化具备参考价值。🐕 arm64e.x1: Apple's Checked Pointer Arithmetic Slice
@Damien:Apple 在 Xcode 27 中新增了 arm64e.x1 架构切片,只在 A20 Pro、M6、S11 及以后的芯片上启用。编译器会把指针加法换成 addpt 指令,利用 CPA2 硬件检查指针运算是否溢出到存放 MTE 内存标签的最高字节,一旦溢出就让程序崩溃,从而堵住绕过内存标签保护的漏洞。开启它需要同时打开四个开关,作者建议同时产出 arm64 arm64e arm64e.x1 三个切片;大多数代码不用改,但本来就有指针运算 bug 的代码会崩。
🐎 The new JSON project format in Xcode 27.2
@david-clang:Xcode 27.2 开始,项目配置可以从传统的
project.pbxproj切换为 JSON 格式的project.xcproj,这不是一次构建能力升级,而是一次面向 Git 协作、代码审查和项目可维护性的基础设施改造。传统.pbxproj是由大量随机 ID 组成的扁平对象图,新增一个 Swift 文件,通常会同时改动文件引用、编译条目、分组和 Build Phase 等多个区域;两位开发者在不同分支各加一个文件,也可能造成无意义的合并冲突。.xcproj用层级化 JSON 表达相同信息:.xcproj的优点是:配置更短、diff 更可读、冲突范围更小,也更容易审查和自动化处理。🐎 Why some Swift types only appear when you import two modules
@DylanYang:作者向我们介绍了 Swift 的 Cross Import Overlay 特性,当同时导入两个指定模块时,会自动加载对应的 overlay 模块,引入额外的类型。这可以用于扩展已有类型、新增 API,而无需修改原始库源码。文中演示了一些基础用法与场景,同时也说明了该能力的适用边界与一些需要留意的限制。
代码
🐎 Beta Previews: LazyState
@阿权:Xcode27 将
@State升级为宏,行内默认值支持惰性初始化,但不支持在 init 中利用外部入参惰性初始化状态;在 init 直接赋值会反复创建对象。苹果建议用onAppear + Optional,但会引入可选污染、手写 Binding、多余容器等一堆问题。LazyState 库:Point ‑ Free 封装 SwiftUI 内部已存在的未公开
LazyState类型,提供@LazyState宏。在 init 传入闭包,利用外部参数惰性创建状态对象,视图生命周期仅初始化一次,正常支持$生成 Binding,消除可选与 onAppear 样板代码。限制:父视图更新参数重建子视图,不会刷新子视图 LazyState 内部状态,与 onAppear 方案行为相同;当前仅限 Point ‑ Free Max 会员 Beta 试用。
🐎 MotionPhotoKit
@极速男孩:MotionPhotoKit 是一个开源跨端动态照片库,支持 Android、iOS 和鸿蒙。它将不同平台的动态照片转换为统一格式,支持原生播放和保存到系统相册,并可复用应用已有的下载、鉴权与缓存能力,适合聊天、社区和信息流等场景。
内推
重新开始更新「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 周报 #380| 2026-09-28.
All reactions