首页 > 解决方案 > 适用于 iOS 的 Flutter Firebase 推送通知不显示

问题描述

我将我的应用程序的颤振版本升级到最新版本(1.22.5),从那时起推送通知不会显示。我可以在日志中看到正在调用 onMessage 回调并且正在发送通知数据 - 通过真实设备上的 firebase 控制台进行测试 - 不显示通知

我升级到最新版本的 firebase 消息传递并使用 ^7.0.3。在升级之前的版本(flutter v1.17.0)中,在设备上安装构建时,我确实看到了通知。

我在完成安装步骤时尝试查看是否有任何更改,但似乎配置正常。

颤振医生的输出:

[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.6 19G73 darwin-x64, locale en-IL)
    • Flutter version 1.22.5 at /Users/****/Desktop/Dev/tools/flutter
    • Framework revision 7891006299 (9 days ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/****/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.8.4

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 43.0.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] IntelliJ IDEA Ultimate Edition (version 2020.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 47.1.3
    • Dart plugin version 201.8538.45

[✓] IntelliJ IDEA Community Edition (version 2019.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 43.0.3
    • Dart plugin version 193.6015.53

[✓] VS Code (version 1.52.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (2 available)
    • sdk gphone x86 arm (mobile) • emulator-5554                        • android-x86 • Android 10 (API 29) (emulator)
    • iPhone 12 (mobile)          • AEB05F91-087A-4EE1-8472-DB3DAD672C71 • ios         • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)

编辑:顺便说一句,我试图上传应用程序进行试飞,应用程序已成功上传,但我收到了来自苹果的警告:

ITMS-90078:缺少推送通知权利 - 您的应用似乎注册了 Apple 推送通知服务,但应用签名的权利不包括“aps-environment”权利。如果您的应用程序使用 Apple 推送通知服务,请确保您的应用程序 ID 在配置门户中启用推送通知,并在使用包含“aps-environment”权利的分发配置文件签署您的应用程序后重新提交。Xcode 不会在构建时自动从配置文件中复制 aps-environment 权利。这种行为是故意的。要使用此权利,请在项目编辑器的“功能”窗格中启用推送通知,或手动将权利添加到您的权利文件中。有关详细信息,请参阅https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1

我在 Xcode 中启用了功能,所以不确定这里有什么问题

在 ios/Runner/Runner.entitlements 中也得到了这个

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>aps-environment</key>
    <string>development</string>
</dict>
</plist>

这个问题可能与此有关吗?

似乎没有真正的方法来调试它。任何帮助,将不胜感激。

标签: iosfirebaseflutterfirebase-cloud-messagingapple-push-notifications

解决方案


我注意到GitHub 上有一个关于您的问题的错误。这应该使用此评论此 PR中提到的最新开发版本来解决:

最新的开发版本应该可以正常工作,但是由于您遇到了同样奇怪的问题,我建议您查看 #4097中的讨论。


推荐阅读