第一天上班,下午遇到个关于推送的问题,之前没接触过,感觉有点困难。
总结下大致流程
1.用系统自带钥匙串生成一个CertificateSigningRequest.certSigningRequest文件。(后面用来生成aps_development.cer)
2.苹果开发者中心创建APP IDs Bundle Identifier命名 com.*****.** 中间可以为公司名,后面app名称
这里面要用到上面的CertificateSigningRequest.certSigningRequest文件,上传后会生成一个aps_development.cer 是在Development Push SSL Certificate
双击aps_development.cer后在钥匙串中可看到下面包含了刚生成的一个钥匙
3.准备profile证书,因为推送消息只能在真机上测试,所以要建一个profile证书。
profiles Name ,这里写什么后面Xcode中的Plist文件就要写成什么,App IDs,Device 要选正确。
这里会生成一个pushtestdescDevprofile.mobileprovision,双击,在Xcode导航栏Windows -- oganizor 打开,可看到新添加了一个证书
4.将钥匙串中的一个Apple Development IOS Push Services:***导出 会得到一个**.p12的文件,后台人员要用的一个文件。
至此生成了4个文件
4、PushTest.p12
5.在Xcode的工程里面修改内容,在Support 修改Plist的内容改成和证书相同com.***.** 在building setting里面搜索prov 讲code sign 的none改成对应的名称
6,在appDelegate中添加如下代码
NSString *token = [NSString stringWithFormat:@"%@", deviceToken];
NSLog(@"My token is:%@", token);
}
NSString *error_str = [NSString stringWithFormat: @"%@", error];
NSLog(@"Failed to get token, error:%@", error_str);
}
{
if (badge>0) {
[UIApplication sharedApplication].applicationIconBadgeNumber = badge;
}
}
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeSound|UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge];
3、在项目AppDelegate.m中加入消息接收处理代理方法。
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSLog(@"Receive remote notification : %@",userInfo);
}
处理过程中遇到的问题
在Xcode的oganizor里面添加的证书显示感叹号,初步解决是需要重新下载