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
打包方式 云端

Screenshot Screenshot Screenshot


更多关于uni-app 云打包后通过配置权限移除不了,移除后依然出现权限相关功能的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 云打包后通过配置权限移除不了,移除后依然出现权限相关功能的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在处理uni-app云打包后权限配置无法移除的问题时,通常涉及到Android和iOS两个平台的权限管理。这可能是由于打包过程中的配置缓存、权限声明的位置不正确或者第三方库自动添加权限等原因导致的。下面是一些针对Android和iOS平台的代码和配置示例,帮助你尝试解决这一问题。

Android平台

  1. 检查AndroidManifest.xml

    确保在AndroidManifest.xml中没有不必要的权限声明。例如,如果你不需要访问相机,应该移除如下行:

    <uses-permission android:name="android.permission.CAMERA"/>
    
  2. ProGuard规则

    如果你使用ProGuard进行代码混淆,确保没有规则错误地保留了权限。检查proguard-rules.pro文件。

  3. 动态权限请求

    如果权限是通过代码动态请求的,确保在代码中正确管理权限请求逻辑,避免不必要的请求。

iOS平台

  1. Info.plist

    检查Info.plist文件,确保没有不必要的权限声明。例如,移除相机权限:

    <key>NSCameraUsageDescription</key>
    <string>App需要访问相机</string>
    

    如果这行存在且你不希望请求相机权限,直接删除这段配置。

  2. Xcode配置

    打开Xcode项目,检查项目的Capabilities标签页,确保没有勾选不需要的权限。例如,如果不需要访问相机,确保Camera选项未勾选。

  3. 第三方库

    检查第三方库是否自动添加了权限。有时,第三方库(如广告库、分析库等)会请求额外的权限。如果确认是第三方库导致的,考虑替换库或联系库的维护者。

示例代码(动态权限请求检查,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.xmlInfo.plist开始,逐步检查代码和第三方库,以及Xcode和Android Studio的项目配置。如果问题依旧存在,考虑清理项目缓存,重新打包,并仔细检查每一步的配置。

回到顶部