未eject的React Native/Expo应用如何移除默认Android权限?
无需Eject移除Expo React Native应用的默认Android权限
嘿,完全不用 eject 就能搞定!在Expo的Managed Workflow里,你可以通过项目配置文件直接覆盖默认权限集合,不用手动修改AndroidManifest.xml,完美保留Expo的所有功能。
具体操作步骤如下:
- 打开项目根目录下的
app.json(或者app.config.js,如果你用动态配置的话) - 在
expo对象下找到android字段,添加permissions数组,只包含你实际需要的权限,把READ_PHONE_STATE、WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE排除在外。
举个例子,如果你的应用只需要网络权限,配置会是这样:{ "expo": { "android": { "permissions": ["android.permission.INTERNET"] } } } - 注意:如果你的应用用到了某些Expo内置模块(比如
expo-file-system),这些模块可能依赖存储权限,这种情况下你可能没法完全移除相关权限——先确认你的应用有没有使用这类依赖权限的模块。 - 如果你想确认当前默认包含的权限列表,可以在终端运行
expo config:view命令,它会输出完整的项目配置,包括默认权限。
这样配置后,Expo在构建Android应用时会自动生成只包含你指定权限的AndroidManifest.xml,完全符合你的需求!
内容的提问来源于stack exchange,提问作者wer
相关产品推荐
相关产品推荐

