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


首先你必须获得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生成推送证书 

IOS开发 证书总结的更多相关文章

  1. iOS 开发 证书总结 开发证书和生产证书的区别

    IOS开发 证书总结 开发者证书   ------>>  开发证书是你在真机推送时 用得, 生产证书是app 上架之后 推送给用户用的 首先你必须获得apple开发者证书,上图这个文件就是 ...

  2. IOS开发证书变成“此证书的签发者无效”解决方法

    IOS开发证书全部变成无效,如下图  打包提示错误  解决方法: 1. 下载https://developer.apple.com/certificationauthority/AppleWWDRCA ...

  3. iOS开发证书都显示“此证书的签发者无效”,更新WWDR Certificate证书后还是显示无效

    1.首先iOS开发证书显示"此证书的签发者无效".是因为WWDR Certificate证书过期导致的,须要更新WWDR Certificate证书! 1)下载最新WWDR Cer ...

  4. iOS开发证书和配置文件的使用

    提示:之前只是根据网上的流程完成了iOS项目的发布过程,对于证书和配置文件仍是一头雾水,这里参照别人的文章,简单了解一下,毕竟以后用的着. 这里有几个问题: 什么是iOS证书,它是如何与app应用关联 ...

  5. iOS监听模式系列之iOS开发证书、秘钥

    补充--iOS开发证书.秘钥 iOS开发过程中如果需要进行真机调试.发布需要注册申请很多证书,对于初学者往往迷惑不解,再加上今天的文章中会牵扯到一些特殊配置,这里就简单的对iOS开发的常用证书和秘钥等 ...

  6. iOS开发证书与配置文件的使用

    前提 众所周知,开发iOS应用必须要有iOS证书(Certificates)和配置文件(Provisioning Profiles),那么问题来了: 1.什么是iOS证书,它是如何与app应用关联的? ...

  7. 【转】ios开发证书,描述文件,bundle ID的关系

    ios开发证书,描述文件,bundle ID的关系   苹果为了控制应用的开发与发布流程,制定了一套非常复杂的机制.这里面的关键词有:个人开发者账号,企业开发者账号,bundle ID,开发证书,发布 ...

  8. 如何使用iOS 开发证书 和 Profile 文件

    如果你想在 iOS 设备(iPhone/iPad/iTouch)上调试, 需要有 iOS 开发证书和 Profile 文件. 在你拿到这两个文件之后,该如何使用呢? 证书使用说明: 1.  iOS 开 ...

  9. ios开发证书,描述文件,bundle ID的关系

    苹果为了控制应用的开发与发布流程,制定了一套非常复杂的机制.这里面的关键词有:个人开发者账号,企业开发者账号,bundle ID,开发证书,发布证书(又叫"生产证书"),开发描述文 ...

  10. iOS开发证书那点事儿

    iOS开发是用Xcode作为开发工具,Xcode在安装之后就自带了模拟器(Simulator).模拟器是个好工具,它对用户没有任何要求,但是我们必须牢记一件事:开发出来的App最终是要在真机上执行,没 ...

随机推荐

  1. JavaScript测试工具

    大家都知道Javascript的测试比较麻烦,一般是开发使用一些浏览器的插件比如IE develop bar或是firebug来调试,而测试往往需要通过页面展示后的js错误提示来定位.那么还有其他比较 ...

  2. 解说mysql之binlog日志以及利用binlog日志恢复数据

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  3. 侧滑SilidingMenu ,ViewPager 和,PagerIndicator 冲突

    今天敲代码过程中发现再ViewPager 页面中禁用的SilidingMenu侧滑菜单突然失效了,那么肯定是添加的PagerIndicator的问题, 然后我发现 把setOnPageChangeLi ...

  4. Android 6.0 SDK 找不到HttpClient的解决方法

    一.情况描述 在eclipse或Android Studio开发时(笔者目前只用过Android Studio),设置Android SDK的编译版本为23时,且使用了httpClient相关类的库项 ...

  5. Bootstrap Paginator 分页插件参数介绍及使用

    Bootstrap Paginator是一款基于Bootstrap的js分页插件,功能很丰富,个人觉得这款插件已经无可挑剔了.它提供了一系列的参数用来支持用户的定制,提供了公共的方法可随时获得插件状态 ...

  6. 《深入理解计算机系统》 Chapter 7 读书笔记

    <深入理解计算机系统>Chapter 7 读书笔记 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(货被拷贝)到存储器并执行. 链接的时机 编译时,也就是 ...

  7. 20145222黄亚奇《Java程序设计》第9周学习总结

    20145222第九周<Java学习笔记>学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC(Ja ...

  8. C#对 Dictionary进行排序 转

    C# .net 3.5 以上的版本引入 Linq 后,字典Dictionary排序变得十分简单,用一句类似 sql 数据库查询语句即可搞定:不过,.net 2.0 排序要稍微麻烦一点,为便于使用,将总 ...

  9. Express使用手记:核心入门

    入门简介 Express是基于nodejs的web开发框架.优点是易上手.高性能.扩展性强. 易上手:nodejs最初就是为了开发高性能web服务器而被设计出来的,然而相对底层的API会让不少新手望而 ...

  10. 分布式人工智能标记语言(DAIML)示例

          DAIML(Distributed Artificial Intelligence Markup Language)是用于分布式人工智能系统中智能语言的标记库.DAIML主要分为Patte ...