博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
极光推送
阅读量:6998 次
发布时间:2019-06-27

本文共 3809 字,大约阅读时间需要 12 分钟。

一.首先进入极光官网 1.注册一个号 2.建一个你自己对应的项目,然后获取Appkey 填写你的Boundle id (这个就是你xcode里面plist那里)

3然后我们要上传这两个p12文件才能实现推送这个功能(下面第二步我们就去苹果开发者中心去生成)

二 生成开发证书和生产证书() 1.(https://idmsa.apple.com/IDMSWebAuth/login?appIdKey=891bd3417a7776362562d2197f89480a8547b108fd934911bcbea0110d07f757&path=%2Faccount%2F&rv=1)这是跳到开发者中心的链接,输入你公司的账号密码。登录 然后点击App IDs进入App ID列表。

然后选择这个

添加你的id

然后就选择和填这几个选项 1.1*(这里的名字你可以选择你自己喜欢的填写) ![53[HFA(PT({`8``[]

最后在 continue 2.现在进入正题开始生成开发和生产证书了

这里的开发证书和生产证书两个选项只能选择一个(当你选择生成的是开发证书的时候就选择开发证书,反之你就选择生产证书)

这里点击钥匙那里然后就可以这里了

继续返回Apple developer 网站点击 Continue ,上传刚刚生成的 .certSigningRequest 文件生成 APNs Push Certificate。 下载并双击打开证书,证书打开时会启动“钥匙串访问”工具。 在“钥匙串访问”中你的证书会显示在“我的证书”中,注意选择“My Certificates” 和"login"

注意要选“login”和“My Certificates” 导出证书时要选中证书文件,不要展开private key。(这里可能第一次按右键不会出现导出证书这个选项,多点几次就会出来)

将文件保存为Personal Information Exchange (.p12)格式。
就搞定了,这里的步骤你要做两次,一次是生成开发证书p12,一次是生成生产证书p12。然后你再回到极光推送那里把这两个对应上传上去密码也输入上去就搞定了。

最后极光和苹果官方这两块搞定了,最后导入到xcode那里就搞定了。 导入SDK

选择1:Cocoapods导入(如何没有安装cocoapods的,看看这篇文章http://www.jianshu.com/p/a1709c1d292d) 通过Cocoapods下载地址: pod 'JPush' 如何你是swift 把下面这个粘贴到桥文件上 #import "JPUSHService.h" oc自己声明弄到appdelegate上

然后开网 info.plist 中添加如下配置以支持 http 传输。

NSAppTransportSecurity NSAllowsArbitraryLoads 把这里几个选项勾选了

最后来粘贴代码

import UIKit

@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow? func application(_ application: UIApplication,                 didFinishLaunchingWithOptions                    launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {       //通知类型(这里将声音、消息、提醒角标都给加上)    let userSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound],                                                  categories: nil)    if ((UIDevice.current.systemVersion as NSString).floatValue >= 8.0) {        //可以添加自定义categories        JPUSHService.register(forRemoteNotificationTypes: userSettings.types.rawValue,                                                        categories: nil)    }    else {        //categories 必须为nil        JPUSHService.register(forRemoteNotificationTypes: userSettings.types.rawValue,                                                        categories: nil)    }         // 启动JPushSDK    JPUSHService.setup(withOption: nil, appKey: "7b528331738ec719195798fd",                                 channel: "Publish Channel", apsForProduction:true)    return true} func application(_ application: UIApplication,                 didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {    //注册 DeviceToken    JPUSHService.registerDeviceToken(deviceToken)} func application(_ application: UIApplication,                 didReceiveRemoteNotification userInfo: [AnyHashable : Any],                 fetchCompletionHandler                    completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {    //增加IOS 7的支持    JPUSHService.handleRemoteNotification(userInfo)    completionHandler(UIBackgroundFetchResult.newData)} func application(_ application: UIApplication,                 didFailToRegisterForRemoteNotificationsWithError error: Error) {    //可选    NSLog("did Fail To Register For Remote Notifications With Error: \(error)")} //..........复制代码

} JPUSHService.setupWithOption()方法的参数说明: channel 指明应用程序包的下载渠道,为方便分渠道统计,具体值由你自行定义,如:App Store。 appKey 填写管理Portal上创建应用后自动生成的AppKey值。请确保应用内配置的 AppKey 与第1步在 Portal 上创建应用后生成的 AppKey 一致。 apsForProduction 1.3.1版本新增,用于标识当前应用所使用的APNs证书环境。 0 (默认值)表示采用的是开发证书,1 表示采用生产证书发布应用。 注:此字段的值要与Build Settings的Code Signing配置的证书环境一致。

最后我们来玩一波 (注意只能真机测试,模拟器不行)

![@TM3I_~KV(7GKOG3 如果后台打印了这些证书成功了

3,将程序退出。接着我们到极光推送网站上的控制台模块来进行消息发送的测试。 在“推送”->“发送通知”页面中,输入需要推送的消息及相关配置(这里我们选择广播,即给所有人都发生推送)。点击“立即发送”。

搞定解决。

总结: 1.apple.develop中的所有证书可以删除重新制作,对已上线的应用不会有影响 2.似乎生产环境下所有的设置好不能直接在真机上测试,需要打包ipa文件提交到iTunes上同步安装到手机上测试。这相当于模拟真实用户的操作,很实用。

转载于:https://juejin.im/post/5a3238ee6fb9a04509098814

你可能感兴趣的文章
抛弃NVelocity,来玩玩Razor
查看>>
在JavaScript面向对象编程中使用继承(1)
查看>>
高铁与机场成交通信息化建设的双驾马车
查看>>
chmod命令
查看>>
货币的起源和职能是什么?绘制货币资金管理思维导图简单的方法介绍
查看>>
springboot+kafka+elk+docker+docker-compose+centos搭建日志收集系统
查看>>
时讯无线如何满足商业区的无线覆盖?
查看>>
2014最新open***搭建实例
查看>>
WinAPI: midiOutCachePatches - 预装音色
查看>>
finally执行顺序
查看>>
TWebBrowser 与 MSHTML(2): 获取 window 对象的时机
查看>>
【博客话题】IT人,你肿么了? ——除了IT,你还能选择什么?
查看>>
docker初步入门
查看>>
Outlook提示:无法安装或装载加载项vpmsece.dll
查看>>
使用Apache开源POI和jXLS两种API生成报表
查看>>
oracle控制台OEM无法启动
查看>>
haproxy负载均衡
查看>>
clink 让cmd像ubuntu gnome-terminal一样
查看>>
初识Java模板引擎Beetl之简单示例
查看>>
Oracle UNDO表空间的管理
查看>>