关于这个话题,已经有非常多写的非常好的文章了。可是,在自己做的过程中,即使别人写的已经非常好了,还是会遇到这样那样的问题。

自己还是再写一遍吧。

本文记录了从无到有申请证书,到最后可以发出通知。当然,前提是我们有一个合适的开发人员帐号。

准备工作

1. 登录开发人员帐号,假设帐号的权限合适。我们会看到例如以下图:

或者最新的界面应该是以下(刚刚发现页面更新了):

2. 点击红色框内的菜单。会来到例如以下界面:

创建App ID

这里要创建的App ID就是我们的App的Bundle Id。

3. 点解左側的“App IDs”。会看到当前帐号下的全部App ID。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

4. 点击右上角的➕

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

App ID Description下加入这个这个App ID的描写叙述,如“My Test App”。

App ID Prefix下填写App的Bundle ID。不要带*号。

App Services下,勾选Push Notifications。

5. 点击Continue。会看到刚创建的App Id的信息。例如以下图:

6. 这时候再点击左側的“App IDs”,会看到右边的列表多了一条。

申请证书

推送证书分为开发证书和生产证书。我们以生产证书为例。

7. 点击左側的“Certificates”下的“Production”,会看到当前帐号下的全部生产证书

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

8. 点击右上角的➕

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

9. 选中Production下的Apple Push Notification service SSL。点击Continue

10. 在App ID下选中我们新建的App ID。点击Continue

11. 点击Continue。来到例如以下界面。须要我们上传CSR文件

接下来,我们要先在本地生成CSR文件。

12. 打开钥匙串(Keychain Access)程序。点击左上角的Keychain Access,做例如以下图的选择

12. 然后会看到例如以下提示

13. 填入邮箱等信息。选择“Save to Disk”。点击Continue后。会提示保存选择保存位置。选择合适的保存位置,保存。

14. 再接着第#11步。我们要上传刚才生成的CSR文件。点击“Choose File”,选择我们刚才生成的文件。然后点击Continue。然后会来到例如以下界面:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

这时。我们的证书已经创建好了。点击Download,将证书下载到本地。

我在桌面创建一个名为Cert的目录,将证书放到该目录下。

一会儿还会用。

创建Provisioning Profile

15. 点击左側的Provisioning Profiles下的Distribution

16. 点击右上角的➕

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

17. 点击Distribution下的In House,点击Continue

18. 在App ID下选择我们新建的App ID。

点击Continue

19. 选择我们刚才新建的证书所属的帐号。

点击Continue

19. 在Profile Name中。输入Profile的名字。点击Continue

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

这时。我们的Profile已经创建好了。点击Download,下载到本地。我把下载的Profile放到了在#14步中新建的Cert文件下。

生成供服务端使用的证书

这一步是在我们已经申请好的证书基础上,执行SSL命令。生成供我们的服务端使用的证书(也就是说,我们的服务端在发送通知的时候。要载入合适的证书)。
20. 打开桌面上的Cert目录。双击我们新申请的证书,证书会被倒入到钥匙串(Keychain Access)中。

打开钥匙串程序,点击Certificate,找到我们新建的证书,右键导出。

例如以下图:


21. 输入文件名。选择要保存的位置(我放在桌面上)。

点击Save

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

22. 导出的时候,会要求输入password。例如以下图:

23. 输入password。点击OK。

证书就被保存到了桌面上


24. 好吧。刚才保存的位置不好。

把刚才导出的证书拖到Cert目录中。

25. 在Cert下创建一个Gen目录,将下载的证书和导出的证书拷贝到Gen中。

并在Gen文件下,做例如以下的重命名:

下载的证书->developer_identity.cer

导出的证书->mykey.p12

注:这一步不是必须的。全然能够省略。我仅仅是为了方便有用接下来的命令(參考自这里)。

25. 打开终端(Terminal)程序,cd到桌面的Gen目录下。依次输入例如以下命令:

openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM
openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem
openssl pkcs12 -export -inkey mykey.pem -in developer_identity.pem -out iphone_dev.p12

期间会要求输入password(导出的证书的password和新生成的证书的password),按要求输入就能够了。例如以下图:

执行完成后。会在Gen下生成几个文件。当中iphone_dev.p12就是供服务端使用的证书。

使用新证书对程序签名

当然。我们打包的时候要用新的证书和Profile。

例如以下图:

在Project下,

在Target下,


接下来。就是打包了。

当然,还须要在服务端实现通知的推送。

參考:

http://blog.csdn.net/kepoon/article/details/22672133

