世博会弹出反应本机项目上传的apk(由android studio构建)具有比清单文件更多的权限
Posted
技术标签:
【中文标题】世博会弹出反应本机项目上传的apk(由android studio构建)具有比清单文件更多的权限【英文标题】:Expo ejected react native project uploaded apk (build by android studio) has more permissions than in manifest file 【发布时间】:2021-08-18 12:10:23 【问题描述】:我对最近被 expo 推出的原生项目做出了反应(裸工作流)。这是我的androidManifest.xml
。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="example.package">
<uses-permission android:name="com.android.vending.BILLING"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="true" android:theme="@style/AppTheme">
<meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://exp.host/example" />
<meta-data android:name="expo.modules.updates.EXPO_SDK_VERSION" android:value="41.0.0" />
<meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
<meta-data android:name="expo.modules.updates.EXPO_RELEASE_CHANNEL" android:value="default" />
<activity
android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen" android:screenOrientation="unspecified">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="example"/>
<data android:scheme="example.package"/>
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity" android:theme="@style/Base.Theme.AppCompat"/>
</application>
</manifest>
如您所见,只提到了 6 个权限。
但是在我使用android studio
为这个项目创建app bundle
并将其上传到谷歌播放控制台后,根据需要显示了29个权限。
这种行为的原因是什么?
谢谢。
【问题讨论】:
【参考方案1】:您可以拥有在其清单中添加权限的库,当您编译项目时,您的清单会与库清单合并。
在 Android Studio 中打开您的清单,然后在底部应该有一个 Merged Manifest 视图
【讨论】:
是的。我可以在合并的清单视图中看到其他权限。我确实删除了,现在这些权限已添加到带有tools:node="remove"
标签的清单文件中。我是安卓工作室的新手。这是删除权限的正确方法吗?
并非如此,添加权限的库可能这样做是有原因的。因此,您应该查看哪些库添加了您不想拥有的权限,如果您不使用它们,请替换/删除这些库。只是删除他们的清单权限很有可能破坏他们的功能。以上是关于世博会弹出反应本机项目上传的apk(由android studio构建)具有比清单文件更多的权限的主要内容,如果未能解决你的问题,请参考以下文章