极光推送开发环境可以收到,生产环境收不到推送 (爬坑笔记)

极光推送开发环境可以收到,生产环境收不到推送

首先阐述一下我遇到的问题

我们项目连通了极光推送,以前写过的项目也是这样 在开发环境下测试 好使了  但是打包ADHoc时候 就不好使了,当时也没在意  因为网上好多人说 只要测试好使了 证书显示配置成功了(绿灯)  那就没问题了

so 上线 然后上线以后 发现推送功能完全不好使!这就尴尬了 赶紧下架

因为我们项目使用的是别名推送

使用极光网站推送时候 我使用了广播,别名推送,regID推送,结果 都能收到(开发环境)

然后我在生产环境 再次发送 广播,别名,regID

结果 很显然 别名收不到 这就纠结了 开始查看问题吧

经过两天的爬坑,终于找到了问题所在  也正在积极解决

在这里再次感谢极光官方两位大牛,如果没有你们的帮忙 我想我还会纠结好久    Lris12     Helperhaps 

好了 废话少说 阐述问题跟代码

————————我是分割线———————————

初次发现这个问题的时候 首先排查的就是证书配置

这里再次建议大家好好仔细的看看开发文档,因为很多错误都是细节处不注意造成的,

https://docs.jiguang.cn/jpush/client/iOS/ios_sdk/

附上开发文档地址。

因为这个项目是接手别人已经做得差不多的 我就负责收尾  所以 证书这方面我会优先查看 是否错误,

developer.apple.com 中 我已经看到


很明显  开发环境的证书跟生产环境的证书 都已经配置完成,

那么证书是没有问题的 下面我们看看极光官网的配置


也是已验证,

这就奇怪了  到这 我表示 可能是代码出错了 好吧 我们来看代码。


别名设置 相信在官方文档中大家都明白怎么写


反复查看文档  我发现并没有任何问题这么写。

经过跟  Lris12 大神的交流

觉得很可能是因为网络原因 在注册极光还没有返回成功的时候 就绑定别名 导致 regID跟别名没有绑定成功

解决方法:添加5个监听,在监听到extern NSString * const kJPFNetworkDidLoginNotification; // 登录成功之后再设置别名

https://docs.jiguang.cn/jpush/client/iOS/ios_guide_new/#jpush-sdk1


Ps。这里强烈建议这么写,安全第一 安全第一!!!!

这里附上代码

```

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

{

NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];

[defaultCenter addObserver:self selector:@selector(networkDidReceiveMessage:) name:kJPFNetworkDidLoginNotification object:nil];

[JPUSHService registerDeviceToken:deviceToken];

}

//通知方法

- (void)networkDidReceiveMessage:(NSNotification *)notification {

[JPUSHService setTags:nil aliasInbackground:[OpenUDID value]];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

[JPUSHService setTags:nil alias:[OpenUDID value] fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias)

{

}];

});

//注销通知

[[NSNotificationCenter defaultCenter] removeObserver:self name:kJPFNetworkDidLoginNotification object:nil];

}

```

然而 问题依旧没有解决,但是这个时候 我们登录极光官网推送

我在生产环境 再次发送 广播,别名,regID

结果  都收到了!!

正当我高兴的时候  发现 api推送依旧收不到!!收不到!!

绝望!!

继续排查

按照开发文档 设置xcode配置, 嗯 依旧没用

这里我重点说一下 :iOS9 之后 卸载重装后会改变token,所以registrationID会改变,如果你没有用到idfa

如果你的项目使用的是regID推送 那么你要注意 每次更新app 新用户下载app  重新下载app等一系列状况下 regID改变的问题

还有如果注册成功后 会返回 设置成功,有callback为0

这个也要注意下

好 回归正题,

这时候时间已经过去一天半了, 最后我觉得 我所有的代码 配置 证书 环境 都没有问题!

再去极光官网看看 到底咋回事

好吗 这一看 终于发现了问题所在!



大家看没看到 这里写的是 推送平台  iOS-dev?

卧槽!!后台给我推送的居然是 开发环境!!

果断找后台理论!!!

Lris大神告诉我

「发布版本后无法有效推送」 or 「生产环境下收不到消息」 按以下步骤排查问题: 客户端 客户端是否打包证书 检查当前环境是否正确 设备里面的手机应用有没有 添加/配置 这个tag/ 别名 服务端注意改变环境参数,option的apns_production的值(true:生产)(false开发)。根据客户端环境改变服务端推送环境。环境要一致才能收到推送。

然后我们后台给我发送了一段代码 堵住了我的嘴

$platform = 'android,ios' ;

$msg_content = json_encode(array('n_builder_id'=>0, 'n_title'=>$n_title, 'n_content'=>$n_content,'content-available'=>1,'apns_production'=>1));

$obj = new jpush($masterSecret,$appkeys);

我标红的位置 人家已经设置了1 为什么还不好用?

经过Helperhaps 大神的解释 好吧 我懂了

我们后台使用的 过期的V2 api

特别提示:建议不要在客户端里写代码直接调用此 API。因为 Android apk 比较容易破解,别人很容易从客户端代码里找出来调用 JPush Remote API 所需要的保密信息,从而可以模拟到你的身份来发起恶意的推送。

建议的使用方式是:调用 JPush Remote API 的代码放在你自己的应用服务器上。你自己的应用服务器对自己的客户端提供接口来推送消息。具体请参考推聊的作法:示例与代码。

升级到 v3 Push API:建议开发者升级到 v3 版本。此版本会继续支持到 2015 年。

至此  这个问题才算是解决(至少对前端来说)

第一次发这样的帖子感觉有点乱 嗯。。。

下次大家在推送上有问题的话。。先看开发文档走一遍流程 然后看看极光个人推送 广播能否收到 然后就可以考虑跟服务端干一仗了!!

最后祝大家 永无BUG!!!!!!!!!!!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容