quickblox 推送通知在生产模式下不起作用
Posted
技术标签:
【中文标题】quickblox 推送通知在生产模式下不起作用【英文标题】:quickblox push notification doesnt work in production mode 【发布时间】:2014-08-10 11:34:18 【问题描述】:我将 quickblox 添加到我的应用中
在开发模式下,推送通知系统运行良好。
但是,当我将应用程序置于生产模式时,后端系统说推送已发送,但未收到推送。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
[QBSettings setLogLevel:QBLogLevelDebug];
[QBSettings setApplicationID:kAppID];
[QBSettings setAuthorizationKey:kAuthorizationKey];
[QBSettings setAuthorizationSecret:kAuthorizationSecret];
[QBSettings setAccountKey:@kAccountKey];
[QBSettings useProductionEnvironmentForPushNotifications:NO];
//switch to production mode
#ifndef DEBUG
[QBSettings setLogLevel:QBLogLevelNothing];
[QBSettings useProductionEnvironmentForPushNotifications:YES];
#endif
return YES;
然后在我的应用程序的某个地方我有这段代码
-(void)sendPushMessage:(QBChatAbstractMessage *)absMessage toUser:(NSInteger)userId andDelegate:(NSObject<QBActionStatusDelegate>*)delegate
NSString *fullName = [self fullName];
NSString *mesage;
if(fullName)
mesage =[NSString stringWithFormat:@"%@ says: %@",fullName, absMessage.text];
else
mesage = absMessage.text;
NSMutableDictionary *payload = [NSMutableDictionary dictionary];
NSMutableDictionary *aps = [NSMutableDictionary dictionary];
[aps setObject:@"default" forKey:QBMPushMessageSoundKey];
[aps setObject:mesage forKey:QBMPushMessageAlertKey];
[aps setObject:[self dictionaryRepresentation] forKey:@"user_info"];
[payload setObject:aps forKey:QBMPushMessageApsKey];
NSLog(@"payload:%@",payload);
QBMPushMessage *message = [[QBMPushMessage alloc] initWithPayload:payload];
[QBMessages TSendPush:message toUsers:[@(userId) stringValue] delegate:delegate];
在开发环境中,这段代码运行良好。 我多次检查了我的生产 APNS 证书,删除它,重新制作它,重新安装它 并且在生产模式下没有任何工作
我尝试从管理页面向自己发送生产推送通知
并收到了这个
这些是它被发送给的用户
为什么?
【问题讨论】:
【参考方案1】:您是否使用 AdHoc ipa 构建测试生产推送?
如果你用调试模式测试它 - 它不会工作
阅读本主题quickblox makes the same token for development and production
我已经写了一个如何使这项工作的答案
【讨论】:
以上是关于quickblox 推送通知在生产模式下不起作用的主要内容,如果未能解决你的问题,请参考以下文章