故障排除技巧
Resolve common issues with Firebase settings, dependencies, and SDK integration.
阅读时间4 分钟最后更新于 6 个月前
如果在使用 Push Notifications SDK 时遇到任何问题或错误,应参考以下常见的故障排除技巧。
有些故障排除技巧可能会提及特定的常见错误。但是,即使您没有遇到这些问题,仍然建议您按顺序查看。
1.(Android) 在 Push Notifications(推送通知)设置中验证您的 Firebase 值
在使用 Push Notification SDK 期间,如果您尝试将测试设备注册到 Firebase 时遇到问题,可能是因为您的 Firebase 值为空或无效。
您可以在 Push Notifications Settings(推送通知设置)细分段中查看如何添加 Firebase 详细信息。
或者,如果您确定提供的值正确无误,请确认值的后面没有空格/空白。这是一种导致问题的已知原因。
2.(EDM4U/MDR) 验证是否已解析 Push Notifications SDK 的依赖项
如 External Dependency Manager for Unity (EDM4U) 支持部分所述,Push Notifications SDK 不需要也不会捆绑 External Dependency Manager for Unity (EDM4U) 或 Mobile Dependency Resolver (MDR) 来解析其自己的依赖项。但是,如果使用了这两者之中的任何一个,则 Push Notifications SDK 会与它们集成在一起。
如果任何其他包也不需要 EDM4U 或 MDR,建议卸载它们。
否则,我们建议您按照以下步骤操作:
- 确认已生成依赖项文件 。将此文件放在自动生成的
PushSDKDependencies.xml目录下。Assets/Push Notifications/Editor/Android- 如果此文件不存在,请重新打开您的 Unity 项目。在这个过程期间应该会生成此文件。
- 使用 或
Resolve选项,这两个选项都位于 Assets(资源)> External Dependency Manager > Android Manager 下。Force Resolve - 使用 选项确认已解析 Push Notifications SDK 的依赖项,该选项也位于 Assets(资源)> External Dependency Manager > Android Manager 下。应该会显示以下行:
Display Librariesimplementation 'com.google.firebase:firebase-messaging-ktx:22.0.0' // Assets/Push Notifications/Editor/Android/PushSDKDependencies.xml:9- 请注意,如果其他包或 SDK 使用同样的依赖项,则以上行旁边的注释可能略有不同。

3.(Android) 确认 Minify(缩小)功能在构建过程中未排除 Push Notifications SDK
如果您已完成 EDM4U/MDR 故障排除部分,但仍然收到类似于以下错误的信息:
java.lang.ClassNotFoundException: com.unity.services.pushnotifications.android.UnityCallbackClass
检查 Player Settings(播放器设置)> Publishing(发布)> Minify(缩小) 下的 Minify(缩小)选项。如果勾选了 或 复选框,则表示会使用 Minify(缩小),这种情况下可能会在缩小过程从发布/调试构建中移除 Push Notifications SDK,因此会导致“class missing(类缺失)”错误。
ReleaseDebug如果您不需要 Minify(缩小),可以将其关闭来解决这一问题。
如果要继续使用 Minify(缩小),则需要在自定义 proguard 文件下添加 Push Notifications 类,以防止在缩小过程中排除 Push Notifications SDK 功能。
在 Player Settings(播放器设置)> Publishing(发布)> Build(构建)> Custom Proguard File(自定义 Proguard 文件) 下启用 。
Custom Proguard File
img.png
打开在指定路径下创建的文件,并附加以下行:
-keep class com.unity.services.pushnotifications** { *;}
这样应该可以解决问题。
4. (iOS) 确保在 XCODE 中启用远程通知
为了使 iOS 应用能够接收推送通知,需要授予 功能。
Remote Notifications如果不执行此操作,您的应用将出现以下错误:
Failed to register for remote notifications: no valid “aps-environment” entitlement string found for application
转到 Signing & Capabilities(签名和功能)> Capability(功能)> Background Modes(后台模式)> Remote Notifications(远程通知) 以提供 功能。
Remote Notifications
5.在 Unity Dashboard(Unity 后台)的 Push Notifications(推送通知)设置下检查您的 API 密钥
要向终端用户设备发送推送通知,请将您的 Google 密钥和 Apple 密钥添加到 Unity Dashboard(Unity 后台)的 中,位于 LiveOps > Push Notifications 下。
Settings对于 iOS,请确保您的密钥与目标构建版本匹配。对于调试构建,请将 选项设置为 ,而对于生产构建,请将其设置为 。如果密钥和构建版本不匹配,测试设备将不会收到通知。
SandboxTrueFalse按照测试指南检查密钥是否有效。