【发布时间】:2016-09-30 17:53:30
【问题描述】:
我正在尝试将 Google Cloud Messaging 集成到我的 iOS 应用程序中。我已遵循this link 中提供的每条指令。
我还集成了谷歌登录,它工作正常。
问题是我在下面的代码中遇到断言失败。
NSError* configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];
NSAssert(!configureError, @"Error configuring Google services: %@", configureError);
用于配置云消息传递的子规范。
上面这段代码在AppDelegate.m文件中的didFinishLaunchingWithOptions方法中。
产生的错误是:
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“配置 Google 服务时出错:错误域=com.google.greenhouse 代码=-104“无法正确配置子规范 CloudMessaging”UserInfo={NSLocalizedDescription=无法正确配置subspec CloudMessaging, NSLocalizedFailureReason=GCM Sender ID 不能为 nil 或空。
现在我不明白这个错误的含义。是的,它明确指出发件人 ID 不得为零。但它从哪里得到空 ID。
我已经在模拟器中测试过了。不知道有没有影响。
如果我评论此代码并在真实设备中运行,我也会获得注册令牌,但我没有收到来自服务器的任何通知。服务器端代码经过测试,适用于 android。
【问题讨论】:
-
FCM(以前的 GCM)无法在模拟器上测试,您必须使用真实设备。您是否也将 GoogleService-Info.plist 添加到您的项目中?在这里查看在 iOS 上设置 FCM:firebase.google.com/docs/cloud-messaging/ios/client
-
@ArthurThompson:因为他们使用的是
GGLContext,所以看起来他们使用的是 GCM,而不是 FCM。 -
GCM 和 FCM 都需要 GoogleServices-info.plist 它包含所需的发件人 ID
标签: ios objective-c google-cloud-messaging