所以我在我的info.plist
中有这个FirebaseAppDelegateProxyEnabled = NO
我正在使用.p8(APNs身份验证密钥)进行firebase项目配置。我不生成和使用APNs证书(开发或生产证书)
当我使用Xcode进行测试时,调试和发布模式都正常工作。我的所有设备都可以毫无问题地接收FCM。
但是,当我尝试从App Store下载应用程序并触发某些FCM时,所有设备都没有收到该消息。
这就是我设置APNs令牌的方式
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"APNs device token retrieved: %@", deviceToken);
[[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRMessagingAPNSTokenTypeSandbox];
}
我已将所有firebase pod更新为最新版本。我目前正在使用FirebaseMessaging 2.0.7。仅供参考,我没有在我的firebase配置中添加任何App Store ID。
我错过了什么吗?给予的任何帮助都非常受欢迎。
由于
答案 0 :(得分:0)
也许我来晚了,但是您正在通过使用以下命令为调试令牌配置FCM SDK
FIRMessagingAPNSTokenTypeSandbox
因此发行版本无法正常工作。
除非您已禁用滚动,否则就不需要该行:
[[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRMessagingAPNSTokenTypeSandbox];
无论如何(如您一样)禁用了打结功能
通过在应用程序的
FirebaseAppDelegateProxyEnabled
中将NO
设置为#ifdef DEBUG [[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRMessagingAPNSTokenTypeSandbox]; #else [[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRMessagingAPNSTokenTypeProd]; #endif
Info.plist
您需要指定APN令牌:
禁止打扰:映射您的APNs令牌和注册令牌,如果 您已禁用方法切换,则需要明确映射您的 APNs令牌到FCM注册令牌。覆盖方法 didRegisterForRemoteNotificationsWithDeviceToken来检索APN 令牌,然后设置FIRMessaging的APNSToken属性:
[[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRMessagingAPNSTokenTypeUknown];
或者只是
[FIRMessaging messaging].APNSToken = deviceToken;
或
=B2&C2&D2
应用的APNS令牌类型。如果令牌类型设置为UNKNOWN Firebase Messaging将隐式尝试找出实际的 令牌类型来自供应配置文件。除非你真的需要 指定类型,则应改用APNSToken属性。