具体见:http://blog.csdn.net/kmyhy/article/details/6688370
以上为网络资料
个人简单总结下:
1.创建SSL证书
1.1 创建一个证书请求,然后保存这个证书请求(后面用于生成SSL证书)
1.2 创建一个App ID,登陆网站,配置,下载SSL证书(注意配置Enable for Apple Push Notification service)
1.3 双击,把证书安装到钥匙串里面
2.创建 Provisioning Profile
2.1 回到网站,provisioning 选项里面,新建new profile,这里的name,App ID跟上面对应,然后下载provisioningprofile,下载下来的扩展名是 .mobileprovision
2.2 连接上设备,把.mobileprovision文件拖到XCODE里面,会自动安装
3.配置工程文件
3.1 打开一个工程,Info.plis文件,Bundle Identifier修改为前面App ID
3.2 点击project文件,Build Settings--->CodeSigning Identity,全部选中创建的App ID,
4.添加代码
4.1 打开一个工程,向xxxxAppDelegate.m添加如下程序,然后在机器上运行
ApplePushNotificationAppDelegate.m文件中,输入以下代码(加粗部分):
//用于向ios系统注册,启用push
NSLog(@"Registeringfor pushnotifications...");
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound)];
//iPhone 从APNs服务器获取deviceToken后激活该方法
- (void)application:(UIApplication*)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSString *str = [NSString stringWithFormat:@"DeviceToken=%@",deviceToken];
NSLog(str);
}
//注册push功能失败 后 返回错误信息,执行相应的处理
- (void)application:(UIApplication*)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
NSString *str =[NSStringstringWithFormat: @"Error: %@", err];
NSLog(str);
}
- (void)application:(UIApplication*)applicationdidReceiveRemoteNotification:(NSDictionary *)userInfo
{
for (id key in userInfo)
{
NSLog(@"key: %@, value:%@",key, [userInfo objectForKey:key]);
}
}
4.2.获取到deviceToke
4.3 从网络下载 PushMeBaby程序,修改该程序,添加SSL证书,即可向真机发送推送消息
5.该过程中,供创建了SSL证书和.mobileprovision两个证书,SSL证书供Provider( 程序服务器)使用,.mobileprovision 证书 是 iPhoneprovisioning 以开启了PUSH功能App ID (如前述PushDemo)生成相应的provisioning下载产生。
6.按步骤走了一遍,从mac上可以向touch发送PUSH消息了