我最近从 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(例如 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 云消息传递开发和发布配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37628158/