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生成推送证书 

iOS 开发 证书总结 开发证书和生产证书的区别的更多相关文章

  1. iOS开发:创建推送开发证书和生产证书,以及往极光推送官网上传证书的步骤方法

    在极光官网上面上传应用的极光推送证书的实质其实就是上传导出的p12文件,在极光推送应用管理里面,需要上传两个p12文件,一个是生产证书,一个是开发证书 ,缺一不可,具体如下所示: 在开发者账号里面创建 ...

  2. XE7 & IOS开发之开发账号(2):发布证书、发布授权profile的申请使用,附Ad hoc真机调试、生成ipa文件演示(XCode所有版本通用,有图有真相)

    网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 注意,以下讨论都是以&q ...

  3. iOS开发基础之开发证书的说明和发布

    1.首先通过钥匙串访问--证书助理--从证书颁发机构请求证书--填写证书信息(邮箱,常用名称,存储到磁盘)--存储为(自定义名称.certSigningReuqest,简称CSR文件,只是为了提交到苹 ...

  4. iOS 多人共享开发证书

    当多人开发时,如果已经申请了几个开发者证书和发布者证书,苹果就不允许再创建了,页面添加的地方被灰化了,所以不可能每个人都建一个开发证书,这时候需要共用一个证书了.(其实一般在我们的证书界面中应该只有一 ...

  5. Ios生产证书申请(含推送证书)

    一.Mac机上生成请求文件. Mac机上点击证书助手 => 从证书颁发机构请求证书 => 得到CertificateSigningRequest.certSigningRequest请求文 ...

  6. 【微信小程序开发】之如何获取免费ssl证书【图文步骤】

    微信小程序要求所有网络请求都走ssl加密,因此我们开发服务端接口需要配置为https 这篇文章介绍一下如何 在 startssl 申请一个免费的ca证书. 1. 打开网站  https://www.s ...

  7. iOS 生产证书

    首先登陆https://developer.apple.com(99美元账号) 选择iOS Developer program 板块下的 Certificates,Identifiers & ...

  8. iOS 生产证书 分类: ios相关 app相关 2015-05-22 14:49 175人阅读 评论(0) 收藏

    首先登陆https://developer.apple.com(99美元账号) 选择iOS Developer program 板块下的 Certificates,Identifiers & ...

  9. iOS开发——高级技术精选&底层开发之越狱开发第一篇

    底层开发之越狱开发第一篇 做越狱开发也有一些时间了,有很多东西想总结一下,希望给他人一些借鉴,也是自己对过去开发经历的一些总结.个人不推荐使用盗版,这里主要以技术介绍为主. 这个系列里面主要介绍怎样进 ...

随机推荐

  1. webconfig和appconfig中出现特殊字符如何处理

    在配置文件出现特殊字符&的字符串(如:abce&efg),就会报错.错误如下: 如何处理呢? config文件的本质是xml,所以必须符合xml的规范我们需要这么处理: abce&am ...

  2. Android ListView 自定义 Adapter

    自定义Adapter类 public class ListViewAdapter extends BaseAdapter { private static final String TAG = Mai ...

  3. 手机大数据_SQL映射对象_动软_代码模板_Models

    <#@ template language="c#" HostSpecific="True" #> <#@ output extension= ...

  4. Hibernte继承映射

    继承映射分为三种: 继承结构共用一张表结构 每个类一张表结构 每个具体类一张表结构 下面使用Animal.Dog.Fish举例 Animal类如下: package com.hml.domain.a; ...

  5. SWIFT 闭包的简单使用

    import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: ...

  6. Java基础(49):快速排序的Java封装(含原理,完整可运行,结合VisualGo网站更好理解)

    快速排序 对冒泡排序的一种改进,若初始记录序列按关键字有序或基本有序,蜕化为冒泡排序.使用的是递归原理,在所有同数量级O(n longn) 的排序方法中,其平均性能最好.就平均时间而言,是目前被认为最 ...

  7. UML: 序列图

    摘自http://www.umlonline.org/school/thread-37-1-1.html 大家都进过餐馆吃饭吧?你是如何和餐厅服务员“眉来眼去”的呢?回忆一下从你进餐馆开始到你离开餐馆 ...

  8. 每天一个shell知识--数组

    1.shell中数组的定义: 数组名=(value value1 value2 ) 也可以单独的设定数组的分量: arrayL[0]=value arrayL[1]=value1 2.${arrayL ...

  9. ArrayList和LinkList区别

    ArrayList和LinkList区别 前者是数组的数据结构,后者是链表的数据结构 前者应用于排序和查找,后者应用于插入删除

  10. B/S与C/S区别

    B/S (Brower/Server)-->浏览器/服务器 程序完全部署在服务器上,用户通过浏览器访问应用程序,它是基于internet产物(在应用服务器中部署运行程序) c/s(Client/ ...