美文网首页有关极光推送的文档 iOS开发技术分享iOS Developer
iOS端极光推送开发环境收到,生产环境收不到推送

iOS端极光推送开发环境收到,生产环境收不到推送

作者: 木鱼_cc | 来源:发表于2017-02-14 21:22 被阅读8579次

    总结起来就是:证书->初始化方法->后台

    记录一下这次的问题啊,当时给我吓出一身冷汗啊,感觉如果上线的版本再收不到推送的话,老板得砍死我啊!!!

    首先阐述一下我的问题

    先来说一下我的项目:定位是餐厅服务员的辅助app,受众面比较少,公司的新项目,一边推广一边开发

    项目用的是极光推送,第一次用嘛,有点生疏。费了九牛二毛之力才把生产证书开发证书都弄好了,测试的时候也收到通知推送了,安心地上架了。

    然而问题才刚刚开始,办公室偶尔会有同事说收不到头部通知,但是包括我在内的大多数人都说收到通知,这些问题就被认为是特别事件,被当做个人手机原因而不了了解了(后来发现办公室里为什么能收到顶部通知呢?因为都是我给他们装的测试)

    陆续有客户反映了,问题也就暴露了,原来所有从App Store下载的都收不到顶部推送,但是能收到自定义推送,我也懵逼了,脑子里不停地遍历可能的原因,证书?后台?

    先从证书的原因开始找

    总结一下证书怎么找原因:

    PS:在极光的初始文档中,我们都有设置过别名,忘了就得花点时间翻翻代码(或者发所有人,记住别影响到客户),记得,开发环境生产环境都发一下看看

    经过排查,我两个环境都能被准确地识别啊,证书没问题,那哪里还有问题呢?博主也上网找了不少的文章去了解

    极光的初始设置方法

    在AppDelegate.m的initJPush方法中
    
    [JPUSHService setupWithOption:launchOptions appKey:JPushAppKey channel:@"App Store" apsForProduction:versionFlag];
    /*
         apsForProduction
         1.3.1版本新增,用于标识当前应用所使用的APNs证书环境。
         0 (默认值)表示采用的是开发证书,1 表示采用生产证书发布应用。
         注:此字段的值要与Build Settings的Code Signing配置的证书环境一致。
         */
         
    

    这里其实项目之初就弄好了,但是后来反而忘了更改这个0,建议大家建个字段,在测试和上线两个版本来回切换

    好了,满心期待地发布新版本,再上架,过两天再看看

    修正初始化方法后,革命仍不能成功

    这就是我开始奔溃的源头,一波三折,损心劳力,又看了一遍网上的文章

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

    这位博主(侵权删)和我遇到一模一样的问题,不过他家的后台是PHP写的,而我家是Java写的后台。通篇看下来,我的矛头直指后台

    问题出来了,原来后台一直给我发的顶部通知都发去了开发环境ios-dev中去了,而我们的目标是ios-product,这里,后台的apns_production字段必须为true

    找后台理论后,后台给我发了一段代码

    后台也和我一样是一个新人,他的意思是他是根据官方文档做得platform.all()这个方法就是默认给全部机器发送通知

    后来经过产品经理的一番调试,发现了,原来platform.all()这个方法,默认发送全部机器,但是,默认的iOS端是生产环境,这就是全部问题的由来.....

    记得全局搜索,全部都要改

    PS:这个apns_production置1和0手机端和后台必须保持一致

    好了,终于松了好几口气

    相关文章

      网友评论

      • 长若执念:我遇到了一模一样的问题,开始是自己排查客户端的问题,你的方法我都试过,最后找到后台沟通,有开发和正式环境,反正费了一番劲才弄好的
      • Arthur澪:你好,开发环境下。极光后台发的通知能够收到,但是我们的后台发的收不到,这是什么原因
      • Jenny_e668:你好,请问这个后台设置在哪设置啊?
        木鱼_cc:@Jenny_e668 很清楚了,按照我上面写的步骤来,如果你前端配置没错的话,一般就是后台的问题
        Jenny_e668:(iOS)我现在的问题就是不管apsForProduction设置为yes还是no,都只能在开发环境收到,生产环境收不到。所以想问你这个后台和手机端时怎么统一的?
        木鱼_cc:@Jenny_e668 不同语言区别只是语言不同注意看api文档,极光的文档应该有写的,设置推送的alias方法里

      本文标题:iOS端极光推送开发环境收到,生产环境收不到推送

      本文链接:https://www.haomeiwen.com/subject/nmdfwttx.html