# 老司机 iOS 周报 #362 | 2026-01-12

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

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

## 文章

### 🐎 [我们如何使用 Codex 在 28 天内构建 Android 版 Sora](https://openai.com/zh-Hans-CN/index/shipping-sora-for-android-with-codex/)

[@Crazy](https://github.com/jiyan135960)：本篇文章简略的讲述了 OpenAI 的工程师团队是如何利用 CodeX 在 28 天内开发 Sora 的 Android 版本，主要可以分为以下四个部分

1. 在 Codex 在整个代码库中创建和维护大量 AGENT.md 来引导新的开发工程师，减少重复的沟通和模版代码，增加测试量，让团队专注于架构、用户体验、系统性变更和最终质量。
2. 利用项目的整体规则，编写部分具有代表性的端到端功能。通过将 Codex 指向具有代表性的功能，让 AI 在一个标准范围内工作，提高 AI 的生成准确性与工作效率。
3. 在编写代码前使用 Codex 进行规划，利用相关文件并总结该功能的运作原理，即了解 CodeX 是如何从 API 到用户界面的生成过程，并且在生成后进行对应的架构纠正，利用这种可分享的动态策略让 CodeX 生成更加符合架构的代码。
4. 同时运行多个 Codex 会话，一个会话负责回放，一个负责搜索，一个负责错误处理，还有一个则负责测试或重构。多会话会大大提高整体开发效率，并让开发人员处在审核的位置上，而不是开发的位置上。

最后是利用 CodeX 的上下文来让他发挥到最佳水平，也可以跨平台进行上下文分析，但没有上下文就是盲目猜测。

### 🐕 [Tracking renamed files in Git](https://oleb.net/2025/git-file-renaming/)

[@Barney](https://github.com/BarneyZhaoooo)：本文聚焦 Git 不直接追踪文件重命名的核心特性，解析其通过文件内容相似度启发式算法推测重命名的逻辑。为确保历史追踪准确，核心建议将重命名单独提交，推荐借助 git mv 命令（暂存重命名操作、保留文件编辑未暂存状态）实现。同时提供替代脚本方案，解决无法使用 git mv 时，重命名与编辑同步进行导致的追踪难题，助力高效管理文件版本历史。

### 🐕 [Replay](https://nshipster.com/replay/)

[@Smallfly](https://github.com/iostalks)：这篇文章介绍了 Swift 生态中解决网络测试痛点的工具 Replay，通过记录与重放真实 HTTP 流量，为测试提供高效、稳定的解决方案。核心亮点包括：

- 痛点解决：针对网络测试慢、依赖第三方服务不稳定、手动维护 JSON 响应文件易过时的问题，Replay 实现「记录一次，永久重放」，避免测试受网络波动影响。
- 技术优势：采用行业标准 HAR（HTTP Archive）格式存储流量，兼容浏览器开发者工具、Charles 等工具；结合 Swift 6.1 的 `TestScoping` 协议与包插件，实现声明式测试配置。
- 工作流程：首次运行测试时提示记录，后续自动使用本地 HAR 文件，测试速度从分钟级降至秒级。
- 灵活配置：支持过滤敏感数据、自定义请求匹配规则，并提供内联存根功能，适配错误处理等边缘场景。

文章通过代码示例与实践建议，展示了 Replay 如何让网络测试更可靠、高效，是 Swift 开发者优化测试流程的实用参考。

### 🐎 [Flutter 官方正式解决 iOS 26 上的 WebView 有点击问题](https://mp.weixin.qq.com/s/-Z6oB3aLBwnYZH4DQEX31g)

[@david-clang](https://github.com/david-clang)：对于 Flutter WebView 在 iOS 26 点击失效和触摸穿透的问题，官方[技术文档](https://docs.google.com/document/d/1ag4drAdJsR7y-rQZkqJWc6tOQ4qCbflQSGyoxsSC6MM)详细阐述了问题原因和解决方案，最终方案是 Flutter Engine + iOS embedder 新增 “同步 hitTest 回调” 能力，将手势决策从“异步协同”改为“同步拦截”，在触点处直接判断是否应拦截手势，从根本解决 WebView、AdMob 等 PlatformView 的手势冲突问题。

因为底层的重构方案还需要上层插件进行适配，官方又合入了个无需插件适配的临时方案作为补充：在 `FlutterPlatformViews.mm` 中实现了针对 `WKWebView` 手势识别器的递归搜索和“重启”机制，并在 `blockGesture` 中针对 iOS 26+ 启用了这个机制。

## 代码

### [React Native for macOS](https://github.com/microsoft/react-native-macos)

[@EyreFree](https://github.com/EyreFree)：微软 react-native-macos 仓库值得关注！作为 Facebook React Native 的开源分支（MIT 许可），它支持用 React 快速构建原生 macOS 应用，兼容 macOS 11+。具备声明式 UI、组件化开发、热重载等优势，还能跨 iOS、Android 复用代码，配套完善文档与贡献指南，更新维护活跃，是 macOS 原生应用开发的高效选择，感兴趣的同学可以试试。

### [Skills Public](https://github.com/Dimillian/Skills)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)：这是一个聚焦于 SwiftUI UI 设计模式的代码仓库，核心围绕 SwiftUI 框架提供各类实用的 UI 实现方案、设计最佳实践和代码示例，面向 iOS/macOS 等平台开发者，旨在解决 SwiftUI 开发中常见的 UI 构建问题、统一设计范式。适合 iOS/macOS 开发者（尤其是 SwiftUI 初学者 / 进阶者），可作为 SwiftUI UI 模式的参考手册，快速复用成熟的设计和代码方案，避免重复踩坑。

## 内推

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

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

## 关注我们

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

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

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