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

Android设备通过Firebase与Flutter无法接收Airship推送通知求助

Android端无法接收Airship推送(Flutter多环境配置后)
  • 已完成Airship Flutter SDK配置,Firebase项目下包含多端多委托方应用,Cloud Messaging Server Key已配置到Airship Android设置中。
  • iOS端推送功能正常,Android端近期失效(一个月前可正常接收),近期新增Flutter Flavors用于切换委托方,怀疑此操作影响了Airship/Firebase配置。
  • 应用状态:Airship启动正常,设备推送通知已开启,网络稳定,可正常获取Channel ID;Airship及应用均处于开发者模式,控制台无报错,App Key与App Secret核对无误。
  • 触发推送时,应用控制台仅输出日志:D/FLTFireMsgReceiver(30006): 收到消息广播

排查建议

1. 核对Flavors对应的Firebase配置文件

  • 确认每个Flavor的google-services.json是否放置在对应环境目录(如android/app/src/[flavorName]/google-services.json),且文件内的project_id、messagingSenderId与Airship配置一致。
  • 检查Flavor构建逻辑,确保编译时正确引入对应环境的配置文件,避免跨环境配置混用。

2. 检查Airship与Flavors的适配配置

  • 确认AndroidManifest.xml中是否针对不同Flavor配置了正确的Airship元数据,或通过环境维度的资源文件(如res/values-[flavorName]/airship.xml)配置对应环境的App Key和Secret,而非硬编码主配置。
  • 检查Flutter初始化Airship的逻辑,是否根据当前Flavor传入了匹配的App Key和Secret参数。

3. 排查Firebase到Airship的消息传递链路

  • 日志显示FLTFireMsgReceiver已收到广播,说明Firebase消息已到设备,但未传递给Airship:
    • 检查AndroidManifest是否注册了com.urbanairship.push.fcm.FcmReceiver,且配置未被Flavors覆盖。
    • 确认没有自定义Firebase消息处理逻辑拦截消息,导致无法传递给Airship。

4. 验证设备端推送状态

  • 确认当前Flavor应用的系统通知权限完全开启(包括横幅、后台通知等),避免不同环境应用的权限状态差异。
  • 通过Channel ID在Airship控制台查看该通道的活跃状态,以及推送记录的详细状态(即使未送达,控制台可能留存相关日志)。

5. 检查构建配置细节

  • 确认各Flavor的build.gradle中,Airship与Firebase的依赖版本一致,避免版本冲突。
  • 若开启了代码混淆,确认Airship、Firebase相关类已加入混淆白名单,防止核心类被混淆导致功能失效。

内容的提问来源于stack exchange,提问作者Anna R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:05:11