Firebase云消息传递开发和发布配置文件

rcp*_*chs 10 ios firebase google-cloud-messaging firebase-cloud-messaging

我接受了从Google Cloud Messaging到Firebase Cloud Messaging的热烈欢迎.

使用GCM,我不得不选择沙盒选项.如下所述:https://developers.google.com/cloud-messaging/ios/client#obtain_a_registration_token请参阅第3点.

要在调试模式下接收推送通知,我必须做这样的事情

[[GGLInstanceID sharedInstance] startWithConfig:instanceIDConfig];
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
                         kGGLInstanceIDAPNSServerTypeSandboxOption:@YES};
Run Code Online (Sandbox Code Playgroud)

要从AppStore接收应用程序中的推送通知(例如TestFlight),我不得不说:

kGGLInstanceIDAPNSServerTypeSandboxOption:@NO};
Run Code Online (Sandbox Code Playgroud)

现在我在Firebase中找不到这样的东西.首先,我认为不再切换这些愚蠢的价值观.但现在我的TestFlight应用程序中不再收到任何推送通知了.

在我的调试控制台中,当我在设备上调试时,一个输出是这样的:

<FIRInstanceID/WARNING> APNS Environment in profile: development
Run Code Online (Sandbox Code Playgroud)

哪个适合本地调试,但在TestFlight中不受欢迎.(我不知道TestFlight应用程序是否会发生这种情况,因为我没有控制台.)

所以我的问题是:有人知道我是否可以在Firebase中手动更改这个Sandbox选项?

谢谢,

西蒙

Kav*_*gam 11

我通过在项目中添加以下代码解决了这个问题.


当您的应用程序在App Store上运行时,将通过TestFlight 和FIRInstanceIDAPNSTokenType.Prod 安装应用程序时使用FIRInstanceIDAPNSTokenType.Sandbox .

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