为什么 Google Cloud Messaging 通知不适用于 iPhone 生产环境?
why Google Cloud Messaging notification not working with iPhone production environment?
我正在开发一个 iPhone 应用程序,它从 PHP 服务器接收推送通知。
为了发送通知,我正在使用 Google 云消息传递。 GCM 在 iPhone 开发环境中工作正常,但我无法在 iPhone 生产环境中收到通知并且我不断收到此 错误消息 :
{
"multicast_id":7214972633373567187,
"success":0,
"failure":1,
"canonical_ids":0,
"results":[
{
"error":"NotRegistered"
}
]
}
我试了很多,也用谷歌搜索了很多,但没有找到解决这个问题的方法。请帮帮我。
我创建了 .p12
个生产环境证书并将其上传到 Google 云消息配置文件。
要使用 iPhone push notifications in Production
环境,您需要遵循以下几点:
- 您的
.cer
和 .p12
需要使用 production profile
创建
- 您的应用需要在
iTunes store
上载。
- 仅 当您从
iTunes store
下载 binary
时,您的生产配置文件将发挥作用,您可以在生产环境中发送和接收消息。
终于找到解决办法了。现在使用 GCM(Google 云消息传递)我可以向 iPhone 设备发送通知。
在appDelegate.m
中只需改变applicationDidBecomeActive
方法中的一个条件即可。
这是用于生产环境的代码:
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@NO};
这是用于开发环境的代码:
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@YES};
设置"priority": "high"
{
"to": "gcm_device_token",
"priority": "high",
"content_available": false,
"notification": {
"sound": "default",
"badge": "1",
"title": "Push Title",
"body": "Push Body"
}
}
这是用于生产环境的代码:
appDelegate.m
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@NO};
这是用于开发环境的代码:
appDelegate.m
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@YES};
我正在开发一个 iPhone 应用程序,它从 PHP 服务器接收推送通知。
为了发送通知,我正在使用 Google 云消息传递。 GCM 在 iPhone 开发环境中工作正常,但我无法在 iPhone 生产环境中收到通知并且我不断收到此 错误消息 :
{
"multicast_id":7214972633373567187,
"success":0,
"failure":1,
"canonical_ids":0,
"results":[
{
"error":"NotRegistered"
}
]
}
我试了很多,也用谷歌搜索了很多,但没有找到解决这个问题的方法。请帮帮我。
我创建了 .p12
个生产环境证书并将其上传到 Google 云消息配置文件。
要使用 iPhone push notifications in Production
环境,您需要遵循以下几点:
- 您的
.cer
和.p12
需要使用production profile
创建
- 您的应用需要在
iTunes store
上载。 - 仅 当您从
iTunes store
下载binary
时,您的生产配置文件将发挥作用,您可以在生产环境中发送和接收消息。
终于找到解决办法了。现在使用 GCM(Google 云消息传递)我可以向 iPhone 设备发送通知。
在appDelegate.m
中只需改变applicationDidBecomeActive
方法中的一个条件即可。
这是用于生产环境的代码:
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@NO};
这是用于开发环境的代码:
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@YES};
设置"priority": "high"
{
"to": "gcm_device_token",
"priority": "high",
"content_available": false,
"notification": {
"sound": "default",
"badge": "1",
"title": "Push Title",
"body": "Push Body"
}
}
这是用于生产环境的代码: appDelegate.m
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@NO};
这是用于开发环境的代码: appDelegate.m
_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@YES};