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

标签 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 点。

要在 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/

相关文章:

c# - MonoTouch 对话框 StringElements 可变单元格高度

ios - 将图像数组添加到 Collection View - swift

ios - Storyboard中的主视图尺寸不正确(仅限纵向)

android - 无法获取 'https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.0.1/google-services-4.0.1.pom'

android - 带有房间和状态处理的 Kotlin Coroutines Flow

ios - 如何在没有唯一自动 ID 的情况下追加 firebase swift

php - 使用 GCM 推送通知 - PHP

android - 如何为 android 和 iOS GCM 使用相同的服务器 api key

ios - 无法让 CAEmitterLayer 显示粒子

java - 如何在我的安卓设备上实现推送通知