LeoQin
LeoQin
  • 发布: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"

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

手机系统: Android

手机系统版本号: Android 13

手机厂商: 模拟器

手机机型: 模拟器

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: CLI

CLI版本号: 3.0.0-4060620250520001

示例代码:
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是正常的

请问怎么排查原因

2025-08-28 10:42 负责人:DCloud_Android_THB 分享
已邀请:
暴躁东北虎

暴躁东北虎

aab转apk是需要重签的,你检查下重签的apk是否和直接打包的apk证书是否一致

  • 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

要回复问题请先登录注册