uniapp上传华为应用市场,您的应用提示获取手机存储敏感权限,用户不同意时强制退出应用

问题背景

uniapp云打包后生成apk,第一次启动会申请存储权限,用户点击不同意会退出app,而且这个申请是uniapp基座包做的,和开发者写的代码无关,是uniapp基座运行起来就会申请这个权限。

问题原因

uniapp支持增量更新,想要支持热更新就需要存储权限,但是wgt热更新是应用市场不乐见的。

解决方案

在这里插入图片描述
在manifest.json中打开源码视图,在‘distribute’下添加

"permissionPhoneState" : {
                    "request" : "once",
                    "prompt" : "为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。"
                },
                "permissionExternalStorage" : {
                    "request" : "once",
                    "prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
                },

本人完整distribute节点如下

/* 应用发布信息 */
        "distribute" : {
            /* android打包配置 */
            "android" : {
                "permissionPhoneState" : {
                    "request" : "once",
                    "prompt" : "为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。"
                },
                "permissionExternalStorage" : {
                    "request" : "once",
                    "prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
                },
                "autoSdkPermissions" : true,
                "permissions" : [
                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.USE_FINGERPRINT\"/>",
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                ]
            },
            /* ios打包配置 */
            "ios" : {
                // "UIBackgroundModes" : [ "audio" ],
                "urlschemewhitelist" : [ "baidumap", "iosamap" ],
                "privacyDescription" : {
                    "NSPhotoLibraryUsageDescription" : "便于您上传头像、入职资料等",
                    "NSPhotoLibraryAddUsageDescription" : "便于您上传头像、入职资料等",
                    "NSCameraUsageDescription" : "便于您上传头像、入职资料等"
                },
                "idfa" : false
            },
            /* SDK配置 */
            "sdkConfigs" : {
                "ad" : {},
                "geolocation" : {},
                "push" : {
                    "unipush" : {}
                },
                "share" : {}
            },
            "splashscreen" : {
                "ios" : {
                    "iphone" : {
                        "portrait-896h@3x" : "res/drawable-xhdpi/ios.png",
                        "landscape-896h@3x" : "res/drawable-xhdpi/ios.png",
                        "iphonex" : "res/drawable-xhdpi/ios.png",
                        "iphonexl" : "res/drawable-xhdpi/ios.png",
                        "portrait-896h@2x" : "res/drawable-xhdpi/ios.png",
                        "landscape-896h@2x" : "res/drawable-xhdpi/ios.png",
                        "retina55" : "res/drawable-xhdpi/ios.png",
                        "retina55l" : "res/drawable-xhdpi/ios.png",
                        "retina47" : "res/drawable-xhdpi/ios.png",
                        "retina47l" : "res/drawable-xhdpi/ios.png",
                        "retina40" : "res/drawable-xhdpi/ios.png",
                        "retina40l" : "res/drawable-xhdpi/ios.png",
                        "retina35" : "res/drawable-xhdpi/ios.png"
                    },
                    "storyboard" : "static/image/recrewards_launch.zip"
                },
                "android" : {
                    "hdpi" : "res/drawable-xhdpi/splash3.9.png",
                    "xhdpi" : "res/drawable-xhdpi/splash2.9.png",
                    "xxhdpi" : "res/drawable-xhdpi/splash1.9.png"
                },
                "iosStyle" : "storyboard"
            },
            "icons" : {
                "android" : {
                    "hdpi" : "static/image/7272@2x.png",
                    "xhdpi" : "static/image/9696@2x.png",
                    "xxhdpi" : "static/image/144144@2x.png",
                    "xxxhdpi" : "static/image/192192@2x.png"
                },
                "ios" : {
                    "appstore" : "static/image/10241024@2x.png",
                    "iphone" : {
                        "app@2x" : "static/image/120120@2x.png",
                        "app@3x" : "static/image/180180@2x.png",
                        "spotlight@2x" : "static/image/8080@2x.png",
                        "spotlight@3x" : "static/image/120120@2x.png",
                        "settings@2x" : "static/image/5858@2x.png",
                        "settings@3x" : "static/image/8787@2x.png",
                        "notification@2x" : "static/image/4040@2x.png",
                        "notification@3x" : "static/image/6060@2x.png"
                    },
                    "ipad" : {
                        "app" : "static/image/7676@2x.png",
                        "app@2x" : "static/image/152152@2x.png",
                        "proapp@2x" : "static/image/167167@2x.png",
                        "spotlight" : "static/image/4040@2x.png",
                        "spotlight@2x" : "static/image/8080@2x.png",
                        "settings" : "static/image/2929@2x.png",
                        "settings@2x" : "static/image/5858@2x.png",
                        "notification" : "static/image/2020@2x.png",
                        "notification@2x" : "static/image/4040@2x.png"
                    }
                }
            }
        },

保存之后,云打包生成apk,再次安装启动的时候还是会申请权限,但是拒绝后不会出现,强制退出应用。
上传应用市场,完美通过。

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值