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
君莫笑 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。
解决方案:
-
检查Google Play签名设置 登录Google Play Console,进入您的应用 → 发布 → 应用完整性,确认是否启用了“Play应用签名”。如果启用了,您需要:
-
获取Google Play签名证书的SHA1
- 在Google Play Console中下载Play App Signing证书
- 使用keytool获取SHA1指纹:
keytool -list -v -keystore your_upload_certificate.keystore


