uni-app uni-push 1.0 .aab获取cid失败,报错"code":-1,"message":"failed,check appkey or appid"
uni-app uni-push 1.0 .aab获取cid失败,报错"code":-1,“message”:“failed,check appkey or appid”
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win11 | CLI |
产品分类:uniapp/App
PC开发环境操作系统:Windows
手机系统:Android
手机系统版本号:Android 13
手机厂商:模拟器
手机机型:模拟器
页面类型:vue
vue版本:vue3
打包方式:云端
CLI版本号:3.0.0-4060620250520001
### 示例代码:
```javascript
const getCid = () => {
plus.push.getClientInfoAsync(
info => {
if (info.clientid) {
resolve(info.clientid);
} else {
handleRetry(); // 多轮延迟重试
}
},
error => {
console.warn(`CID获取失败[${retryCount + 1}]:`, error);
handleRetry();
}
);
};
操作步骤:
云打包,自有证书,打包apk和aab
预期结果:
aab成功返回cid
实际结果:
{
"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是正常的
请问怎么排查原因
更多关于uni-app uni-push 1.0 .aab获取cid失败,报错"code":-1,"message":"failed,check appkey or appid"的实战教程也可以访问 https://www.itying.com/category-93-b0.html
aab转apk是需要重签的,你检查下重签的apk是否和直接打包的apk证书是否一致
更多关于uni-app uni-push 1.0 .aab获取cid失败,报错"code":-1,"message":"failed,check appkey or appid"的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我用keytool -printcert -file META-INF/xxx.RSA比对了之前的.aab和新的.aab是相同的SHA1和SHA256
回复 LeoQin: 分发平台是会先把aab分包,好比如你打的是64和v7a的包,但下载的手机是v7a的,那分发平台会把64的内容剔除掉,把剩余内容重新编译成apk,这样用户就不用下载那么大的包。而重新编译就需要重新签名。你要对比的是签名后的apk
回复 暴躁东北虎: 查看了安装后app的sha1/256也是一样的
这个问题通常与uni-app云端打包服务中uni-push的配置或证书签名有关。以下是排查步骤:
-
检查应用签名:确保打包时使用的签名文件与DCloud后台绑定的签名一致。aab包在Google Play安装时会重新签名,可能导致签名变更。可以通过获取当前应用签名SHA1值与DCloud后台配置比对。
-
验证AppKey/AppId:确认manifest.json中uni-push配置的AppKey和AppId正确,且与DCloud开发者中心对应应用配置一致。特别注意aab包是否使用了不同的配置。
-
检查打包模式:云端打包时确保选择了正确的打包模式(release/debug),不同模式可能使用不同的证书。
-
网络权限:确认AndroidManifest.xml已配置互联网权限:
<uses-permission android:name="android.permission.INTERNET"/>


