Highlight
visionOS App Store 默认自动上架所有兼容的 iPad/iPhone app,开发者无需改代码或提交新构建;想要原生体验则可通过创建新 app 或添加平台实现通用购买;TestFlight 完整支持 visionOS 并提供平台切换、自动更新和截图反馈功能。
核心内容
visionOS App Store 上线时,每个开发者都面临同一个问题:我的 app 怎么出现在这个新平台上?
Apple 给了三条路。第一条最简单:什么都不做。所有兼容的 iPad 和 iPhone app 会自动在 visionOS App Store 上架,不需要改代码,不需要提交新构建。第二条路是为现有 app 添加 visionOS 平台支持,实现通用购买——用户在 iPhone 上买了,visionOS 上也能用,内购也互通。第三条路是创建一个全新的 visionOS app,从头开始为空间计算设计。
不管选哪条路,最终都要通过 App Store Connect 管理上架流程。这场 session 把整个流程拆解成了三个环节:上架策略、TestFlight 测试、隐私标签更新。
三种上架策略
策略一:自动兼容(零成本上线)。所有兼容的 iPad 和 iPhone app 默认自动出现在 visionOS App Store 上。开发者无需任何操作。如果某个 app 在 visionOS 上体验不好,可以在 App Store Connect 的 Pricing and Availability 页面,找到 “iPhone and iPad Apps on visionOS” 区域,关掉 “Make this app available” 开关。也可以在 Apps 页面点击省略号按钮,选择 “iOS Apps on visionOS Availability”,批量管理所有 app 的可用性。
策略二:添加 visionOS 平台(通用购买)。在现有 app 记录左侧边栏点击 “Add Platform”,选择 visionOS,然后上传 visionOS 版本的构建。用户购买一次,所有平台都能用,内购也跨平台共享。注意:一旦你发布了 visionOS 原生版本,它会替换掉之前自动兼容的 iOS 版本——用户看到的是你的原生 app,不再是 iPad 兼容版。
策略三:创建新 app。点击 Apps 页面左上角加号,选择 “New App”,在平台列表中选择 visionOS。适用于全新品牌、或者想要与现有 app 不同的定价和可用性策略的场景。创建时需要填写名称、Bundle ID 和 SKU。
TestFlight 全面支持 visionOS
TestFlight 的 visionOS 支持和其他平台完全一致。你可以创建内部或外部测试组,通过邮件或公开链接邀请测试者。如果为现有 app 添加了 visionOS 平台,可以直接用已有的测试组——测试者会自动获得多平台的构建。
每个测试组有一个开关,控制该组测试者能否在头显上安装兼容的 iPad/iPhone app。这样你可以分批扩展测试范围:先让核心测试者验证原生 visionOS 版本,再逐步放开兼容 app 的测试。
测试者的设备体验
测试者在 visionOS 上打开 TestFlight,侧边栏会列出所有可安装的 app——包括 visionOS 原生 app 和兼容的 iOS app。不兼容的 app 会被归入单独的 “iOS-only” 分类。
当开发者同时提供了 visionOS 和 iOS 版本的测试构建,app 页面顶部会出现一个切换按钮,让测试者选择安装哪个版本。App 详情页会显示描述和设备兼容性信息。往下滚动进入 App Settings,可以自定义通知、开启自动更新(新构建自动下载安装)。
Beta 版 app 的名字旁边有一个黄点标记,和其他平台一致。兼容的 iPad/iPhone beta app 会被放进一个专门的文件夹,同样带黄点标记。
截图反馈与崩溃日志
测试者在 visionOS 上同时按下 Digital Crown 和顶部按钮即可截图。然后在 TestFlight 中选择 app,点击 “Send Feedback”,描述问题并附上截图。截图可以在提交前裁剪或标注。
如果 beta app 崩溃了,TestFlight 会主动提示测试者发送反馈。测试者描述操作步骤,崩溃日志会自动随反馈一起提交。
开发者端分析
在 App Store Connect 中查看反馈时,可以按平台和构建版本筛选。反馈详情包括截图、描述文本,崩溃日志可以下载,也可以直接在 Xcode Organizer 中打开。
测试者参与度指标在两个地方可看:App Store Connect 网页版和移动版。指标包括某个版本有多少测试者安装了、有多少人真正启动了、有多少人提交了崩溃或截图反馈。可以按构建版本查看,也可以按测试组查看单个测试者的参与情况。
隐私营养标签新增三项数据类型
visionOS 引入了三类新的数据收集类型,需要开发者在 App Privacy 页面如实申报:
- Environment Scanning:app 是否收集用户周围环境数据(网格、平面、场景分类、图像检测)
- Hands(Body 分类下):app 是否收集手部结构和手部运动数据
- Head(Body 分类下):app 是否收集头部运动数据
这些数据会展示在 App Store 产品页面上,让用户了解 app 收集了什么数据、怎么使用。
详细内容
添加 visionOS 平台到现有 app(02:15)
假设你有一个叫 “Mountain Climber” 的 iOS app,现在想为 visionOS 提供原生体验。操作流程:
- 在 App Store Connect 的 Apps 页面,选择 Mountain Climber
- 左侧边栏点击 “Add Platform”
- 在弹出的对话框中选择 visionOS
- 点击 Add
- 开始上传 visionOS 构建
不需要创建新的 app 记录。用户跨平台购买和内购自动共享。
关键点:
- 添加平台后,app 名称和 URL 在所有平台保持一致
- 开启自动下载的用户会自动在各设备上获得 app
- 发布 visionOS 原生版本后,它会替换掉之前在 visionOS App Store 上的 iPad 兼容版本
管理兼容 iPad/iPhone app 的可用性(06:30)
批量管理入口:Apps 页面左上角省略号按钮 → “iOS Apps on visionOS Availability”。这里可以看到所有兼容 app 的列表,逐个开关控制是否在 visionOS 上显示。
单个 app 管理入口:进入 app 的 Pricing and Availability 页面 → “iPhone and iPad Apps on visionOS” 区域 → 切换 “Make this app available”。
关键点:
- 默认全部自动可用,不需要逐一开启
- 关闭不可逆——如果 app 体验差,用户看到后评分会受影响,不如先关掉
- 页面会显示当前版本和即将发布的版本是否兼容
TestFlight 测试组配置(09:45)
TestFlight 中每个测试组有一个 “iPhone and iPad Apps on visionOS” 开关,控制该组测试者能否在头显上安装兼容 app。
这个设计支持渐进式测试:
第一批:内部测试组 → 只测原生 visionOS 版本
第二批:外部核心测试者 → 开放兼容 app 安装
第三批:公开链接测试者 → 全部开放
关键点:
- visionOS 构建可以分发到已有测试组,无需新建
- 兼容 app 的测试开关按组独立控制
- 测试者从同一个 TestFlight app 查看所有可测试的版本
测试者反馈流程(13:20)
截图反馈步骤:
- 同时按下 Digital Crown + 顶部按钮截取屏幕
- 打开 TestFlight → 选择 app → 点击 “Send Feedback”
- 填写问题描述
- 附加截图(可裁剪和标注)
- 提交
崩溃反馈:
- app 崩溃后 TestFlight 自动弹出提示
- 测试者描述触发崩溃的操作步骤
- 崩溃日志随反馈自动提交
关键点:
- 截图可以在 TestFlight 内直接标注,不用跳转到其他 app
- 崩溃反馈是自动触发的,不需要测试者手动去菜单里找
- 开发者可以在 App Store Connect 中按平台和构建版本筛选反馈
隐私营养标签新字段(16:50)
在 App Store Connect 的 App Privacy 页面,Data Types 部分新增了以下选项:
| 分类 | 数据类型 | 何时勾选 |
|---|---|---|
| Environment Scanning | — | App 收集周围环境的网格、平面、场景分类或图像检测数据 |
| Body | Hands | App 收集手部结构和手部运动数据 |
| Body | Head | App 收集头部运动数据 |
这些数据类型不仅适用于 visionOS app——如果其他平台的 app 也收集这类数据(例如 iPhone 的 LiDAR 扫描),同样需要申报。
关键点:
- Environment Scanning 是一个独立的数据类型分类
- Hands 和 Head 都属于 Body 大类下的子类型
- 数据使用方式(用于追踪、关联到用户、不关联到用户等)需要逐一说明
核心启发
-
做什么:检查你的 iPad/iPhone app 在 visionOS 上的兼容性,关掉体验差的 app。为什么值得做:默认所有兼容 app 都会自动上架,用户评分和口碑直接受影响。不兼容的 app 在 visionOS 上可能出现 UI 错位或交互问题。怎么开始:在 App Store Connect → Apps → 省略号 → “iOS Apps on visionOS Availability” 逐一审核,不确定的先关掉,等测试验证后再开启。
-
做什么:为现有 iOS app 添加 visionOS 平台,实现通用购买。为什么值得做:一次购买跨平台可用,提升用户付费意愿;不需要创建新品牌,URL 和排名继承现有 app。怎么开始:在 app 的左侧边栏点击 “Add Platform”,选择 visionOS,上传包含 visionOS 目标的 Xcode 构建。
-
做什么:利用 TestFlight 的 “iPhone and iPad Apps on visionOS” 开关做渐进式测试。为什么值得做:先让内部测试者验证原生 visionOS 版本,稳定后再开放兼容 app 给外部测试者,避免早期测试被兼容性问题干扰。怎么开始:创建内部测试组时关闭兼容 app 开关,等原生版本测试稳定后,在外部测试组中开启。
-
做什么:更新隐私营养标签,添加 visionOS 相关的数据收集声明。为什么值得做:Environment Scanning、Hands、Head 这三类数据是 visionOS 特有的隐私敏感项,漏填会导致审核被拒。怎么开始:进入 App Store Connect → App Privacy → Data Types,检查是否勾选了这三项,并根据实际数据使用方式填写说明。
-
做什么:利用 TestFlight 的自动更新功能提高测试效率。为什么值得做:测试者不用手动下载每个新构建,减少”测试者还在测旧版本”的情况。配合构建更新说明,测试者每次打开 app 都能看到要关注哪些变化。怎么开始:在 TestFlight app 的 App Settings 中引导测试者开启自动更新选项;每次上传构建时填写测试要点说明。
关联 Session
- Get started with building apps for spatial computing — visionOS 应用开发入门,从窗口到沉浸式空间的基础构建块
- What’s new in privacy — 隐私新特性,包括空间计算 app 的数据类型声明
- Design for spatial input — 为 visionOS 的眼睛和手部交互设计输入体验
- Enhance your spatial computing app with RealityKit — 用 RealityKit 为 visionOS app 添加沉浸式体验
评论
GitHub Issues · utterances