zoukankan      html  css  js  c++  java
  • iOS 开发 证书总结 开发证书和生产证书的区别

    IOS开发 证书总结

    开发者证书   ------>> 


     开发证书是你在真机推送时 用得, 生产证书是app 上架之后 推送给用户用的 

    首先你必须获得apple开发者证书,上图这个文件就是apple开发者证书,只要有apple的开发者账号就可以下载到,此证书可以直接到

    developer.apple.com -->

        Member Center -->

          Certificates, Identifiers & Profiles, Certificate -->

            Certificates  -->  Add Certificates 里面下载到, 如下图:

    那么这个文件有什么用处? 后文再说!

    其次需要理解 Certificate, Identifier, Devices, Provisioning Profiles


    Certificate

    用于给应用程序签名(只有签名过的应用程序才能保证其来源是可信任的,代码是完整的,未经修改的), 在项目的Project  |  Targets -----> Build Settings -----> Code Signing Identity里面指定, 如下图:

    我们如何给应用程序签名?
     
        申请Certificate之前需要申请一个 Certificate Signing Request(CSR) 文件,这个文件是保存在我们的mac的(keychain)里面的, 此文件包含了(公钥和私钥), 而我们的应用程序签名是使用私钥来签名用公钥来进行验证,  而苹果生成的Certificate 只包含了公钥, 当你用自己的私钥签名后,苹果会用公钥来进行验证,确保是你自己对程序签名而不是别人冒充的。
     
    •     首先是申请CSR文件,打开Keychain Access, 如下图:  

          

    • 然后按下图依次点击
          注意下图的  Request a Certificate from a Certificate Authority …
          如果没有这个选项的话,还记得文章开头的那个AppleWWDRCA.cer证书么,对了就是它,安装它后就OK啦

    • 再然后common name随便填, CA Email Address 留空, 再点击continue 继续

    • OK, CSR文件就生成了

    那么上一步说的CSR文件包含了public key 和 private key我们就可以在Keychain Access里面看到了, 如下图:

    CSR文件生成之后就要生成Certificate了, 进入Developer页面(Certificates, Identifiers & Profiles) --> Certificates ---> + 

    1.     选择证书类型     (Development or Production)
    2.     上传提供之前创建的 Certificate Signing Request(CSR)文件
    3.     下载生成好的Certificate 文件
    4.      双击安装(特别提示:如果以前有安装过此开发者证书且名字相同,双击安装极有可能不生效,需要做的是直接把此Certificate文件拖入到Keychian Access的Login里面,当然如果以前的没用的可以删除, --- 通过搜索iphone developer可以找到)
    Identifier:
    作用?
        
        顾名思义App ID(application id, not apple id), 对于你的一个或者一组app他们的唯一标识, 这个App ID跟你Xcode中的Targets -----> General-----> Identity中的Bundle Identifier是匹配的,(其余的那些推送服务啊什么的都是配置在APP ID下面的) 如下图:

     

    Provisioning Profile

        
        一个Provisioning Profile包含了上述所有内容 Certificate && App ID && Device, 这个Provisioning Profile文件会在打包时嵌入到.ipa的包里,如下图: 
     
     
    所以一台设备上运行应用程序的过程如下(以Developer Provisioning Profile为例):
     
    1 检查app 的 bunld ID 是否 matches Provisioning Profile 的 App ID
    2 检查 app 的 entitements 是否 matches Provisioning Profile 的 entitements
    3 用Certificate来验证签名签名
    4 检查此设备的UDID是否存在于 Provisioning Profiles中 (仅在 非发布证书中)
     
    如何创建?
    在 Provisioning Profiles 中点加号,然后依次选择App ID, Certificate, Devices(development),再指定名称,最后下载, 双击则安装到Xcode中
     
     
    Xcode中的配置
     
    Project && Target 的 build settings 中搜索Code sign…
    然后分别选好对应的证书,如果选择列表中没有刚才创建的证书可以双击直接复制名字上去 

    关于推送服务
    基于上面的操作,如果需要推送服务我们还需要申请一个推送证书
     
    依次进入 Certificates —>Production —>Apple Push Notification service SSL (Production)
    然后选择需要推送服务的App ID
    再选择前面创建的.cerSigningRequest文件
    最后点击generated生成推送证书 
  • 相关阅读:
    [多线程]使用信号量进行同步
    [多线程]互斥锁与信号量的区别
    [多线程]环形缓冲区以及多线程条件同步
    [多线程]LINUX c多线程编程-线程初始化与建立
    [STL]bitset使用
    [算法]败者树
    【Rollo的Python之路】Python:字符串内置函数
    【Rollo的Python之路】Python:字典的学习笔记
    【Rollo的Python之路】 购物车程序练习
    【Rollo的Python之路】Python 元组的学习
  • 原文地址:https://www.cnblogs.com/tangyuanby2/p/5441721.html
Copyright © 2011-2022 走看看