http://stackoverflow.com/questions/7213074/notnoop-java-apns-push

Distributing Enterprise Apps

Distributing Enterprise Apps的PPT

iOS推送证书从申请到使用的更多相关文章

  1. iOS推送证书上传(转)

    iOS 推送证书制作(JAVA/PHP) 在使用Java或者PHP制作iOS推送服务器的时候,需要自己从开发者网站上导出的aps_developer_identity证书和Apple Developm ...

  2. iOS推送证书转pem文件

    iOS推送证书转 .pem文件. 推送证书转pem文件openssl x509 -in apns_miaobozhibo.cer -inform der -out apns_miaobozhibo.p ...

  3. iOS 推送证书的制作

    关于iOS推送证书的P12文件,并非直接从KeyChain导出来的证书文件.而是须要经过openSSL工具制作的.(好在Mac OS 默认就有openSSL命令) 针对不同的Server平台,须要的证 ...

  4. ios 推送 证书配置

    S的推送证书,有有效期限制,一般为一年.当我们证书过期的时候,就需要重新生成证书了.有一段时间没有上苹果网站了,昨天上去一看,此奥,改版了,下边我们将重新生成一个正式环境的push推送的证书. 1.先 ...

  5. iOS推送证书生成pem文件(详细步骤)

    1.pem文件概述 pem文件是服务器向苹果服务器做推送时候需要的文件,主要是给php向苹果服务器验证时使用,下面介绍一下pem文件的生成. 2.生成pem文件步骤 1.打开钥匙串,选择需要生成的推送 ...

  6. iOS 推送证书

    push 服务器证书 钥匙串:登入-->证书,选项里面导出证书命名为cert.p12,跟密钥命名为key.p12 需要将上面的2个.p12文件转成.pem格式: openssl pkcs12 - ...

  7. c#上iOS apns p12文件制作记录 iOS推送证书制件

    前期一些准备工作可参考:http://jingyan.baidu.com/article/7082dc1c6bb86de40a89bd1a.html 1.在桌面上建一个"apns_p12&q ...

  8. iOS 推送证书制作 (JAVA/PHP)

    // aps_development.cer 转化成pem openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem ...

  9. iOS推送证书p12转成pem

    首先你需要导出p12格式的证书,具体操作请参考如下: 其次你就可以通过在控制台输入如下命令即可转换: openssl pkcs12 -in 你导出的p12证书 -out 你要转换的pem证书 -nod ...

随机推荐

  1. es6编写generator报错

    首先babel基础包(不安装额外东西)并不是支持完整的es6语言 自己写的如下代码 let generator = function* () { ; ,,]; ; }; var gen = gener ...

  2. svnserve配置文件详析

    svnserve是SVN自带的一个轻型服务器,客户端通过使用以svn://或svn+ssh://为前缀的URL来访问svnserve服务 器,实现远程访问SVN版本库. svnserve可以通过配置文 ...

  3. C 多级指针

    C多级指针 *p                      -----> &p1 *(*p)                   ----->*(&p1) = &p ...

  4. 集群瓶颈:磁盘IO必读

    首先需要知道什么是IO: IO是输入输出接口阅读本文章可以带着下面问题1.集群的瓶颈为什么IO?2.你对IO了解多少? 这里面只说个人观点:当我们面临集群作战的时候,我们所希望的是即读即得.可是面对大 ...

  5. linux下查看doc在线帮助文件

    常看到某个linux下的工具,有带有doc结尾的文件,但是新手不知道如何查看. 我一番查找,终于知道了... 比如:ipython这个软件,在ubuntu里面,有ipython-doc的一个包. 安装 ...

  6. 斯坦福IOS开发第五课(第二部分)

    转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/27845257 作者:小马 五 代码演示样例 上面讲到的知识点在这个演示样例都有涉及 ...

  7. CLR Debug extention

    https://github.com/Microsoft/clrmd https://www.nuget.org/packages/Microsoft.Diagnostics.Runtime http ...

  8. js switch的使用 ng-switch的使用方法

    语法 switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代码 } ...

  9. eclipse tomcat timeout时间设置

    eclipse tomcat默认启动timeout时间太短,导致项目启动时间一长,就报错 如下设置: 工作空间\.metadata\.plugins\servers.xml文件 <?xml ve ...

  10. ucos-III前言

    年 uC/OS-III实时操作系统面世以来,uC/OS-III的性能和稳定性已经日趋完善.uC/OS-III对前面版本取精弃粕,推陈出新,功能和性能比起 uC/OS-II已经上了很大一步台阶.uC/O ...