iOS推送证书配送制作

作者: 钎探穗 | 来源:发表于2016-08-05 16:49 被阅读703次
  • 1、开发者证书(分为开发和发布两种,类型为ios Development,ios Distribution),这个是最基础的,不论是真机调试,还是上传到appstore都是需要的,是一个基证书,用来证明自己开发者身份的;

  • 2、appID,这是每一个应用的独立标识,在设置项中可以配置该应用的权限,比如是否用到了PassBook,GameCenter,以及更常见的push服务,如果选中了push服务,那么就可以创建生成下面第3条所提到的推送证书,所以,在所有和推送相关的配置中,首先要做的就是先开通支持推送服务的appID;

  • 3、推送证书(分为开发和发布两种,类型分别为APNs Development ios,APNs Distribution ios),该证书在appID配置中创建生成,和开发者证书一样,安装到开发电脑上;

  • 4、ProvisioningProfiles,这个东西是很有苹果特色的一个东西,我一般称之为PP文件,该文件将appID,开发者证书,硬件Device绑定到一块儿,在开发者中心配置好后可以添加到Xcode上,也可以直接在Xcode上连接开发者中心生成,真机调试时需要在PP文件中添加真机的udid;是真机调试和必架必备之珍品;

平常我们的制作流程一般都是按以上序列进行,先利用开发者帐号登陆开发者中心,创建开发者证书,appID,之后在PP文件中绑定所有的证书id,在appID中开通推送服务,在开通推送服务的选项下面创建推送证书(服务器端的推送证书见下文),添加调试真机等

  • 5、开发 (开发证书, 配置文件, AppID) / 生产(生产证书, 配置文件)

1.了解:一个已付费的开发者账号(账号类型分为个人(Individual)、公司(Company)、企业(Enterprise)、高校(University)四种类型,每年资费分别为$99、$99、$299、免费。)。

2.注意:
你的Xcode必须是正式版的,beta版本的Xcode是不能上传项目的。
选择App Store and Ad Hoc: 往AppStore上传App时使用的证书

3.注意:

一个开发者账号只能创建(1-2个开发(测试)证书,2-3个生产(发布)证书),如果你的App Store Ad Hoc 前面的按钮不能选择,则代表你的这个账号无法再创建新的生产证书了。

4.解决方法:

对于证书的问题:从共同使用这个账号的人电脑上生成.p12文件,导入自己的电脑。(尽量不要执行下面第2步)
如果你想生成的话,把现有的删除一个(建议删除时间比较靠前的)。注意:如果删除一个证书,那么正在使用这个证书的人将不能再使用了,除非重新生成,然后利用.p12重新导入自己的电脑里!

对于版本低的问题:找到/Users/用户名/Library/Developer/Xcode/下面的DeviceSupport,或者通过/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport这个路径找到,有的电脑不一样,将里边文件版本提高一下,然后重新启动xcode就可以了


如果只是可以真机运行:使用的时候使用开发证书+配置文件

如果想正常真机运行并可以推送,步骤如下:

一、推送需要准备的(已经有了):

1、开发证书( iosDevelopment)
将生产的开发证书添加在钥匙串--->登录---->我的证书里边, 如果里面有不用的证书,就清空,避免影响混乱

2、推送证书 (APNsDevelopment) & 推送配置文件(profile) & AppID(设置推送服务的)

推送步骤简单图.png

点击"+"创建APPID

第一步.png 1.1.png

然后一直点选register按钮,直到Done按钮出现,点击后,就可在Identifiers-->AppIDs里看到自己创建好的ID

第二个环节:

第二步.png
勾选App Development,同一账号下可以找到自己配置好的开发文件.[一个开发者账号只能创建(1-2个开发(测试)证书)] 2.1.png

继续下一步

2.2png.png

上面选项里如果多的话,最好选择时间最新的那个

2.3.png

里面的证书名同样随意写.

2.4.png

全选是为了避免找到自己真机uDID的麻烦

2.5.png

这样配置文件就将appID和开发者证书关联了起来.

下载即可,进入第三环节

3.1.png

上面的按钮是为了生成推送授权

3.2.png

同样找到自己的APPID

3.3.png

通过钥匙串访问生成

3.4.png 3.5.png

将生成的文件添加进入

3.6.png

下载后将证书文件通过钥匙串导出成p12格式为推送用

4.png

推送环节


4.1.png

应用名称随意

4.2.png

BundleID与推送的一致

4.3.png

注意:provisioning Profile那块,我说的是推送证书的配置文件

注意:如果你想删除证书,执行下面步骤,否则略过。

build setting search code signing

bitcode -> NO
4.4.png

通过真机,在推送内容框里输入内容,按操作就可推送到真机

