个推推送iOS实战教程

2024-10-12 16:34:00

消息推送是各类APP为了拉新保活而采取的必要手段之一。考虑到硬件、人员及时间等各类成本、稳定性及并发量等问题,很多APP选择了第三方消息推送服务商。本文为大家介绍iOS APNs实战分享经验,希望对你有帮助。

工具/原料

苹果开发许可证书,分为:开发证书(iOS App Development)、生产证书(App Store and Ad Hoc)等,后面我使用的是开发证书进行测试。

苹果开发者网站上注册“AppIDs”,我使用的是“com.crazywolf.yewan”,勾选“Push Notifications”。

真机(加油,iPhone在等着你),需要添加到开发许可设备中。

Provisioning Profiles文件,分:开发时使用(iOS App Development)、生产时使用(App Store、Ad Hoc)等,我在后面使用的是“Development”。

苹果APNs推送证书,分:开发环境证书(Development)、生产环境证书(Production)等,同样,也是使用“Deve造婷用痃lopment”,注意使用个推平台APNs推送需上传该推送证书,这里我将导出的开发环境证书提交个推平台,关于证书生产和导出可以查看个推APNs配置技术文档(http://docs.getui.com/mobile/ios/apns/)。

Xcode8.2(不同版本在配置时有点不同),最低支持版本iOS 8.0。

一、注册APNs、获取DeviceToken

1、创建新项目或修改老项目,配置项目

个推推送iOS实战教程

3、使用个推的测试一下,测试DeviceToken是不是很简单,这样就可以获取到APNs推送消息了,有没有一种成功感,不过我开始获取DeviceToke荏鱿胫协n时,一直报(“Error Domain=NSCocoaErrorDomain Code=3000"未找到应用程序的“aps-environment”的授权字符串" UserInfo={NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}”)错误,网上说是证书没配置好,我重新配置了多次证书还是不行,后来问了个推的技术支持才知道Xcode8以上版本需要打开“TARGETS -Capabilities - Push Notifications”,个推的集成文档中也有写,自己太粗心了。

个推推送iOS实战教程

4、APNs环境问题注意保持推送APNs环境和你的App推送环境一致,因为经常有人会把证书环境搞错,导致推送收不到。1)直接使用Xcode直接运行到手机上,可以根据“TARGETS -> General-> Signing”中“Provisioning Profile”和“Signing Certificate”来确认。例如下图:

个推推送iOS实战教程

5、分享一下,我在给“Provisioning Profile”文件命名时有个习惯,以“Dev: ”(开发环境)、“In House: ”(企业包环境)、“XC Ad Hoc: ”(分发包环境)、“XC: ”(App Store),其中后面三个都是生产环境。

6、打包成ipa包安装到iPhone上,可能会忘记打包时的配置或者是其他人发你的包,是不是就不能知道APNs的环境了?很早之前我的方法是获取App的DeviceToken,使用开发和生产膣默髻僳环境APNs证书都推送一下,看看是哪个能推送到。后来发现了还有其他方法的,那就是解析ipa包:1)先解压ipa包,找到.app文件,显示包内容2)找到.mobileprovision文件,使用“Atom”打开.mobileprovision文件3)查找“aps-environment”,查看“aps-environment”这个key值对应value,“development”表示开发环境,“production”表示生产环境。如下图:

个推推送iOS实战教程

二、正式推送APNs,推送我们需要的信息

1、集成个推SDK怎么配置个推,可以去看“http://docs.getui.com/mobile/ios/xcode/”,配置成功后运行获取个推的“clientId”。

个推推送iOS实战教程个推推送iOS实战教程

3、APNs消息统计个推最新版本1.5.3 iOS SDK添加了“iOS 10 APNs展示统计”功能,该功能使用到了iOS10新特性需要添加NotificationService扩展模块,能准确统计到iOS10以上APNs展示信息,这个功能太爽了,APNs展示数据无法统计是多少开发者及运营的痛啊,相信有了这个功能能更好的跟踪APNs推送到达情况。具体集成步骤可以查看“http://docs.getui.com/mobile/ios/xcode/#6-ios-10-apns”。推送成功后可以在个推后台进行查看推送情况,如图:个推渠道下发还是区分蛮清晰的,个推成功下发为通过个推通道进行下发,APNs成功下发模块为离线后,走APNs通道下发,其中上面说的展示统计数据就是APNs模块中的展示数了。用户量有点小,别介意哈zZZ。

个推推送iOS实战教程

5、个推透传消息注意点下面三张图,第一张是个推网站下发透传消息时的界面,第二张是个推透传消蝌怦吩曰息回调方法。需要特别注意的是第一张图中最下诹鬃蛭镲面的“payload”和个推透传方法中“payloadData”,这二个中不是同一个概念。“payload”是个推自定义字段,添加在APNs的消息内容中,不是苹果原生字段,会通过APNs推送消息一并下发到iPhone客户端,结构如上图中代码块展示,这个字段一般是在APNs消息中添加附带消息,例如附带一个酒吧网站url,在收到通知消息是,发现是url,App直接打开这个网址。“payloadData”是该条透传消息内容,对应图上的“*消息内容”,这个字段不会通过APNs推送到iPhone客户端,是通过个推服务器直接下发给个推SDK的。当然你也可以将“*消息内容”和“payload”设置成一样的,这个就看你们的具体使用情况来定了。再说说第一张中“*拆分Android和iOS推送任务”,选择“是”的话,会拆分Android和iOS推送任务后,将生成两个taskid,分别对android和ios推送数据进行统计和展示,方便之后查询推送数据统计。最后一个比较实用的就是个推的“高级通知”,如第三张图,将APNs推送中的字段都列举出来了,不要开发者特意记APNs中有哪些字段,方便一些对APNs还不是很熟悉的初学者使用,当然不包括我了,哈哈哈哈。

个推推送iOS实战教程个推推送iOS实战教程

3、可以统计通知的展示率和点击率,运营同学可以在推送活动通知后,知道用户对什么样的活动比较感兴趣,更方便他们运营。

个推推送iOS实战教程

4、可以对指定人群推送,例如我们活动在上海,可以指定给上海用户大力推送。这个比较好,不用全部用户都发送,保证不相关的用户不被打扰。

5、个推的透传方法可以保证数据的到达,因为苹果的APNs推送不保证是否到达和到达时间,所以就可能会丢失,使用个推的透传方法可以保证能收到消息。

6、在发送透传消息时,“iOS高级通知”中“代码块”功能比较赞,我个人超喜欢,可以提前预览客户端收到APNs通知消息的数据格式。日记本

猜你喜欢