如何从弹出的 Expo 项目中删除 "android.hardware.location" 权限请求?
How to remove "android.hardware.location" permission request from ejected Expo project?
我有一个 React Native Expo 项目,它开始使用 Expo "managed workflow"。但是,从那时起我就退出了托管工作流程(同时仍在使用一些 expo 模块)。
我遇到的问题是 Expo 似乎向我的 Android 应用添加了任意权限请求。
我必须从应用程序中删除此特定权限请求:android.hardware.location
.
我已经尝试了很多方法在我的 AndroidManifest.xml
文件中删除它,例如:
<uses-permission tools:node="remove" android:name="LOCATION_HARDWARE" />
<uses-permission tools:node="remove" android:name="ACCESS_COARSE_LOCATION" />
<uses-permission tools:node="remove" android:name="ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location" android:required="false" tools:node="remove" />
但最终捆绑的 Android 应用程序仍然请求 android.hardware.location
权限。
如何在捆绑应用程序之前删除它?
此问题已通过从 package.json
中删除 expo
依赖项得到解决。
expo
依赖项需要 expo-location
,后者又请求各种 android 位置权限。
为了排除 expo 自动添加的任何权限,根据 expo documentation 你应该只添加 tools:node="remove"
到你的清单权限元素。现在,如果您想删除位置权限,这应该可以解决您的问题:
<manifest ... xmlns:tools="http://schemas.android.com/tools">
...
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" />
...
</manifest>
通过添加这些,硬件位置权限也应该消失。
不要忘记将 tools
命名空间添加到清单
的根元素
我有一个 React Native Expo 项目,它开始使用 Expo "managed workflow"。但是,从那时起我就退出了托管工作流程(同时仍在使用一些 expo 模块)。
我遇到的问题是 Expo 似乎向我的 Android 应用添加了任意权限请求。
我必须从应用程序中删除此特定权限请求:android.hardware.location
.
我已经尝试了很多方法在我的 AndroidManifest.xml
文件中删除它,例如:
<uses-permission tools:node="remove" android:name="LOCATION_HARDWARE" />
<uses-permission tools:node="remove" android:name="ACCESS_COARSE_LOCATION" />
<uses-permission tools:node="remove" android:name="ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location" android:required="false" tools:node="remove" />
但最终捆绑的 Android 应用程序仍然请求 android.hardware.location
权限。
如何在捆绑应用程序之前删除它?
此问题已通过从 package.json
中删除 expo
依赖项得到解决。
expo
依赖项需要 expo-location
,后者又请求各种 android 位置权限。
为了排除 expo 自动添加的任何权限,根据 expo documentation 你应该只添加 tools:node="remove"
到你的清单权限元素。现在,如果您想删除位置权限,这应该可以解决您的问题:
<manifest ... xmlns:tools="http://schemas.android.com/tools">
...
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" />
...
</manifest>
通过添加这些,硬件位置权限也应该消失。
不要忘记将 tools
命名空间添加到清单