二、使用:(先在JPush平台创建一个应用,然后用自己获取Appkey替换工程里面的推送注册的Appkey)

注意1:在JPush平台创建应用的时候需要上传“推送证书的p12格式”的证书
注意2:工程中的bundleID 设置为AppID 的bundle ID
注意3:工程中设置证书 CodeSigning Identity 为 开发证书,Provisioning Profile的位置设置为推送配置文件

工程中参考的代码(先用cocoapods导入框架)

#import "AppDelegate.h"
#import "MainListViewController.h"
#import <JPUSHService.h>

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    //fd88a1dab1d265a352d25072
    // 注册APNS类型-----远程推送
    [JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert) categories:nil];
    
    // 初始化d283459f115a0eb09f04f8fb  ccc4667f37cd6b6818a70a54
    [JPUSHService setupWithOption:nil appKey:@"a2afce5e9ac00479ed0f40ee" channel:nil apsForProduction:NO];
    

    
    
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    MainListViewController *mainListVC = [[MainListViewController alloc] init];
    UINavigationController *mainListNaviVC = [[UINavigationController alloc] initWithRootViewController:mainListVC];
    
    self.window.rootViewController = mainListNaviVC;
    
    return YES;
}


#pragma mark ----处理apns接收消息(JPush SDK required)----

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    
    
    // 向服务器上报Device Token
    [JPUSHService registerDeviceToken:deviceToken];
    
}

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *) error {
    NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

    
    // 处理收到的APNS消息,向服务器上报收到APNS消息
    [JPUSHService handleRemoteNotification:userInfo];
    NSLog(@"%@", userInfo);
}


对于无效的证书的解决方法:
问题解决

需要更新AppleWWDRCA证书。
1.https://developer.apple.com/certificationauthority/AppleWWDRCA.cer下载最新AppleWWDRCA证书,双击安装。
2.打开钥匙串,选择登录,然后选择下面的证书。
3.选择桌面左上角的显示→显示已过期的证书。
4.这时候你会发现一个过期的“WWDR Certificate”(Apple Worldwide Developer Relations Certification Authority),删除它。
特别注意:有的在系统那一栏也有这个过期的“WWDR Certificate”,也一并删除它,没有就不作处理。
5.再回头点击Develop证书和Distribution证书,不出意外他们都变成“此证书有效”了。

相关文章

  • iOS推送证书配送制作

    1、开发者证书(分为开发和发布两种,类型为ios Development,ios Distribution),这个...

  • iOS开发环境相关(3)——证书制作

    这里的证书不包含推送证书,如果需要制作推送证书,移步iOS开发环境相关(4)——推送证书 开发者证书制作 证书主要...

  • iOS推送证书制作

    对于APNS证书,要分别制作开发证书和生产证书,不同环境下使用不同的证书,但是对于VoIP证书只有一个,不过在服务...

  • 百度云推送证书无效解决方案

    公司的iOS推送证书即将到期,重新生成一个证书,按照文档制作出pem文件 上传到百度云推送的时候提示证书无效。经过...

  • 2022-07-01

    iOS 推送通知证书制作一、生成Certificate Signing Request(CSR)1.打开钥匙串,钥...

  • iOS 制作APNS推送证书

    今天在制作推送证书时发现网上很多文章贴的命令制作出来的证书验证都不能通过,现在记录一下可用的命令: 导出证书的.p...

  • 推送

    制作推送证书 iOS工程开发指引中对推送流程的概括如下 服务端的Provider通过APNs将信息推送给Clien...

  • 申请iOS推送证书p12

    iOS APP需要推送通知,要用到iOS推送证书,分为测试调试用的iOS推送证书(开发环境)和上架到App Sto...

  • ios推送证书配置

    ios推送证书配置 ios的消息推送需要配置推送证书,这和打包证书是两个不同的证书。这里简单介绍下大致的流程。以下...

  • 用AdHoc来测试iOS线上推送

    1. 关于iOS 推送证书 iOS推送分为开发环境和生产环境,在推送证书的type上分别对应 APNs Deve...

网友评论

  • Mr_Lucifer:没有推送:一个发布证书 一个配置文件 ,填在xcode code signing中;有推送: 一个发布证书 一个推送证书 一个配置文件 ,所以 推送证书 填在xcode哪里?没说清楚
    超_iOS:@钎探穗 有推送的话.发布证书是不是要推送服务的证书?还是用原来的发布证书?想请教
    钎探穗:@Mr_Lucifer 谢谢指出错误,Provisioning Profile的位置设置为推送配置文件
  • macfai:挺详细的,回头试试,多谢:smile:

本文标题:iOS推送证书配送制作

本文链接:https://www.haomeiwen.com/subject/vowhsttx.html