我有一个使用Expo“托管工作流程”开始的React Native Expo项目。但是,从那时起,我退出了托管工作流程(虽然仍在使用一些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
权限。
在捆绑应用程序之前如何删除它?
答案 0 :(得分:0)
要排除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
名称空间
答案 1 :(得分:-2)
通过从expo
删除package.json
依赖关系解决了此问题。
expo
依赖项需要expo-location
,这反过来又要求各种android位置权限。