关于 hz-api-upgrade
为 Horizon OS 应用提供 SDK 升级规划与迁移指导,面向 Unreal、原生 Android、Spatial SDK、Web/IWSDK 及跨平台项目;Unity Meta XR 项目则指向专门技能。内容覆盖版本变更、依赖更新、弃用 API 修复和设备测试。
主要功能
- 01识别项目当前 SDK 版本
- 02查阅 API 变更与迁移文档
- 03更新各平台 SDK 依赖
- 04定位并替换弃用 API
- 05在 Meta VR 设备上测试升级
- 06检查升级后的性能
适用场景
- 01规划落后版本项目的升级路径
- 02处理升级后的编译错误和警告
- 03迁移 VrApi 到 OpenXR
- 04确认 Horizon OS 目标 SDK 设置
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ meta-quest/ agentic-tools --skill hz-api-upgrade安装后在 Claude Code 中输入/hz-api-upgrade确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/api-changelog.mddeprecation-guide.mdsdk-migration.md详细介绍
Horizon API 升级技能
对于使用 Meta XR SDK 的 Unity 项目,请使用专用的
hz-unity-sdk-upgrade 技能。对于 Unreal、原生 Android 或 Spatial SDK、Web 或 IWSDK,以及通用跨平台升级规划,请继续阅读本文。
适用场景
在以下情况下使用此技能:
- 将现有 Meta VR 应用升级到较新的 Horizon OS SDK 版本
- 修复 SDK 更新后出现的已弃用 API 警告或编译错误
- 在主要 API 版本之间迁移(例如,从 VrApi 迁移到 OpenXR)
- 了解 SDK 版本之间的变更
- 为 SDK 版本落后的项目规划升级路径
通用升级工作流
无论使用哪种平台,每次 SDK 升级都遵循相同的高级流程:
1. 确定当前 SDK 版本
确定项目当前面向的版本:
- Unity:检查
Packages/manifest.json,或在 Package Manager UI 中查看com.meta.xr.*包版本 - Unreal:检查
.uplugin文件或 Plugins 浏览器中的 Meta XR Plugin 版本 - Spatial SDK / Android:检查
build.gradle或build.gradle.kts中的com.meta.spatial:*依赖版本 - Web / IWSDK:检查
package.json中的@meta-spatial-sdk/*或@iwsdk/*包版本
2. 查看 API 更新日志
升级前,请查看当前版本与目标版本之间的变更。近期变更摘要请参阅 references/api-changelog.md。
使用设备中心搜索文档:
metavr docs search "release notes v72"
metavr docs search "migration guide openxr"
3. 更新 SDK 依赖项
更新项目配置中的版本号:
- Unity:通过 Package Manager 更新,或直接编辑
manifest.json - Unreal:下载并安装新版本的插件
- Gradle 项目:更新
build.gradle中的版本字符串 - npm 项目:运行
npm update,或编辑package.json
4. 修复已弃用的 API 调用
更新后,编译项目并处理错误和警告。常见替换方式请参阅 references/deprecation-guide.md。
# Search project for known deprecated APIs
grep -rn "vrapi_" --include="*.c" --include="*.cpp" --include="*.h" src/
grep -rn "OVRManager" --include="*.cs" Assets/
5. 在设备上测试
在已连接的 Meta VR 设备上部署并验证功能:
metavr app install ./build/output.apk
metavr app launch com.yourcompany.yourapp
6. 运行性能检查
确保升级未导致性能退化:
metavr perf capture
平台专属升级路径
Unity:Meta XR SDK
Unity 版 Meta XR SDK 以 UPM 包的形式分发。通过 Unity Package Manager 执行升级。主要包包括 com.meta.xr.sdk.core、com.meta.xr.sdk.interaction 和 com.meta.xr.sdk.platform。
Unity 升级步骤指南请参阅 references/sdk-migration.md。
Unreal Engine:Meta XR Plugin
Unreal 版 Meta XR Plugin 以引擎插件的形式分发。升级需要下载新版本的插件并重新生成项目文件。
Unreal 升级步骤指南请参阅 references/sdk-migration.md。
Android / Spatial SDK
Meta Spatial SDK 以 Gradle 依赖项的形式分发。升级需要更新 Gradle 构建文件中的版本号。
Spatial SDK 升级步骤指南请参阅 references/sdk-migration.md。
Web / IWSDK
Immersive Web SDK 以 npm 包的形式分发。升级需要更新 package.json 中的包版本。
IWSDK 升级步骤指南请参阅 references/sdk-migration.md。
常见升级问题
命名空间变更
Meta 已逐步将 Oculus.* 和 OVR* 命名空间迁移到 Meta.* 命名空间。升级后,你可能会因类重命名或包迁移而遇到编译错误。
已移除的 API
先前版本中已弃用的 API 可能会在较新版本中被彻底移除。如果跳过了中间版本的升级,可能会遇到符号缺失的问题。请始终逐步升级。
新增必需权限
较新版本的 Horizon OS 可能要求在 AndroidManifest.xml 中添加其他权限。常见的新增项包括:
- 用于手部追踪功能的
com.oculus.permission.HAND_TRACKING - 用于访问透视摄像头的
horizonos.permission.HEADSET_CAMERA - 用于声明功能的新
<meta-data>条目
Manifest 变更
较新版本的 SDK 可能要求更新 AndroidManifest.xml 中的 <meta-data> 条目,例如 com.oculus.supportedDevices,或更新 minSdkVersion 值。
Android SDK 目标版本要求
Meta Horizon 应用的新二进制文件上传必须将 targetSdkVersion 设为支持范围内的值。
要求
- 沉浸式应用的
targetSdkVersion设为 API 级别 32-34(2D 面板应用为 32-36) minSdkVersion可保持为 API 级别 32- 适用于所有新二进制文件上传,包括新应用和现有应用
- 已发布的现有应用无需变更即可继续运行
如何更新
Unity: 使用 Meta XR SDK 中的 Project Setup Tool,即可自动更新 API 版本。也可以在 Player Settings -> Other Settings -> Target API Level 中手动设置。
Unreal: 使用 Meta XR Plugin 中的 Project Setup Tool。也可以在 Project Settings -> Android -> Target SDK Version 中设置。
Gradle(Spatial SDK / Native):
android {
defaultConfig {
targetSdkVersion 34 // 32-34 for immersive, 32-36 for 2D panel apps
minSdkVersion 32
}
}
使用 metavr 查找文档
metavr 工具提供文档搜索功能,可在升级过程中提供帮助。通过 metavr <args> 调用(以 npm 包 metavr 的形式发布;如果 metavr 不在 PATH 中,请运行 npx -y metavr <args>)——无需全局安装。
# Search for migration-related documentation
metavr docs search "migration guide"
metavr docs search "deprecated API"
metavr docs search "breaking changes v73"
# Search for specific API replacements
metavr docs search "OVRManager replacement"
metavr docs search "vrapi openxr migration"