Skip to content

老司机 iOS 周报 #383 | 2026-11-09

Latest

Choose a tag to compare

@ChengzhiHuang ChengzhiHuang released this 08 Nov 09:57
· 11 commits to master since this release

ios-weekly
老司机 iOS 周报,只为你呈现有价值的信息。

你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

文章

🐢 Touch on Mac for Developers: 36 Points, Recognizers, Sidecar

@Cooper Chen:这篇文章把 Mac 触控支持讲得很实际:不是推倒重写,而是一次有边界的排查。作者按迁移成本分层,帮开发者快速判断哪些代码不用动、哪些必须优先看 :

  • 标准 AppKit、SwiftUI 和 Catalyst 控件基本已经可用,真正的风险集中在自定义鼠标事件处理上。
  • 直接触控只能通过 AppKit 手势识别器拿到;touchesBegan 一类方法只覆盖触控板和 Touch Bar,不会收到触控屏或 Sidecar 的直接触控。
  • 设计上按 36 点触控目标来,扩大点击区域而不是控件本身;依赖 hover 的操作要留替代路径;自定义识别器必须处理 .cancelled。
  • 触控 API 已在 macOS 27.0 SDK 中就位,但部分系统能力仍有缺失;眼下最现实的测试方式是用 Sidecar 连 iPad。

如果你维护着一个有些年头的 Mac App,担心触控带来隐性回归,这篇值得在动手前先读。它不制造焦虑,而是帮你圈出改动范围。

🐎 Boost Your App ’ s Speed and Efficiency 29/10/26 - Q&A

@Smallfly:文章整理了 Apple 工程师围绕 App 性能、功耗和 SwiftUI 的问答,覆盖 SwiftUI specialist skill、MetricKit、State Reporting、xctrace、GPU 调试及第三方 SDK 性能评估。核心建议包括优先在真机和 Release 环境测量、要求编码代理先复现问题再验证修复,并结合性能数据与业务指标判断优化价值,适合建立团队性能排查和自动化验证流程。

🐕 Retention Messaging in App Store Subscriptions

@阿权:Retention Messaging(App Store 订阅挽留消息)是 WWDC26 推出,用户在 App Store 内发起取消自动续期订阅时,系统弹窗展示开发者自定义挽留图文 / 优惠,在用户真正完成取消操作前触达用户。分为静态后台配置、实时服务端 API 两套方案。

  1. App Store Connect 静态配置
    • 零客户端、零后端开发成本;最多 10 条消息;单个订阅只能绑定 1 条消息。
    • 文案禁止写价格折扣数字;更新内容不需要发 App 版本。
    • 配套 Retention Offer 挽留优惠,由苹果校验用户资格。
  2. Real ‑ Time API
    • 后端接收签名请求,由服务端决定展示什么,支持推荐同组其他订阅产品。
    • 硬性限制:700ms 响应超时;必须配置 App Store Connect 消息作为降级兜底;需要向苹果申请开通。
    • API 内使用 PromotionalOffer,和 Retention Offer 是两套不同优惠。
  3. StoreKit 事务变更
    • Retention Offer 优惠在交易中标记 offerType = 5;实时 API 的促销优惠不会出现该值,后端解析交易务必兼容该枚举值,防止统计出错。
  4. 数据指标陷阱
    • 挽救率统计包含关闭弹窗的无效行为,指标提升不等于长期留存、营收变好,要结合报表看后续续订与收入。
  5. 选型建议
    • 简单业务直接使用 App Store Connect 静态配置,低成本验证效果。
    • 复杂用户分层、需要动态推荐套餐,再上实时 API,同时做好降级容错。

🐕 Designing MCP Gateway Uber's MCP Management Platform

@Barney:这篇文章复盘了 Uber 将内部零散的 MCP 接入收敛为统一网关的架构实践,目前已承载 800+ Server 与 5000+ 工具。核心设计是不要求业务方为 Agent 重写服务,而是把存量 API 直接变成工具:

  • 控制面(自动发现与治理):扫描 Protobuf / Thrift IDL 注册表与原生服务心跳,自动提取 Schema 并生成工具描述;遵循“发现不等于暴露”,所有工具默认禁用,需所属团队审核后上线。
  • 数据面(协议转换与安全):运行时将 MCP 请求透明转换为 HTTP、gRPC 或 TChannel 调用,无需改动下游服务,并在网关层统一收口工具级鉴权与 PII 敏感数据脱敏。
  • 上下文膨胀治理:通过 Omni MCP 按意图渐进式发现工具、用类似 GraphQL 的 Response Projection 按需裁剪返回字段,并借助 Code Mode 让 Coding Agent 通过 CLI 将大响应落盘后按需检索。

适合正在搭建团队级 Agent 基础设施或治理 MCP 工具链的同学参考。

🐎 How to use layoutMarginsGuide in SwiftUI

@DylanYang:本文讲解了 iOS 27.1 新增的系统内容边距能力,针对以往硬编码固定 padding 无法适配不同尺寸设备、在 iPhone Duo 折叠屏上出现不对称边距错位的问题,使用 .contentMargins (for: .container) 修饰符即可让系统自动匹配当前容器的标准边距,与导航标题等系统控件精准对齐;同时也支持通过 GeometryProxy 读取边距数值用于滚动布局等自定义场景,文中也提供了低版本系统的兼容降级方案。

代码

🐕 Eiscue

@EyreFree:Eiscue 是一套可在 iPhone 本地运行 AI Agent、摆脱 Mac 持续控制的实验性方案。传统 iOS 设备自动化大多依赖 Mac 通过 XCTest 远程驱动,而该项目提供两套可行路径:基于开发者服务的本机 VPN/USB ‑ NCM 方案,以及 ESP32 外设 HID 方案。它将 Agent 运行、屏幕采集、点击滑动输入能力集成到 iOS App 内,模型调用走云端 API,日常执行任务不再需要 Mac 常驻。方案覆盖配对认证、数据包回环、屏幕帧处理、坐标换算、剪贴板文本输入、后台任务恢复等完整链路,同时详细说明了开发者模式、DDI、系统权限等各类限制与边界条件,适合研究移动端本地智能体、iOS 自动化的开发者参考学习。感兴趣的同学可查看 《一些脱离 Mac 依赖的 Agent 操作 iPhone 实现》 一文了解更多信息。

内推

重新开始更新「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)