uni-app 云打包后通过配置权限移除不了,移除后依然出现权限相关功能
uni-app 云打包后通过配置权限移除不了,移除后依然出现权限相关功能
操作步骤:
- 权限移除不了,下载安装后,打开应用等待片刻,还是会提示需要读取应用列表
预期结果:
- 期望能够移除权限
实际结果:
- 没有移除,移除配置无效
bug描述:
- hbuildx4.24、4.29、4.36等版本打包过,都不行。
- 问题一:移除了权限android.permission.GET_INSTALLED_APPS,但依然提示“需要读取应用列表”,导致某些应用商店上架不了,并且使用自己的手机亲测确实存在这个问题。详细看截图。
- 问题二:移除了权限android.permission.READ_PHONE_STATE,但依然“动态申请电话PHONE_STATE权限”,被某些应用商店驳回上架不了。
- 着急上线,请帮忙看看
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
PC开发环境 | Mac | |
PC开发环境版本号 | 12.4 (21F79) | |
HBuilderX | 正式 | HBuilderX |
HBuilderX版本号 | 4.29 | |
手机系统 | Android | |
手机系统版本号 | Android 11 | |
手机厂商 | OPPO | |
手机机型 | PEUM00 | |
页面类型 | vue | |
vue版本 | vue2 | |
打包方式 | 云端 |
更多关于uni-app 云打包后通过配置权限移除不了,移除后依然出现权限相关功能的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app 云打包后通过配置权限移除不了,移除后依然出现权限相关功能的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在处理uni-app云打包后权限配置无法移除的问题时,通常涉及到Android和iOS两个平台的权限管理。这可能是由于打包过程中的配置缓存、权限声明的位置不正确或者第三方库自动添加权限等原因导致的。下面是一些针对Android和iOS平台的代码和配置示例,帮助你尝试解决这一问题。
Android平台
-
检查AndroidManifest.xml
确保在
AndroidManifest.xml
中没有不必要的权限声明。例如,如果你不需要访问相机,应该移除如下行:<uses-permission android:name="android.permission.CAMERA"/>
-
ProGuard规则
如果你使用ProGuard进行代码混淆,确保没有规则错误地保留了权限。检查
proguard-rules.pro
文件。 -
动态权限请求
如果权限是通过代码动态请求的,确保在代码中正确管理权限请求逻辑,避免不必要的请求。
iOS平台
-
Info.plist
检查
Info.plist
文件,确保没有不必要的权限声明。例如,移除相机权限:<key>NSCameraUsageDescription</key> <string>App需要访问相机</string>
如果这行存在且你不希望请求相机权限,直接删除这段配置。
-
Xcode配置
打开Xcode项目,检查项目的Capabilities标签页,确保没有勾选不需要的权限。例如,如果不需要访问相机,确保Camera选项未勾选。
-
第三方库
检查第三方库是否自动添加了权限。有时,第三方库(如广告库、分析库等)会请求额外的权限。如果确认是第三方库导致的,考虑替换库或联系库的维护者。
示例代码(动态权限请求检查,Android)
在Android中,如果你需要动态请求权限,确保逻辑正确,避免不必要的请求:
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.CAMERA},
MY_PERMISSIONS_REQUEST_CAMERA);
} else {
// 权限已授予,执行相关操作
}
确保在onRequestPermissionsResult
方法中正确处理权限请求结果。
总结
权限问题通常涉及多个层面的配置和代码检查。确保从AndroidManifest.xml
和Info.plist
开始,逐步检查代码和第三方库,以及Xcode和Android Studio的项目配置。如果问题依旧存在,考虑清理项目缓存,重新打包,并仔细检查每一步的配置。