我从Google Cloud Messaging转到Firebase Cloud Messaging。

使用GCM,我必须选择沙箱选项。如此处所述:https://developers.google.com/cloud-messaging/ios/client#obtain_a_registration_token请参阅第3点。

要在 Debug模式下接收推送通知,我必须执行以下操作

[[GGLInstanceID sharedInstance] startWithConfig:instanceIDConfig];
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
                         kGGLInstanceIDAPNSServerTypeSandboxOption:@YES};

要从AppStore接收App中的推送通知(例如TestFlight),我不得不说:
kGGLInstanceIDAPNSServerTypeSandboxOption:@NO};

现在,我在Firebase中找不到类似的内容。首先,我认为不再需要切换这些愚蠢的值了。但是现在,我的TestFlight应用程序中不再收到任何推送通知。

在调试控制台中,当我在设备上调试时,输出如下:
<FIRInstanceID/WARNING> APNS Environment in profile: development

这对本地调试很有用,但在TestFlight中是不需要的。 (我不知道TestFlight应用程序是否会发生这种情况,因为我没有适用于它们的控制台。)

所以我的问题是:有人知道我是否可以在Firebase中手动更改此沙盒选项吗?

谢谢,

西蒙

最佳答案

我通过将以下代码添加到项目中解决了该问题。

通过TestFlight安装应用程序时,将使用FIRInstanceIDAPNSTokenType.Sandbox,
和FIRInstanceIDAPNSTokenType.Prod(当您的应用在App Store上发布时)。

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData)
{
    FIRInstanceID.instanceID().setAPNSToken(deviceToken, type: FIRInstanceIDAPNSTokenType.Sandbox)
    FIRInstanceID.instanceID().setAPNSToken(deviceToken, type: FIRInstanceIDAPNSTokenType.Prod)
}

关于ios - Firebase Cloud Messaging开发和发行配置文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37628158/

10-11 19:56