You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地/AS安装Android应用FCM Token正常,上架Play Store后无法生成

解决Google Play上架后FCM Token无法生成的问题

1. 检查Google Play应用签名证书的SHA值配置

Google Play的应用签名服务会替换你本地的签名证书,而FCM绑定的是签名证书的SHA-1/SHA-256值,这是最常见的问题根源:

  • 登录Google Play Console,进入你的应用 → 应用签名 → 复制「应用签名证书」的SHA-1和SHA-256值
  • 打开Firebase控制台,进入对应项目 → 设置 → 项目设置 → 你的Android应用 → 添加刚才复制的SHA值,保存后重新下载google-services.json替换到项目中

2. 补充完整的ProGuard混淆规则

仅保留com.google.firebase.**不足以覆盖FCM的所有关键类,需要补充以下规则:

# FCM核心类与回调保留
-keep class com.google.firebase.messaging.** { *; }
-keep class com.google.firebase.iid.** { *; }
-keep public class com.google.firebase.iid.FirebaseInstanceIdReceiver { *; }

# 保留注解与签名信息,避免回调被混淆
-keepattributes *Annotation*
-keepattributes Signature

# 针对新版FCM(23.0+)的Token获取方法
-keep class com.google.firebase.messaging.FirebaseMessaging {
    public void getToken(...);
}

3. 确认应用权限与完整性配置

  • 确保AndroidManifest.xml中保留INTERNET权限(FCM需要网络连接,targetSdk≥23时默认包含,但如果手动移除需重新添加):
<uses-permission android:name="android.permission.INTERNET" />
  • 进入Google Play Console → 应用完整性,确认应用签名状态正常,无异常限制配置

4. 规范FCM初始化与Token获取时机

  • 在自定义Application类的onCreate方法中初始化Firebase,确保全局初始化:
@Override
public void onCreate() {
    super.onCreate();
    FirebaseApp.initializeApp(this);
}
  • 避免在后台线程或应用处于后台时调用getToken(),建议在应用前台启动时触发获取逻辑,同时确保设备网络正常

5. 测试上架环境的包

不要仅用debug包测试,使用Google Play生成的签名APK/App Bundle进行本地测试,提前模拟上架后的环境,排查问题

内容的提问来源于stack exchange,提问作者Ezzy Wachira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:46:00