我在我的项目中添加了Firebase Cloud Messaging用于接收和发送推送通知。我遵循了Google原始教程中的步骤。结果令人兴奋,我可以在我的设备上接收到推送通知 - 我将其发布到TestFlight,但出现了问题。
我意识到我需要创建不同的证书。然后我从Firebase Cloud Messaging中删除了我的密钥(.p8),并重新创建了它(也是开发版),同时我重新创建了相同的开发配置文件(旧的我吊销了)。我重复了教程中的过程,但现在我甚至不能在我的设备上获得推送通知,也没有在TestFlight上。
有人能帮我解决这些问题吗?
我意识到我需要创建不同的证书。然后我从Firebase Cloud Messaging中删除了我的密钥(.p8),并重新创建了它(也是开发版),同时我重新创建了相同的开发配置文件(旧的我吊销了)。我重复了教程中的过程,但现在我甚至不能在我的设备上获得推送通知,也没有在TestFlight上。
有人能帮我解决这些问题吗?
- 我应该创建哪种证书/配置文件?目前,我已经为开发创建了.p8密钥和用于开发的配置文件(不再起作用)。
- 我需要在我的代码中做出改变吗?我在某处发现应该将URL从沙盒更改为生产环境,Firebase是否会自动执行?这是设备令牌的问题吗?即使我将FCM令牌复制/粘贴到控制台中,我也无法收到测试通知。
- 是否可以从Firebase消息控制台发送静默推送通知?(我可以在Firebase控制台中设置所有必需的标头吗?)
- .p8和.p12之间的区别?是否可能拥有.p8用于生产的密钥?
请帮助我解决这个问题。 谢谢!
[更新][已解决]在完成此答案中的步骤并将Firebase中的团队ID更改为与Apple Developer相同的团队ID后,我能够接收来自我的设备和所有TestFlight设备的通知。
<?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>
- Peter Hlavatík