GCM:配置子目录失败@ CloudMessaging

时间:2016-06-01 11:28:36

标签: ios objective-c google-cloud-messaging

我正在尝试将Google Cloud Messaging集成到我的iOS应用程序中。我已按照this link中提供的每条说明进行操作。

我还整合了Google登录功能,但效果很好。

问题是我在下面的代码中遇到断言失败。

NSError* configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];
NSAssert(!configureError, @"Error configuring Google services: %@", configureError);

用于配置云消息传递的子规范。 上面的代码位于didFinishLaunchingWithOptions文件中的AppDelegate.m方法。

产生的错误是:

  

由于未捕获的异常终止应用' NSInternalInconsistencyException',原因:'配置Google服务时出错:错误域= com.google.greenhouse代码= -104"无法正确配置subspec CloudMessaging" UserInfo = {NSLocalizedDescription =无法正确配置子规范CloudMessaging,NSLocalizedFailureReason = GCM发件人ID不得为空或空。

现在我不明白这个错误的含义。是的,它明确指出发件人ID不能为零。但是它从哪里得到空ID。

我在模拟器中测试了这个。我不知道这是否会影响。

如果我评论此代码并在真实设备中运行,我也会获得注册令牌,但我没有收到来自我服务器的任何通知。服务器端代码经过测试,适用于Android。

2 个答案:

答案 0 :(得分:0)

最后我解决了这个问题。首先,谢谢大家的快速回复。 我所做的是在以下步骤中解释的。

  1. 获取GCMExample项目。这是我从Github下载的,因为pod try google没有列出GCMExample项目。
  2. here生成GoogleServices-Info.plist文件

  3. 比较GCMExample和MyProject的plist文件。

  4. 我在这里得到了不同之处。在我的项目中,GCM已禁用,并且其中没有发件人ID。我不知道到底发生了什么事。 所以我手动设置启用GCM服务并添加我之前创建的应用程序的发件人ID。

    这就是我解决问题的方法。

答案 1 :(得分:-1)

检查下面的链接以获取证书

cloud-messaging_ios_certs

确保您正确执行以下步骤

  1. 使用推送通知创建您的应用ID。
  2. 创建您的SSL证书。
  3. 下载并运行它以便添加到配置文件。
  4. 要确保您的配置文件包含此证书,请转到Xcode - >偏好 - >帐户 - >您的Apple ID - >您的团队 - >查看详细信息 - >全部下载。