我正在开发这个iOS应用程序,这不是我第一次处理GCM但是我遇到了这个setAllowGCMRegistrationWithoutAPNSToken
错误而且我无法在互联网上找到任何内容!
这是错误消息:
"[[GGLInstanceID sharedInstance] startWithConfig:[GGLInstanceIDConfig defaultConfig]];"
这是代码:
- (void)application:(UIApplication )application didRegisterForRemoteNotificationsWithDeviceToken:(NSData )deviceToken {
// [END receive_apns_token]
// [START get_gcm_reg_token]
// Start the GGLInstanceID shared instance with the default config and request a registration
// token to enable reception of notifications
[[GGLInstanceID sharedInstance] startWithConfig:[GGLInstanceIDConfig defaultConfig]];
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@YES};
[[GGLInstanceID sharedInstance] tokenWithAuthorizedEntity:_gcmSenderID
scope:kGGLInstanceIDScopeGCM
options:_registrationOptions
handler:_registrationHandler];
// [END get_gcm_reg_token]}
答案 0 :(得分:0)
尝试在setting up a GCM App on IOS上遵循本指南。
在接收消息之前,iOS应用程序需要向Apple推送通知服务(APN)和GCM连接服务器注册。当客户端应用程序向GCM注册时,它会收到一个注册令牌,然后必须将其发送到应用服务器(APN设备令牌不发送到服务器)。客户端应用程序必须存储一个布尔值,指示是否已将注册令牌发送到服务器。
注册APN并获取GCM注册令牌:
包含GCM标题:#import <Google/CloudMessaging.h>
注册远程通知并获取APNs令牌。
配置并初始化Instance ID,并使用以下参数调用tokenWithAuthorizedEntity:scope:options:handler:
:
应用服务器sender ID
kGGLInstanceIDScopeGCM
范围,GGLInstanceID.h
APNs令牌,设置为选项字典的一部分,密钥为kGGLInstanceIDRegisterAPNSOption
,值设置为二进制APNS令牌
kGGLInstanceIDAPNSServerTypeSandboxOption
,沙盒的值为YES,生产环境的值为NO。这是选项词典的一部分。
检索到令牌后,将其发送到您的应用服务器。
有关您的错误消息:
[[GGLInstanceID sharedInstance] startWithConfig:[GGLInstanceIDConfig defaultConfig]]
尝试将其替换为
[[GGLInstanceID sharedInstance] startWithConfig:instanceIDConfig]