uni-app打包googleplay渠道包无法获取clientid

uni-app打包googleplay渠道包无法获取clientid

操作步骤:

  • 打包成googleplay渠道的aar包安装获取到的clientid为空,但是真机运行时可以获取到的。

预期结果:

  • 要能获取到clientid啊,不然无法走fcm推送。

实际结果:

  • 要能获取到clientid啊,不然无法走fcm推送。

bug描述:

uni app云端打google play包,发现打包后传到googleplay后台后下载apk方式安装到手机,无法获取到clientid,从而无法走fcm推送。 手机本身已经是有googleplay商店的,是原生安卓8.0系统,也是可以科学上网的。 获取代码如下:

// #ifdef APP-PLUS    
var pinf = plus.push.getClientInfo();    
var cid = pinf.clientid; //客户端标识    
printf("cid=" + cid);  
// #endif    

表格信息

项目
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 windows10
HBuilderX类型 正式
HBuilderX版本号 3.1.22
手机系统 Android
手机系统版本号 Android 8.0
手机厂商 华为
手机机型 nexus 6p
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app打包googleplay渠道包无法获取clientid的实战教程也可以访问 https://www.itying.com/category-93-b0.html

16 回复

君莫笑 09:56:13 我怀疑是和uni push后台传fcm证书有关系,因为我传了fcm的json和密钥提示保存成功,再进入页面又是空的了

更多关于uni-app打包googleplay渠道包无法获取clientid的实战教程也可以访问 https://www.itying.com/category-93-b0.html


再进入是空的这个是正常的

打 aab 包上周还可以正常的,这两天新打的 aab 包都不行了,都获取不到 clientid ,不知道是不是 unipush 后端做了什么调整引起的

这边也出现了这个情况了,打 apk 包通过 plus.push.getClientInfo 可以正常获取到 clientid 、 token ,打 aab 包时,这两种方式 plus.push.getClientInfo、plus.push.getClientInfoAsync 都获取不到,核对了 fcm 的 软件包名称、SHA证书指纹都和 dcloud 配置的一样,但就是获取不到 client、token。
调用 plus.push.getClientInfo 返回的信息如: {“id”:“unipush”,“token”:“null”,“clientid”:“null”,“appid”:“JZxiuDXxxxxxxbgSHs”,“appkey”:“YHGxxxxxx96q9p4”} 调用 plus.push.getClientInfoAsync 返回的信息如: {“code”:-1,“message”:“failed,check appkey or appid”}
dcloud 的厂商推送设置的 FCM 设置,核对了也是有设置了对应的 Legancy server key ,并上传了 google-services.json

有同样的问题

更新到最新的alpha 版本试试

我们这也有这个问题,什么需要更新到的alpha版本呢?

回复 cwsong: HX版本更新到alpha

回复 DCloud_Android_DQQ: 使用alpha版本也是一样的,接收到的cid为null,之前7.21号打包的版本还能正常获取,就是不能进行第二次的离线推送

回复 cwsong: 你重新提个ask,留一个可以复现你问题的代码出来

回复 DCloud_Android_DQQ: 已经提过了,我再补充下获取CID的代码吧

回复 DCloud_Android_DQQ: https://ask.dcloud.net.cn/question/127803 ask地址

云打包已修复

请问这个问题解决了吗?我现在Android手机(google play)云打包后clientid始终为null , HX版本是## 3.2.3.20210825 真机运行可以拿到clientid但是appid和appkey不一样

云打包已经修复了。 如果还是有问题。 需要检查一下你的应用配置。 主要FCM配置文件是否正确

这个问题通常是由于Google Play渠道包签名与调试签名不同导致的。在uni-app中,FCM的clientid与应用的签名证书直接相关。

核心原因: Google Play渠道包使用您上传到Google Play Console的签名证书(可能是Play App Signing),而本地调试使用的是开发证书。这两个不同的签名会导致FCM注册时生成不同的clientid。

解决方案:

  1. 检查Google Play签名设置 登录Google Play Console,进入您的应用 → 发布 → 应用完整性,确认是否启用了“Play应用签名”。如果启用了,您需要:

  2. 获取Google Play签名证书的SHA1

    • 在Google Play Console中下载Play App Signing证书
    • 使用keytool获取SHA1指纹:
      keytool -list -v -keystore your_upload_certificate.keystore
回到顶部