证书经验汇总

第一次记录:

打开xcode------点击(直接用快捷键command +(《,)键也行)

然后出现页面,点击peference,出现页面

点击view Details,出现如下页面

选中一个,右击show in finder,出现

选择你不需要的删除,即可

常见问题

问题1,有时候,我们下载证书,点击输入电脑密码后,发现在钥匙串中发现不了私钥。怎么解决的。我也不知道什么原因,我点击登录后,在往下面点就发现了 那个私钥了。

点击登录钥匙串,然后,点击下面种类里面的证书,然后拉进去,或者叫拖进去即可。

问题2,证书提示"此证书的签发者无效",这个问题,参照了,网络文章。简单就是双击然后,编辑始终信任。

文章地址:http://jingyan.baidu.com/article/49711c617a540cfa441b7c86.html

问题3,开发证书的简单生成过程。

可以参照如下图

 

 

http://www.myexception.cn/operating-system/1882765.html

 

关于证书的一些笔记和疑问:

创建步骤,

第一步,创建的一个appid名字和id,id名字必须和项目的id相同,因为,我们不论在云信和极光推送,我们都要输入我们app的id,如果证书的名字和我们在云信、极光后台的应用的id不一样,那么就会提示报错说证书名字不匹配。

 

第二步可以有两种选择,一种直接点击证书id进行编辑,可以创建push 和dev证书,并可以进行下载,或者revoke,注意编辑的时候一定要选中push notification,中间有一个签名文件的创建,签名文件的邮箱和名字不可缺少,这个名字以后就是证书私钥的名字

 

另一种点击证书栏,分别创建dev和push证书,跟id建立连接

 

第三步,缺乏第三步的结果导致dev证书不能推送,相反product证书可以,我于是推断,线上无需描述文件,而线下需要。具体怎么做呢,具体生成一个描述文件,这个文件名字可以任意,但是id必须选择之前创建的id.这样的推送证书可以了。

 

总结;证书和描述文件都不能少,证书和描述文件都必须跟id建立连接。

导出的时候一定只能导出证书而不是钥匙文件。

 

 

钥匙串不能乱乱删,否则可能出问题,私钥不见的原因,是因为我把签名文件删掉了,那个就是私钥呢,知道不

 

开发环境需要描述文件,但是线上环境不需要猜测 待验证

同类文章参考:

http://www.cnblogs.com/cywin888/p/3263027.html

http://www.jianshu.com/p/8e967c1d95c2

http://blog.csdn.net/phunxm/article/details/42685597

https://leancloud.cn/docs/ios_push_cert.html#创建_Universal_推送证书

第二次记录:

1、苹果的网一般比较慢。

2、证书可以用文本编辑、vim打开,通过vim打开可以看到这个证书是开发证书还是生产证书,这个一个检测的过程。

3、证书本质上是一套的加密术。

4、不能为证书的id是※的创建证书,即使创建了那样也会收不到,创建证书时会有两种格式:有通配符和无通配符,要选择没通配符的,具体的。

5、直接从id处创建证书更容易,流程分两步:制作csr 和制作证书。

6、csr文件本质上是什么

答:csr 的全称是Cerificate Signing Request即证书请求文件,CSR是Cerificate Signing Request的英文缩写,即证书请求文件,也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥Private Key的同时也生成证书请求文件CSR,证书申请者只需要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的SSL证书

7、csr文件可以重复使用。

8、邮件最好填开发者中心的的邮箱。

9、双击证书进入keychain。

10、导出证书,要先将证书收起来再导出来(下图)。

 

第三次学习:

两篇优秀文章:

关于Certificate、Provisioning Profile、App Id的介绍及其之间的关系。

1、https://www.cnblogs.com/cywin888/p/3263027.html

iOS10推送通知进阶

2、https://www.jianshu.com/p/78ef7bc04655

信鸽官方文档

3、https://xg.qq.com/docs/ios_access/ios_access_guide.html

这两篇文章重要观点:

1、推送的步骤

(1)网络链接(2)请求获取token(3)注册token(4)请求APNs下发消息(5)推送消息

三个重要的参与方:app ,apns,三方服务器。发推送的原理,是三方是给苹果服务器发,带上token,苹果知道往哪里发了。

2、用openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes

