You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity应用上传Oculus商店遇Manifest报错 无对应权限配置如何修复

非主动声明的Android Manifest配置报错修复方案

问题核心逻辑

项目目录下手动编辑的自定义Manifest只是打包合并的源文件之一。Unity构建Android安装包时,会自动将引擎内置配置、XR插件自带配置、第三方SDK附带的Manifest内容全量合并,生成最终打包进APK的生效Manifest文件。Oculus商店校验的是这个最终合并后的文件,并非开发者手动编辑的单源Manifest,因此会出现报错项未在自定义文件中声明的情况。

排查流程

  • 定位真实生效的Manifest文件
    直接通过Android Studio的APK Analyzer打开构建完成的APK,提取全量AndroidManifest.xml内容核对,这就是Oculus审核工具实际校验的文件;也可直接查看Unity项目下Library/PlayerDataCache/Android/路径缓存的合并完成Manifest,找到报错提示中提到的冗余配置项。
  • 溯源冗余配置的注入来源
    • 排查Package Manager安装的所有第三方SDK/功能模块:应用内更新、数据统计、广告、社交分享类SDK往往会在自身Manifest中声明敏感权限,打包合并时自动注入到最终APK中
    • 排查Unity引擎、Oculus XR插件的默认配置:旧版Oculus XR插件、开启了未实际使用的AR/手部追踪模块时,引擎会自动注入冗余的硬件特征声明、权限申请
    • 排除Unity构建缓存异常导致的旧配置残留:清理Library文件夹后重新构建,验证报错是否为历史缓存残留导致

修复操作

注意:当前项目使用的自定义Manifest未引入tools命名空间,直接添加移除标记无法生效,需要先完成命名空间的引入。

  • 对确认不需要的注入配置,通过Manifest合并规则强制移除:
    1. 在自定义Manifest的根节点添加工具命名空间:
      xmlns:tools="http://schemas.android.com/tools"
      
    2. 对应要移除的权限/配置项,添加tools:node="remove"标记,强制打包时删掉合并进来的冗余声明,参考示例:
      <!-- 移除自动注入的READ_PHONE_STATE权限 -->
      <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
      <!-- 移除自动注入的非必要硬件特征 -->
      <uses-feature android:name="android.hardware.location" tools:node="remove" />
      
  • 从源头减少冗余配置注入:
    • 卸载项目中未实际使用的第三方功能模块,切断配置注入渠道
    • 将Oculus XR插件升级到适配目标设备的最新稳定版,避免旧版本插件自动申请冗余权限
  • 修复后必须重新构建测试包,再次核对最终APK内的Manifest,确认报错提示的所有配置项都已被移除,再上传到Oculus审核后台,避免反复提交无效版本

注意事项

  • 不要为了消除报错盲目主动申请应用本身用不到的权限,Oculus商店审核会对非必要权限申请提出更严格的合规要求
  • 不要直接修改Unity安装目录下的默认Manifest模板,这类修改会在Unity版本更新后被覆盖,也会影响其他项目的构建

内容的提问来源于stack exchange,提问作者Dennis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 12:15:06