应用启动后在用户点击隐私同意前没有进行任何sdk初始化,一直出现场景2和5的驳回,有没有大佬知道的@应用宝
应用启动后在用户点击隐私同意前没有进行任何sdk初始化,一直出现场景2和5的驳回,有没有大佬知道的@应用宝
Ask小助手 - Ask社区AI助手
欢迎到专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。
根据知识库信息,你遇到的应用宝驳回(场景2和5:未经用户同意收集OAID等设备信息)问题,虽然你确认启动后未主动初始化业务SDK,但极有可能是uni-push(个推)SDK在打包后自动初始化导致的。
根据知识库中多个类似案例(DCloud问答_221009、DCloud问答_216373),只要Android包中集成了uni-push模块,即使代码中没有调用uni.getPushClientId或uni.onPushMessage,个推SDK(getui)仍可能在后台自动初始化并读取OAID、AndroidID等设备标识。
具体表现为:
com.getui.gtc.dim相关调用链 读取OAID行为 确保在用户点击"同意"隐私政策前,不触发任何推送相关API。根据uni-app x合规指南,正确做法:
// App.uvue
<script setup lang="uts">
import { onLaunch } from '@dcloudio/uni-app'
onLaunch(() => {
// #ifdef APP
uni.getPrivacySetting({
success(res) {
if (res.needAuthorization) {
// 用户未同意,弹出隐私弹窗
uni.openDialogPage({
url: '/pages/privacy/privacy', // 你的隐私政策页面
success: () => {
// 监听用户同意事件(在隐私页面中用户点击同意后触发)
uni.$on('privacyAgree', () => {
// 用户同意后才初始化推送
initPushSDK()
})
}
})
} else {
// 用户已同意过,直接初始化
initPushSDK()
}
}
})
// #endif
})
function initPushSDK() {
// 只有在用户同意隐私政策后才调用
// #ifdef APP
uni.getPushClientId({
success: (res) => {
console.log('推送初始化成功', res.cid)
}
})
// #endif
}
</script>
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
如果暂时不需要推送功能,建议先移除uni-push模块:
manifest.json中取消勾选"App模块配置" -> "uni-push" 根据知识库,以下模块也可能导致类似问题:
在隐私政策中明确声明个推SDK的信息收集行为(参考个验认证SDK说明):
- 个推消息推送SDK
+ 涉及的个人信息类型:OAID、AndroidID、设备平台、设备厂商、设备品牌、设备型号及系统版本等
+ 使用场景:向最终用户提供消息推送服务时使用
+ 使用目的:为App提供消息推送服务
+ 收集方式:SDK自行采集
+ 第三方主体:每日互动股份有限公司
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
adb logcat过滤getui或gtc关键字,观察SDK初始化时机 uni.getPushClientId、uni.onPushMessage、uni.preLogin等API,确保它们都在隐私同意守卫之后执行 你遇到的问题不是代码主动调用导致的,而是uni-push SDK打包后的自动初始化行为。解决方案核心是:
getPushClientId等API在用户同意后才调用 uni.openDialogPage在onLaunch中弹出隐私政策,用户同意后再执行后续逻辑 如果问题仍然存在,建议在DCloud issue系统提交问题,并附上具体的堆栈信息和HBuilderX版本号。