傻瓜式集成iOS极光推送基础篇

伟大的雷锋同志

极光推送和百度比起来较为简单,但是很有新手对于集成极光推送时配置证书比较晕头转向,也没有太小白的教程,所以写了这个.本教程仅集成较为基础的功能.

  1. 生成CSR文件
    打开钥匙串,点击钥匙串访问.选择证书助理,然后选择从证书颁发机构获取证书.


    生成CSR文件

    选择从证书颁发机构获取证书以后


    生成CSR文件

    用户电子邮箱理论上是可以随便填的,但是最好写你的开发者账号,CA电子邮箱不用填,选择存储到磁盘,点击继续,就可以把CSR文件保存到磁盘里面了.
    CSR文件

    通过以上步骤,CSR文件生成成功.
  2. 登陆苹果开发者网站,登陆开发者账号,点击Account,进入下面的页面.

    苹果开发者网站

    点击红色区域,进入下一页面.
    苹果开发者网站

    点击左侧的App IDs创建app Id.
    添加新的App IDs

    点击+号以后,进入
    增加App IDS

    其中Bundle ID要填你要给集成极光推送的项目的Bundle ID.
    页面往下拉,选中Push Notifications
    选中推送按钮

    点击continue.
    点击Done

    App ID的状态

    可以看到该APP ID的开发环境下的push 和生产环境下的push 都需要配置证书.

  3. 配置证书
    点击左侧Ceterficates下面的All,进入如下页面:


    配置证书

    上面是测试证书,下面是生产证书.两个都需要配置.
    先给开发环境配置证书,选中上面Apple Push Notification services SSL,进入以下页面


    配置证书

    选择刚刚创建的App ID,点击continue
    选择CSR文件

    选择第一步保存到磁盘里的CSR文件.

    最后生成开发环境下的证书.


    开发环境下的证书

    点击download,将证书下载到电脑上,双击运行.同样的步骤给生产环境配置证书,将证书下载到电脑上双击运行.
  4. 绑定真机
    点击左侧Devices下的All,看到如下页面


    绑定真机

    点击加号添加新的手机,如果已有可以不用添加.下面说一下怎么添加新的手机.


    点击+号以后

    name是手机的名字,可以随便填,UDID是每个手机特有的标识符.怎样获取UDID.将手机连接到电脑上,打开xcode真机跑一下程序,然后点击xcode的右上方的window,选择Devices.
    获取UID

    可以看到xcode的设备.选中该手机,右侧可以看到UDID
    identifier就是UDID

    然后回到页面上填写上Name和UDID就可以绑定对应的真机.

  5. 生成Xcode配置文件
    点击左侧Provisioning Profiles下的All


    生成配置文件

    点击右上角的+号,生成配置文件.


    生成xcode配置文件

    选择第一个iOS App Development,点击continue
    如果出现这个,就是提示你没有创建真机测试证书,需要创建真机测试证书
    没有真机测试证书

    点击create XXXX


    创建真机测试证书

    也是选中第一个iOS App Development,然后点击continue,一步一步往下走,类似于创建开发环境下的证书.上传CSR文件最后,然后点击下载,双击安装.
    安装成功以后继续生成xcode的配置文件,步骤同上,然后会让你选择
    选择真机调试证书

    点击continue,会让你选择设备
    选择设备

    最后查看你的App ID,你会发现appid的push notifications都变成enabled,这就说明了你的证书配置成功.
    查看appid的push notifications
  6. 将推送证书导出并生成.p12文件
    打开钥匙串,左侧点击登录,然后左下方有我的证书一栏,点击我的证书,可以看到两个文件,如图所示,Apple Development XXXX就是在测试环境下的推送证书,Apple Push XXXX就是生产环境下的证书.


    钥匙串界面

    分别将这两个文件,点击右键选导出


    导出证书

    导出

    导出成功
  7. 上传到极光推送
    登陆极光推送官方网站,登陆你的账号.
    创建项目

    创建项目

    上传两个.p12文件
    上传.p12文件

    创建成功以后,看APNs证书文件是否能够验证

  8. 配置项目
    下载极光推送的iOS项目的SDK,下载以后解压,将SDK包解压,在XCode中选择“Add files to 'Your project name'...”,将解压后的lib子文件夹(包含JPUSHService.h、jpush-ios-x.x.x.a)添加到你的工程目录中.
    添加必要的框架:

CFNetwork.framework
CoreFoundation.framework
CoreTelephony.framework
SystemConfiguration.framework
CoreGraphics.framework
Foundation.framework
UIKit.framework
Security.framework
Xcode7需要的是libz.tbd;Xcode7以下版本是libz.dylib
Adsupport.framework (获取IDFA需要;如果不使用IDFA,请不要添加)

配置http:


配置http

然后在你项目的Appdelegate文件里添加头文件

#import "JPUSHService.h"
#import <AdSupport/AdSupport.h>

然后加入以下代码

-(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  self.window.backgroundColor = [UIColor whiteColor];
  [self.window makeKeyAndVisible];

  NSString *advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
  //Required
  if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
    //可以添加自定义categories
    [JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
                                                      UIUserNotificationTypeSound |
                                                      UIUserNotificationTypeAlert)
                                          categories:nil];
  } else {
    //categories 必须为nil
    [JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                                      UIRemoteNotificationTypeSound |
                                                      UIRemoteNotificationTypeAlert)
                                          categories:nil];
  }
  //Required
  // 如需继续使用pushConfig.plist文件声明appKey等配置内容,请依旧使用[JPUSHService setupWithOption:launchOptions]方式初始化。
//CHANNEL指明应用程序包的下载渠道,为方便分渠道统计,具体值由你自行定义,如:App Store。
//APP_KEY填写[管理Portal上创建应用](https://www.jpush.cn/apps/new)后自动生成的AppKey值。请确保应用内配置的 AppKey 与第1步在 Portal 上创建应用后生成的 AppKey 一致。
//APS_FOR_PRODUCTION1.3.1版本新增,用于标识当前应用所使用的APNs证书环境。
//0 (默认值)表示采用的是开发证书,1 表示采用生产证书发布应用。
//注:此字段的值要与Build Settings的Code Signing配置的证书环境一致。
  [JPUSHService setupWithOption:launchOptions appKey:appKey
                        channel:channel
               apsForProduction:isProduction
          advertisingIdentifier:advertisingId];
  return YES;
}

再添加一段注册代码:

-(void)application:(UIApplication *)application 
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  /// Required - 注册 DeviceToken
  [JPUSHService registerDeviceToken:deviceToken];
}
  1. 测试推送效果
    点击极光推送选择你添加的项目,点击推送后进入如下页面


    测试推送

    将程序重新再手机上跑一次,让程序进入后台,然后在网页上输入想要推送的内容,选择平台,点击推送,手机上就可以收到推送的消息啦!

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

推荐阅读更多精彩内容