iOS远程推送之获取deviceToken

远程推送的原理就是:
1手机或者说苹果自动将用户的UDID 和应用的 AppID发送到APNs,APNs返回一个deviceToken给iOS设备,同一个手机不同的应用会生成不同的deviceToken,同一个手机同一个应用只生成一个deviceToken;
2手机端将deviceToken发送到自己公司的后台服务器,用以保存;
3当后台需要推送消息给用户时,服务器将需要推送的消息和deviceToken传输给APNs;
**4**APNs将消息推送给指定的deviceToken对应的手机;
5用户接收消息;

步骤:
生成AppleID,生成推送用的生产证书(测试环境使用的)和发布证书(正式环境使用的),生成一个测试证书
1生成AppleID:
打开开发者中心,登陆账号;iOS远程推送之获取deviceToken_第1张图片
iOS远程推送之获取deviceToken_第2张图片
iOS远程推送之获取deviceToken_第3张图片
点击下一步呀,继续呀,submit呀,done呀等完成这一步的操作;
2上一步创建的AppleID的证书是没有push功能的,
iOS远程推送之获取deviceToken_第4张图片
这一步就是给AppleID加上此功能
上一张图片有一个edit按钮,选中,iOS远程推送之获取deviceToken_第5张图片
iOS远程推送之获取deviceToken_第6张图片
到这一步先放一放;
打开钥匙串,钥匙串访问——>证书助理——>从证书颁发机构请求证书,然后打开如下界面,
iOS远程推送之获取deviceToken_第7张图片
回到刚才我们停滞的页面iOS远程推送之获取deviceToken_第8张图片
这里有两个create certificate…,先选第一个,下一步,chooseFiles 然互选择刚才从钥匙串生成的证书,然后点生成generate,点下载;这样一个推送的开发证书就生成了;同样的道理生成push的发布证书;右边的发布证书还是黄色的

iOS远程推送之获取deviceToken_第9张图片
iOS远程推送之获取deviceToken_第10张图片
iOS远程推送之获取deviceToken_第11张图片
iOS远程推送之获取deviceToken_第12张图片
然后将下载下来的证书安装到钥匙串中,双击就好了,会在钥匙串的我的证书界面看到添加进去的证书,然后进去xcode工程;
将xcode中工程的info信息的bundleID改为生成appID时的bundleID
在工程中的的Appdelegate.m中的
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions{
- //注册远程通知服务
[application registerUserNotificationSettings:[UIUserNotificationSettings
settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)
categories:nil]];
[[UIApplication sharedApplication]registerForRemoteNotifications];
}

  • (void)application:(UIApplication )application didRegisterForRemoteNotificationsWithDeviceToken:(NSData )deviceToken{
    //获取deviceToken
    NSLog(@”注册远程推送成功——————%@”,deviceToken);
    }
    真机测试:
    iOS远程推送之获取deviceToken_第13张图片

前面提到的如果没有调试证书就新生成一个,一下为新生成方法iOS远程推送之获取deviceToken_第14张图片
iOS远程推送之获取deviceToken_第15张图片

你可能感兴趣的:(iOS远程推送之获取deviceToken)