极光推送和百度比起来较为简单,但是很有新手对于集成极光推送时配置证书比较晕头转向,也没有太小白的教程,所以写了这个.本教程仅集成较为基础的功能.
-
生成CSR文件
打开钥匙串,点击钥匙串访问.选择证书助理,然后选择从证书颁发机构获取证书.
选择从证书颁发机构获取证书以后
用户电子邮箱理论上是可以随便填的,但是最好写你的开发者账号,CA电子邮箱不用填,选择存储到磁盘,点击继续,就可以把CSR文件保存到磁盘里面了.
通过以上步骤,CSR文件生成成功. -
登陆苹果开发者网站,登陆开发者账号,点击Account,进入下面的页面.
点击红色区域,进入下一页面.
点击左侧的App IDs创建app Id.
点击+号以后,进入
其中Bundle ID要填你要给集成极光推送的项目的Bundle ID.
页面往下拉,选中Push Notifications
点击continue.
可以看到该APP ID的开发环境下的push 和生产环境下的push 都需要配置证书. -
配置证书
点击左侧Ceterficates下面的All,进入如下页面:
上面是测试证书,下面是生产证书.两个都需要配置.
先给开发环境配置证书,选中上面Apple Push Notification services SSL,进入以下页面
选择刚刚创建的App ID,点击continue
选择第一步保存到磁盘里的CSR文件.
最后生成开发环境下的证书.
点击download,将证书下载到电脑上,双击运行.同样的步骤给生产环境配置证书,将证书下载到电脑上双击运行. -
绑定真机
点击左侧Devices下的All,看到如下页面
点击加号添加新的手机,如果已有可以不用添加.下面说一下怎么添加新的手机.
name是手机的名字,可以随便填,UDID是每个手机特有的标识符.怎样获取UDID.将手机连接到电脑上,打开xcode真机跑一下程序,然后点击xcode的右上方的window,选择Devices.
可以看到xcode的设备.选中该手机,右侧可以看到UDID
然后回到页面上填写上Name和UDID就可以绑定对应的真机.
-
生成Xcode配置文件
点击左侧Provisioning Profiles下的All
点击右上角的+号,生成配置文件.
选择第一个iOS App Development,点击continue
如果出现这个,就是提示你没有创建真机测试证书,需要创建真机测试证书
点击create XXXX
也是选中第一个iOS App Development,然后点击continue,一步一步往下走,类似于创建开发环境下的证书.上传CSR文件最后,然后点击下载,双击安装.
安装成功以后继续生成xcode的配置文件,步骤同上,然后会让你选择
点击continue,会让你选择设备
最后查看你的App ID,你会发现appid的push notifications都变成enabled,这就说明了你的证书配置成功.
-
将推送证书导出并生成.p12文件
打开钥匙串,左侧点击登录,然后左下方有我的证书一栏,点击我的证书,可以看到两个文件,如图所示,Apple Development XXXX就是在测试环境下的推送证书,Apple Push XXXX就是生产环境下的证书.
分别将这两个文件,点击右键选导出
-
上传到极光推送
登陆极光推送官方网站,登陆你的账号.
创建项目
上传两个.p12文件
配置项目
下载极光推送的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:
然后在你项目的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];
}
-
测试推送效果
点击极光推送选择你添加的项目,点击推送后进入如下页面
将程序重新再手机上跑一次,让程序进入后台,然后在网页上输入想要推送的内容,选择平台,点击推送,手机上就可以收到推送的消息啦!