const getCid = () => {
plus.push.getClientInfoAsync(
info => {
if (info.clientid) {
resolve(info.clientid);
} else {
handleRetry(); // 多轮延迟重试
}
},
error => {
console.warn(`CID获取失败[${retryCount + 1}]:`, error);
handleRetry();
}
);
};

- 发布:2025-08-28 10:42
- 更新:2025-08-28 10:46
- 阅读:73
【报Bug】uni-push 1.0 .aab获取cid失败,报错"code":-1,"message":"failed,check appkey or appid"
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
手机系统: Android
手机系统版本号: Android 13
手机厂商: 模拟器
手机机型: 模拟器
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: CLI
CLI版本号: 3.0.0-4060620250520001
示例代码:
操作步骤:
云打包,自有证书,打包apk和aab
云打包,自有证书,打包apk和aab
预期结果:
aab成功返回cid
aab成功返回cid
实际结果:
"code":-1,"message":"failed,check appkey or appid"
"code":-1,"message":"failed,check appkey or appid"
bug描述:
appid:UNID02FA31
使用plus.push.getClientInfoAsync获取cid
相同证书和打包环境配置未改变的情况下,打包apk获取cid正常,昨天打包的aab获取cid报错"code":-1,"message":"failed,check appkey or appid",但昨天之前打包的aab获取cid是正常的
请问怎么排查原因
LeoQin (作者)
我用keytool -printcert -file META-INF/xxx.RSA比对了之前的.aab和新的.aab是相同的SHA1和SHA256
2025-08-28 11:01
暴躁东北虎
回复 LeoQin: 这样没用,aab是没证书的,要装到手机上分发平台是会先重签成apk才安装的,所以像谷歌那些才会要你上传证书,或者让你同意他那边用他的证书。你要把你手机上不行的apk用jadx-gui查看签名好的md5,sha1,sha256和直接打包的apk是否一致。这样说懂了吧?
2025-08-28 11:26
暴躁东北虎
回复 LeoQin: 分发平台是会先把aab分包,好比如你打的是64和v7a的包,但下载的手机是v7a的,那分发平台会把64的内容剔除掉,把剩余内容重新编译成apk,这样用户就不用下载那么大的包。而重新编译就需要重新签名。你要对比的是签名后的apk
2025-08-28 11:35
LeoQin (作者)
回复 暴躁东北虎: 查看了安装后app的sha1/256也是一样的
2025-08-29 14:58