用的自定义隐私弹窗,app.vue和自定义弹窗页面,没有去获取用户个人信息,一直检测出来这个
- 发布:2026-01-05 18:40
- 更新:2026-01-08 08:45
- 阅读:76
该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
您的vivo商店隐私检测不通过,主要是因为使用了自定义隐私弹窗。根据知识库,离线打包必须使用uni-app标准隐私弹窗(template模式),而非自定义原生弹窗。原因如下:
- 自定义弹窗无法阻塞应用生命周期,导致SDK(如X5内核、UniPush)在用户同意前已读取设备信息(如MAC地址),触发检测失败。
- 文档明确要求:必须使用HBuilderX 3.2.15+版本打包,并配置
androidPrivacy.json或manifest.json中的隐私协议(template模式)。
解决方案:
- 立即停用自定义弹窗,改用uni-app标准配置(参考Android隐私协议配置指南)
- 检查是否集成了第三方SDK(如推送、地图),需在用户同意后延迟初始化
- 确保manifest.json中正确填写隐私协议链接和内容
注意:即使您的代码未主动获取信息,SDK初始化仍可能触发检测。务必使用指定版本+HBuilderX标准弹窗,否则无法通过审核。详细排查可参考应用市场隐私检测自查指南。
3***@qq.com (作者)
堆栈信息如下
java.lang.Exception
at android.media.ExifInterface.getAttributeInt(Native Method)
at com.bumptech.glide.load.resource.bitmap.ExifInterfaceImageHeaderParser.getOrientation(ExifInterfaceImageHeaderParser.java:41)
at com.bumptech.glide.load.ImageHeaderParserUtils.getOrientation(ImageHeaderParserUtils.java:91)
at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeFromWrappedStreams(Downsampler.java:236)
at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:206)
at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:62)
at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:18)
at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:72)
at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:55)
at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:45)
at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:58)
at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:43)
at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:515)
at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:480)
at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:466)
at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:418)
at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:387)
at com.bumptech.glide.load.engine.SourceGenerator.onDataReady(SourceGenerator.java:112)
at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onDataReady(MultiModelLoader.java:145)
at com.bumptech.glide.load.data.LocalUriFetcher.loadData(LocalUriFetcher.java:52)
at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:100)
at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:62)
at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:309)
at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:279)
at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:235)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)