可以将p12文件生成pem,文件,pem文件我们可以通过vim去看里面的私钥和公钥的具体信息。

3、证书是真机调试、打包的前提,原理就是在本地保存了公钥私钥,苹果开发服务器,有私钥,通信确认可行,就可以打包和真机调试。

4、要注意区分正式环境和测试环境的名字。

5、重要词汇,设计id时,有几个词汇,wildcard 通配符,explicit清晰的。

6、证书三部曲

(1)创建id

(2)开启通知设置  很重要

(3)钥匙串从证书颁发机构获取证书

就完成了

7、错误信息: Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的授权字符串" UserInfo=0x16545fc0 {NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}

这个错误是因为没有在xcode设置里面打开,notification。

8、profiles配置文件,profies是什么

一个Provisioning Profile文件包含了上述的所有内容:证书、App ID、设备。

试想一下,如果我们要打包或者在真机上运行一个应用程序,我们首先需要证书来进行签名,用来标识这个应用程序是合法的、安全的、完整的等等;然后需要指明它的App ID,并且验证Bundle ID是否与其一致;再次,如果是真机调试,需要确认这台设备能否用来运行程序。而Provisioning Profile就把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用,这样我们只要在不同的情况下选择不同的profile文件就可以了。而且这个Provisioning Profile文件会在打包时嵌入.ipa的包里。

好的问题:

1、如何获取生产环境的deviceToken

将那个打印环境去掉就行了,让release也能打印

// DEBUG日志

#ifdef DEBUG

#define MDFLog(s,...) NSLog(@"  hihi \n  <%p %@:(%d)>\n  %s\n  %@\n\n", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, __func__, [NSString stringWithFormat:(s), ##__VA_ARGS__])

#define NSSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String])

#else

#define MDFLog(s,...)

#define NSSLog(FORMAT, ...)

#define NSLog(...)

#endif

将release环境设置跟debug一样就行

2、release环境不要禁止打印

https://cli.im/url?812798aa441cf417aca2efa06ff98195

3、正式环境和测试环境的标志区别是什么,只是release和debug的区别吗

4、生产环境和测试环境与正式环境和测试环境,是一一匹配的吗

5、如果我把本地证书全部删掉,直接从上面下载证书行不行,会有p12文件吗?可以验证

验证通过,是的有的。但是,如果我们删除了证书里面那个p12文件,然后再删除那个证书文件,再次下载这个证书就没有p12文件。这个时候,要么别人把p12导出来给你,要么就只能重做了(重新从证书颁发机构获取request文件)。

怎么解释:可能是第五步删证书的时候,没有把本地的p12删掉吧。

删除p12文件警告:

警告!如果删除专用密钥,则与该密钥相关的证书无法再使用。这可能会阻止您读取加密信息或进行安全连接。只有当您确定不再需要所选密钥时才继续此操作。

注意,如果点击了删除,删除的文件时不能进入到垃圾桶的,此步骤不能恢复的。

一旦进行这个步骤,下面的文件就不能用了,只能重新制作。

6、如何验证证书的有效性

7、如何给别人用,创建一个配置文件,选择对应的id和设备,产生如下文件:

会产生如下文件:

别人拿着这个文件就能用了

8、引出p12文件方式,经验证,以下两种方式都没问题,我通过生成pem文件,发现这两个文件里面的细节还是有不一样的,我们同时用这两种方式生成两个p12文件,发现里面的数据,certificate和key都是不一样的,格式里面也有一些出入,结论,他们并不是一模一样,并且在上线的时候,只有用那种较全的证书,但是测试的时候,两种证书都行。注意,环境、名字、证书都要设置正确,并且要等待一点时间,至少七鱼的问题是这样的。

故障排查

1、收不到推送,注意正式和测试是否配置正确;bundleid是否正确;名字;打包时有没有打开Capabilities里面的推送能力(很关键);

2、另外,推送并且一定能收到,我亲自遇到过,什么都没动,推送忽好忽怀,这个问题怎么解决??看上面各项都没问题,我们只有等待。等待三方服务器或者苹果服务器变好。

3、有时配置不一定立马生效,需要等待"线上的大概会有半个小时左右的延迟,有时候会快一些",这是一个重要经验,一般等待至少等待半小时。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值