美文网首页
傻瓜式集成iOS极光推送基础篇

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

作者: Roct | 来源:发表于2016-08-04 11:35 被阅读602次
    伟大的雷锋同志

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

    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. 测试推送效果
      点击极光推送选择你添加的项目,点击推送后进入如下页面


      测试推送

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

    相关文章

      网友评论

          本文标题:傻瓜式集成iOS极光推送基础篇

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