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

如何使用Expo移除iOS应用Info.plist中的冗余权限配置

Expo项目移除iOS端冗余Info.plist权限操作方案
  • 第一步:先排查依赖来源
    首先确认项目中是否安装了带麦克风采集能力的依赖(常见的包括expo-av、expo-camera、expo-image-picker部分版本、音视频通话类第三方RN包),如果相关包完全没有在业务中使用,直接卸载对应依赖后重新执行expo config --type introspect,对应自动注入的权限项会直接消失,这是最彻底的处理方式。
  • 第二步:显式覆盖配置移除冗余权限
    如果相关依赖需要保留,但业务逻辑中确实不会用到麦克风能力,直接在项目的app.json(或app.config.js)的iOS配置节点下,将不需要的权限字段显式设为null即可,Expo配置合并逻辑遇到null值时会直接剔除自动注入的对应字段,不会写入最终打包生成的Info.plist文件。
    配置示例:
    {
      "expo": {
        "ios": {
          "infoPlist": {
            "NSMicrophoneUsageDescription": null
          }
        }
      }
    }
    
    注意:不要将字段设置为空字符串,空值会被写入Info.plist,提交App Store审核时会因为权限描述缺失被驳回。
  • 第三步:验证配置生效
    配置修改完成后,重新执行expo config --type introspect,检查输出内容中ios.infoPlist节点下是否已经不存在NSMicrophoneUsageDescription字段,确认消失后正常走构建流程即可。

不要手动修改ios/目录下原生文件或者node_modules内的配置,这类修改在下次执行expo prebuild或者EAS云构建时会被自动生成的配置覆盖,无法持久生效。
如果配置完null之后权限依然存在,检查项目中引用的自定义Expo config插件是否硬编码注入了该权限,这类场景需要调整对应插件的配置,或者在插件链最后新增自定义清理插件移除对应字段,绝大多数常规项目不需要做这一步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 09:39:57