老司机 iOS 周报 #210 | 2022-07-25

6,698 阅读5分钟

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

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

新闻

Upcoming transition from the XML feed to the App Store Connect API

苹果预计将在 2022 年 11 月下线 XML Feed 的请求,苹果提供了 App Store Connect REST API 来进行代替。新的 REST API 可以支持对 IAP、订阅状态、元数据、定价 等功能的自动管理。XML Feed 将继续对现有的 Game Center 管理提供支持。

关于 App Store Connect REST API 的进一步具体使用与介绍可以查看我们今年的内参:【WWDC22 10043/10044/110404】App Store Connect 中的新特性及最佳实践

文章

🐕 StoreKit2 实际接入时候的踩坑与解决实录

@ChengzhiHuang:本文主要内容如下

  • lipo 裁剪拼接,32 位(armv7)环境下也可以在同一个 framework 内集成 StoreKit2
  • 通过 md5/pkcs7 等方式处理用户凭证为 uuid,同时兼容 applicationUsername(Original StoreKit) 与 appAccountToken(StoreKit2) 以获得订单与用户的关联
  • 介绍兼容新旧两套的交易通知的验证逻辑,减少用户掉单的情况

🐎 UIPasteBoard's privacy change in iOS 16

@张嘉夫:在 iOS 16 中,用户可以在某个 app 尝试读取剪切板数据之前允许或拒绝读取权限。和位置等其他隐私权限类似,在 app 尝试访问剪切板数据时,会向用户显示一个警告弹窗。但在当前的 beta 版本中,UIPasteBoard 的隐私权限与其他权限在行为上存在几处不同之处,例如用户做出的选择在 app 重新构建之后不会被记忆,以及该权限不会在 app 的隐私设置中显示,以致用户在允许之后无法再进行更改等。此外,作者还提供了三种方式来避免在访问剪切板数据时显示权限弹窗:

  • 用户通过选项菜单主动粘贴
  • 用户使用键盘快捷键(Command+V)进行粘贴
  • 使用 iOS 16 新增加的 UIPasteControl

🐕 MemoryThrashing:抖音直播解决内存抖动实践

@Leo:内存有较大波动的时候往往会导致峰值过高或者驻留对象过多,进而直接或者间接造成 OOM。本文是抖音直播基础技术团队提出的 iOS MemoryThrashing 解决方案,通过采样多个时刻的内存(主要监控 class 的实例个数), diff 出内存信息找出 top 增长,达到归因的目的。

🐕 一键释放iOS 64位App潜力

@红纸:本文主要讲述一个冷门知识,利用两个配置可以扩大虚拟内存的申请上限(com.apple.developer.kernel.increased-memory-limit、com.apple.developer.kernel.extended-virtual-addressing)。遇到申请虚拟内存失败导致 Crash 的可以试下。

🐕 04 - 探究 iOS 底层原理 | ARM64 汇编

@AidenRao:在探究底层原理过程中,我们必须掌握一定的前知识,才具备探究底层原理的手段。因此,作者分享了 iOS 系统真机环境下,ARM64 硬件架构的相关汇编知识。浅显易懂,值得阅读。

工具

🐎 抢先体验! 在浏览器里写 Flutter 是一种什么体验?

@极速男孩:Zapp 是一款由 Invertase 公司提供的在浏览器中构建 Flutter 应用的服务。提供了和桌面端类似的高亮语法、自动完成、调试、Git 代码管理、测试等功能,让我们在 iPad 上写 Flutter 成为了可能。具体可以在 Zapp 应用主页 了解。

🐕 iOS 為多語系字串買份保險吧!. 確保 Localizable.strings 文字檔不被意外改壞 | by ZhgChgLi | ZRealm Dev. | Jul, 2022 | Medium

@Barney:本文主要介绍了使用 SwifGen & UnitTest 来确保多语言的安全。 Localizable.strings 这样的纯文字经常会漏掉或者改错,又或者是 key 直接展示给用户,这些都是很不好的体验。

解决方案

  • 使用 swift 编写完整的检查工具
  • Xcode13 内建 Build Time 检查 Localizable.strings 的正确性
  • 使用 SwiftGen 取代原始 NSLocalizedString String Base 存取方式
  • UnitTest 检查

🐎 妈妈再也不用担心我找不到 iOS 学习资料啦

@J_Knight_:本文分享了 iOS 相关的学习资料,包括 iOS 相关的在线学习资料(Awesome iOS),书籍以及公众号,另外也附上了 WWDC 和 Human Interface Guidelines 等官方资源。

摸鱼周报

@摸鱼周报 #61:第 61 期摸鱼周报来了,来看下本期概要有没有你感兴趣的内容:

  • 本期话题: Developer 设计开发加速器|探索 Create ML Components
  • 本周学习:解决使用 AVAudioRecorder 录音保存 .WAV 文件遇到的问题
  • 内容推荐:SwiftUI 相关的几篇博文
  • 摸一下鱼:几个摸鱼网站推荐

关注我们

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

关注有礼,关注【老司机技术周报】,回复「2021」,领取 2017/2018/2019/2020 内参

同时也支持了 RSS 订阅:github.com/SwiftOldDri…

说明

🚧 表示需某工具,🌟 表示编辑推荐

预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)