前言
iOS是一门封闭式语言,而且苹果公司不管在作风和行为方式上都可是相当彪悍。在苹果通过真机进行调试可不向安卓那么简单,过程相当复杂,新手肯定会被折腾的火冒三丈的。总而言之:苹果调试有这句宗旨:在哪台设备用哪台手机调试哪台应用。调试手机呢有必须创建证书,相比外行看来简直逆天了。好吧!接下来我大家一起来了解一下整个过程。
前期思想准备
要想调试推送功能,则必须先将手机调试先弄好了,而且必须是付费的开发者账号。记得在xcode6出来之前,开发者要想通过真机调试应用还必须至少付99美元一年的费用,哥们我刚好赶着中间,后期xcode6出来了账户,苹果才允许开发者无需付费进行应用调试,这真是一大福音啊。

第一步
先登录苹果开发者账户,登录后点击Certificates,即可来到以下页面

第二步
到了这步后别急着创建证书,要了解这个情况,苹果证书分为开发环境和生产环境,我们平时在开发过程中只有通过创建开发证书才能进行真机调试,别无他法。因此我们要分两步走,先搞好调试环境下的所有东西:
1、开发证书
2、开发描述文件
3、开发推送证书
开始操作,完成以上三个目标再来搞定生产环境下的所有东西
第三步
创建开发调试证书,这里非常不巧,我创建的调试证书数量达到限额了,你们在创建的时候直接点击图片红框中的即可。

在点击后,会要求创建CSR文件,其实就是要你电脑的标识信息。

创建CSR文件
1、找到电脑应用中的钥匙串访问。

2、从证书颁发机构获取证书

创建好开发者调试证书
1、将CSR文件放在电脑本地即可,两个电子邮件地址随便些。常用名称默认即可。

2、回到苹果开发者平台页面,选择刚刚创建的csr文件,然后创建证书就成功了,这里就不截图了,将创建好的证书下载下来后双击即可。
创建描述文件
描述文件是真机调试应用的必备文件。先来到描述文件创建页面

1、开始创建描述文件,

2、选择创建描述文件的应用,就是那个app要来测试

3、选择你刚刚创建的调试证书

4、选择需要参与调试的手机,手机如果不在,可以进行手动添加。如果不知道手机id,可以通过xcode工具查看:xcode->window->devices and simulators

5、创建完成后,直接下载再来然后双击即可。
打住,到此为止,真机可以进行应用调试了。当然了,现在xcode的都支持自动管理证书了,其实有时候不需要创建描述文件都可以进行调试的。如果自动管理情况下找不到描述文件,可以通过xcode登录开发者账户后下载相应的文件。
创建开发环境下的推送证书
只有创建了推送证书后才能收到推送,这是千古不变的道理,至少按照现在苹果的规定是这样。
1、创建推送证书,目前我们只创建了调试证书,所以只能创建调试推送证书

2、选择对应的应用

3、第三步选择csr文件,沿用刚才创建的即可。
4、创建成功后,下载下来双击即可。
5、双击后系统会自动打开钥匙串应用。我们需要将其导出p12格式的证书,为的是将其上传至第三方推送平台,比如极光。

在应用中添加相应代码来验证是否调通过推送通道。
1、在Appdelegate.m文件中增加以下代码
显示申请推送权限,注意这个只是在没有使用第三方推送SDK注册的情况下的原始代码,如果导入了推送第三方SDK,其注册API一般已经包含权限申请代码。
if ([UIDevice currentDevice].systemVersion.floatValue >= 10.0) {
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
[center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (!error) {
NSLog(@"request authorization succeeded!");
}
}];
} else {
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
//IOS8,创建UIUserNotificationSettings,并设置消息的显示类类型
UIUserNotificationSettings *notiSettings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound) categories:nil];
[application registerUserNotificationSettings:notiSettings];
}
}
[[UIApplication sharedApplication] registerForRemoteNotifications];
在获取推送凭证接口进行验证是否有具体数据,有则说明通道调通,无则说明没有
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
/// Required - 注册 DeviceToken
NSLog(@"%@", deviceToken);
}
运行app后,如果能够打印对应的信息,则ok咯。
现在轮到生产环境操作了
其实按照刚才的步骤来操作应该很简单了。
创建生产发布证书,此证书适用AppStore和企业级别应用创建(付费299美元的那种)
1、来到证书创建页面

我们这里就省略了,因为一些步骤是一样的。
2、如果已经到了上架应用或者企业级别证书发布应用阶段,那么就可以创建发布描述文件了,务必看清图中所选样式。

3、后面操作步骤其实都差不多了,企业级别账号应该不会出现选设备,其他都是一样的。
创建生产环境推送证书
1、来到证书创建页面

2、下载下来后,双击。系统弹出钥匙串后,导出p12文件,上传到第三方推送平台即可。
网友评论