IOS真机推送
2015-09-08 23:02
453 查看
一、准备工作
1 拥有一台iOS为操作系统的苹果设备,iPhone,iPad,iPod都可以。
2 拥有苹果开发者账号,需要真机调试,最好是是付费开发者,后面的步骤将会更顺利。
3 需要一台PC做推送服务器,如果是台拥有MAC OS系统,将会更方便。
二、了解大致步骤
我们需要从测试的消息推动服务器,发送一条消息到Apple Push Notification Services,然后APNS转发到iOS设备,完成消息推送过程。
由于我们的测试服务器到APNS,传递的是加密后的消息,所以需要申请证书。
三、申请证书
1 下面是需要的证书文件
![](http://img.my.csdn.net/uploads/201211/30/1354259133_7139.jpg)
2证书申请的流程如下 ,部分内容转载自网络
2.1 创建SSL证书
首先需要需要创建一个App ID以及关联的SSL证书。有了证书,解析服务器才能找到你的App ID,继而将通知推送到你的应用。
创建一个证书请求文件:
a. 在mac上运行钥匙串访问(keychain)
b. 选择钥匙串访问>证书助理>从证书颁发机构中请求一个证书
c. 输入你的名字和邮件地址,CA邮件地址默认就可以,不要试图去进行任何改动。
d. 选择“保存到硬盘”,这样.certSigningRequest的文件生成了。
2.2然后创建APP ID:
a. 登陆网站Apple Developer Member Center并进入iOS Provisioning Portal。
b. 从左边栏里点击App IDs。
c. 选择New App ID,然后创建一个新的App ID。一定要确保Bundle Identifier一栏中没有星号。
d. 在你的App ID下面找到Configure,选中。
e. 将“Enable for Apple Push Notification service”勾选上,然后点击Development Push SSL Certificate下面的Configure,然后会出现Apple Push Notification service SSL Certificate Assistant设置向导。
f. 点击Continue继续,然后点击Choose File,选中刚创建见的.certSigningRequest文件。
g. 点击Generate开始生成,然后点击Download下载生成的SSL证书。
h. 通过keychain程序来安装下载好的SSL证书。
i. 接着在“我的证书”选项先面,找到你刚才安装名称形如“Apple Development IOS Push Services: xxx”的证书。
j. 双击证书,选择“导出”,导出后的文件后缀名为.p12。这个时候千万注意!出现密码提示的时候一定不要添任何东西
至此SSL证书创建完成。
2.3.创建Provisioning Profile
Provisioning文件是用来授权iOS设备的
a. 在 ios provisioning portal中选择provisioning
b. 点击New profile
c. 按照要求填写profile name,certificate,APP ID(刚才创建的app id),devices
d. 下载生成的provisioning profile
e. 双击安装。
2.4成功后可以通过Organizer,看到如下图
![](http://img.my.csdn.net/uploads/201211/30/1354274994_6315.jpg)
四、获取设备的deviceToken,用xcode 创建一个新的工程 ,直接下载
1 将main identifier 设置为之前的App ID(必须修改)
2 添加如下代码
[cpp] view
plaincopyprint?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
内添加
[cpp] view
plaincopyprint?
NSLog(@"Registering for push notifications...");
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound)];
添加新函数
[cpp] view
plaincopyprint?
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSString *str = [NSString
stringWithFormat:@"Device Token=%@",deviceToken];
NSLog(@"%@",str);
}
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
NSString *str = [NSString stringWithFormat: @"Error: %@", err];
NSLog(@"%@",str);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
for (id key in userInfo) {
NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
}
}
五、 用“服务器”发送推送消息,直接下载代码
1 需要将之前的证书.cer的文件,放到resource下
![](http://img.my.csdn.net/uploads/201211/30/1354275011_8500.jpg)
2 设置好token,发送消息,
六、在iOS设备上看到消息
1 动手将application:didReceiveRemoteNotification:收到的通知,用UIAlertView显示到界面上。
七、参看资料地址
证书文件夹中p12文件,是使用Java搭建测试服务器时,所需要的文件,在MAC上则不需要
Programming Apple Push Notification Services,英文好的,可以直接看这篇
http://www.cnblogs.com/zhw511006/archive/2010/09/01/1815089.html
1 拥有一台iOS为操作系统的苹果设备,iPhone,iPad,iPod都可以。
2 拥有苹果开发者账号,需要真机调试,最好是是付费开发者,后面的步骤将会更顺利。
3 需要一台PC做推送服务器,如果是台拥有MAC OS系统,将会更方便。
二、了解大致步骤
我们需要从测试的消息推动服务器,发送一条消息到Apple Push Notification Services,然后APNS转发到iOS设备,完成消息推送过程。
由于我们的测试服务器到APNS,传递的是加密后的消息,所以需要申请证书。
三、申请证书
1 下面是需要的证书文件
![](http://img.my.csdn.net/uploads/201211/30/1354259133_7139.jpg)
2证书申请的流程如下 ,部分内容转载自网络
2.1 创建SSL证书
首先需要需要创建一个App ID以及关联的SSL证书。有了证书,解析服务器才能找到你的App ID,继而将通知推送到你的应用。
创建一个证书请求文件:
a. 在mac上运行钥匙串访问(keychain)
b. 选择钥匙串访问>证书助理>从证书颁发机构中请求一个证书
c. 输入你的名字和邮件地址,CA邮件地址默认就可以,不要试图去进行任何改动。
d. 选择“保存到硬盘”,这样.certSigningRequest的文件生成了。
2.2然后创建APP ID:
a. 登陆网站Apple Developer Member Center并进入iOS Provisioning Portal。
b. 从左边栏里点击App IDs。
c. 选择New App ID,然后创建一个新的App ID。一定要确保Bundle Identifier一栏中没有星号。
d. 在你的App ID下面找到Configure,选中。
e. 将“Enable for Apple Push Notification service”勾选上,然后点击Development Push SSL Certificate下面的Configure,然后会出现Apple Push Notification service SSL Certificate Assistant设置向导。
f. 点击Continue继续,然后点击Choose File,选中刚创建见的.certSigningRequest文件。
g. 点击Generate开始生成,然后点击Download下载生成的SSL证书。
h. 通过keychain程序来安装下载好的SSL证书。
i. 接着在“我的证书”选项先面,找到你刚才安装名称形如“Apple Development IOS Push Services: xxx”的证书。
j. 双击证书,选择“导出”,导出后的文件后缀名为.p12。这个时候千万注意!出现密码提示的时候一定不要添任何东西
至此SSL证书创建完成。
2.3.创建Provisioning Profile
Provisioning文件是用来授权iOS设备的
a. 在 ios provisioning portal中选择provisioning
b. 点击New profile
c. 按照要求填写profile name,certificate,APP ID(刚才创建的app id),devices
d. 下载生成的provisioning profile
e. 双击安装。
2.4成功后可以通过Organizer,看到如下图
![](http://img.my.csdn.net/uploads/201211/30/1354274994_6315.jpg)
四、获取设备的deviceToken,用xcode 创建一个新的工程 ,直接下载
1 将main identifier 设置为之前的App ID(必须修改)
2 添加如下代码
[cpp] view
plaincopyprint?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
内添加
[cpp] view
plaincopyprint?
NSLog(@"Registering for push notifications...");
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound)];
添加新函数
[cpp] view
plaincopyprint?
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSString *str = [NSString
stringWithFormat:@"Device Token=%@",deviceToken];
NSLog(@"%@",str);
}
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
NSString *str = [NSString stringWithFormat: @"Error: %@", err];
NSLog(@"%@",str);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
for (id key in userInfo) {
NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
}
}
五、 用“服务器”发送推送消息,直接下载代码
1 需要将之前的证书.cer的文件,放到resource下
![](http://img.my.csdn.net/uploads/201211/30/1354275011_8500.jpg)
2 设置好token,发送消息,
六、在iOS设备上看到消息
1 动手将application:didReceiveRemoteNotification:收到的通知,用UIAlertView显示到界面上。
七、参看资料地址
证书文件夹中p12文件,是使用Java搭建测试服务器时,所需要的文件,在MAC上则不需要
Programming Apple Push Notification Services,英文好的,可以直接看这篇
http://www.cnblogs.com/zhw511006/archive/2010/09/01/1815089.html
相关文章推荐
- ios 内存管理个人一些见解
- IOS开发之深拷贝与浅拷贝(mutableCopy与Copy)详解
- iOS开发:通讯录之个人中心页面的实现
- iOS 用Runtime解决服务器返回NSNull问题
- iOS制作.a库
- iOS开发个人独立博客收集
- iOS 之美:iOS Delegate 使用五步曲
- iOS自动布局框架Masonry
- iOS中的各种理论知识
- iOS开发:通讯录之通讯录列表实现
- 《ios_OC》字符串NSString,数组NSArray,NSNumber数值与字符串的转换
- iOS开发常用的第三方类库
- iOS8 推送注册方式改变的问题
- 一些 iOS 常用的第三方库
- iOS开发:设置纯色导航栏,去掉导航栏分割线
- iOS常用第三方类库 Xcode插件
- ios中的单例类
- iOS第三方键盘高度获取不准确问题
- 【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图
- iOS9新特性 - Split Screen Multitasking