What's new in App Store Connect
App Store & Distribution 进阶 20m

App Store Connect 的新功能

What's new in App Store Connect

2023年6月5日

在 Apple 官方观看视频

一句话判断

今年的 App Store Connect 更新覆盖了整个 App 生命周期——从 StoreKit for SwiftUI 的几行代码接入内购,到 900 个价格点位的灵活定价,到 TestFlight 的家庭共享测试,再到 xrOS 的隐私数据类型,每个环节都有实质性改进。

这场 Session 讲了什么

Session 按 App 开发生命周期梳理了 App Store Connect 的年度更新:

变现与定价

  • StoreKit for SwiftUI:在 App 中用几行 SwiftUI 代码展示内购/订阅页面。页面完全无障碍,自动本地化所有 App Store 语言。支持最小化实现和深度自定义(背景、按钮、样式)。还可以使用 App Store 上的推广图作为产品图标。
  • 定价增强:900 个价格点可选。可以设置基准地区自动生成其他地区和币种的价格。支持自动国际定价(汇率/税率变化时自动调整)或手动管理。可按地区控制内购和订阅的可用性。

测试管理

  • TestFlight 增强:新增设备信息列(最近安装的设备和 OS 版本)。支持按测试者数据筛选,批量选择测试者(重发邀请、添加到组、移除)。所有数据通过 App Store Connect API 可用。TestFlight 现在支持 xrOS。
  • Internal Only 构建:Xcode 分发时可以标记为”仅限内部”,防止意外发布到外部测试或提交审核。
  • What to Test 自动化:Xcode Cloud 可以自动上传测试说明——通过项目目录下的文本文件或从 commit 消息提取。
  • 沙盒测试增强:支持将沙盒测试账户组成家庭组(最多 6 人)来测试家庭共享。iOS 设备上可以直接管理家庭组成员、修改续订频率、测试中断购买、清除购买历史。

上架准备

  • 隐私标签新增 xrOS 数据类型:环境扫描(Environment Scanning)、手部数据(Hands)、头部数据(Head)。这些类型也可能适用于其他平台——比如钢琴教学 App 在 iPad 上收集手部运动数据就应该选择 Hands。

值得深挖的点

StoreKit for SwiftUI 改变了接入内购的成本结构。以前接入 StoreKit 需要处理产品请求、支付队列、收据验证、订阅状态管理等大量代码。现在 SwiftUI 的声明式方式把产品展示和购买流程封装成了组件。如果你的 App 不需要高度自定义的购买体验,这个 API 可以把接入时间从天缩短到小时。

900 个价格点 + 基准地区定价是面向全球化业务的重大升级。以前设置多地区价格需要逐个调整,现在选一个基准地区设定价格,其他地区自动生成。当某个地区的汇率或税率发生重大变化时,App Store 可以自动调整价格,不再需要你手动监控和修改。这对独立开发者和小团队尤其友好——你不需要雇人盯汇率。

沙盒测试的家庭共享填补了一个长期存在的测试空白。家庭共享是一个涉及多人、多设备、多订阅状态的复杂功能,以前在沙盒环境中几乎无法完整测试。现在你可以组建家庭组、测试共享和停止共享、验证续订行为——这在之前需要在生产环境中验证。

代码片段

StoreKit for SwiftUI 的基本用法(概念示例):

import StoreKit

// StoreKit for SwiftUI 让你用几行代码展示内购页面
// 产品在 App Store Connect 中配置后,Xcode 中即可使用
// 页面自动本地化到所有 App Store 支持的语言
// 页面完全支持无障碍访问

// 最简实现:使用默认样式
// 自定义实现:可修改背景、按钮样式等
// 还可以使用 App Store 推广图作为产品图标

TestFlight What to Test 自动上传:

// 方式1:在项目中添加文本文件
// 路径:<项目目录>/TestFlight/WhatToTest.txt
// 内容示例:
// - 新增法语和德语本地化支持
// - 修复后院详情页的布局问题
// - 更新订阅流程的错误处理

// 方式2:通过 Xcode Cloud 自定义构建脚本
// 从 commit 消息中提取测试说明
// 信息会自动上传到 App Store Connect
// 并在 TestFlight 中展示给测试者

最佳实践

  • 评估 StoreKit for SwiftUI 是否满足你的需求——如果你的购买流程是标准的(展示产品、用户购买、验证收据),用 SwiftUI 封装能大幅减少代码量。需要深度自定义(比如自定义支付 UI)的场景仍然使用底层 StoreKit API。
  • 设置定价时选择一个主要市场作为基准地区,让系统自动管理其他地区的价格。定期检查自动调整是否合理,必要时手动覆盖。
  • TestFlight 的 Internal Only 标记适合包含敏感信息的原型构建——标记后即使误操作也不会泄漏到外部。
  • 沙盒测试家庭共享时,先用 2-3 个测试账户组一个小家庭组,验证基本流程后再扩展到 6 人。
  • xrOS App 的隐私标签要特别关注新增的三个数据类型。即使你的 App 不在 xrOS 上,如果在其他平台收集了手部或环境数据,也需要声明。
  • 利用 App Store Connect API 自动化测试者管理、构建分发等重复操作。

还有什么值得关注

  • 国际定价的自动调整机制意味着你的收入可能因汇率波动而变化。建议定期查看定价报告。
  • TestFlight 的新增数据列(设备/OS 信息)帮助识别”只在旧设备上出现”的 bug。
  • 隐私标签的新数据类型(Hands、Head、Environment Scanning)的定义比较宽泛——如果你的 App 用 ARKit 收集环境数据,即使不是 xrOS App 也需要声明。
  • Xcode Cloud 的 What to Test 自动化只是 CI 集成的一部分,配合自定义构建脚本可以实现更完整的工作流。
  • 搭配 “Meet StoreKit for SwiftUI”、“What’s new in App Store pricing”、“Simplify distribution in Xcode” 等 Session 可以获得每个主题的深入细节。
WWDC 2023