iOS FirebaseCloudMessaging 通知在 Debug / Test Flight 及 Release 版本中均无法工作

3
我已经在安卓上成功处理了通知问题,但是在iOS上我无法解决问题。
  • 我创建了APN文件并上传到Firebase iOS配置中
  • 团队ID和应用ID都是正确的 - 已经进行了双重检查
  • "推送通知"在Apple Developer和Xcode中都已经激活
  • 当应用启动时,iOS会发出请求以允许通知

我正在使用firebase_messaging插件,并且在我的main.dart文件中添加了以下内容:

@override
void initState() {
    super.initState();

    if (Platform.isIOS)
      this.fbaseMessaging.requestNotificationPermissions(
            IosNotificationSettings(sound: true, badge: true, alert: true),
      );
}

当用户登录时,我取得令牌:
fbaseMessaging.getToken().then((token) {
    // Updates the user account
});

我已经在Xcode模拟器、TestFlight的iOS设备以及发布版本上进行了测试,但从未收到任何通知,也不知道如何调试问题的根源。
我跟随了几个教程,例如:
  1. https://medium.com/flutterpub/启用Firebase云消息推送通知与Flutter-39b08f2ed723
  2. https://www.youtube.com/watch?time_continue=450&v=PzjxZsz3Tjk
1个回答

6

已解决.

我只需要修改这个:

if (Platform.isIOS)
{
  this.fbaseMessaging.requestNotificationPermissions(
        IosNotificationSettings(sound: true, badge: true, alert: true),
  );
}

变成这样:

if (Platform.isIOS)
{
  this.fbaseMessaging.configure();
  this.fbaseMessaging.requestNotificationPermissions(
        IosNotificationSettings(sound: true, badge: true, alert: true),
  );
}

看起来即使我没有使用onResumeonLaunchonMessageconfigure方法也必须被调用。


1
谢谢你,我已经为此苦苦挣扎了三天,一遍又一遍地重做官方步骤。当我看到你的解决方法时,我想,这个人一定在吸毒,这肯定应该在官方文档中有提到,但它确实有效!非常感谢! - Robert Benedetto
@行数,@Robert Benedetto,请帮我解决这个问题。当应用程序在后台时,我无法从API中接收到通知。从Firebase控制台可以正常工作。请发送一个son格式文件,谢谢。 - Shangari C
@ShangariC,你解决了吗?我也遇到了同样的问题。 - Pablo Johnson
你好,我已经使用onmessage和onresume进行了配置,但是在ios-release模式下通知仍然无法正常工作,但在其他模式下都可以正常工作。 - azheen
@azheen,你找到解决方案了吗?我也遇到了完全相同的问题。在调试模式下通知工作正常,但在发布模式下不起作用。 - Sandip Fichadiya
@azheen,我也遇到了同样的问题。你是怎么解决的? - DNS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接