基本知识

首先要了解一下Xcode打包签名机制中 Certificates & Identificates &Provisioning Profiles 三者之间的关系:

Certificates:

是证书的意思,是我们开发者账号的认证,也是当前开发者账号是否可用的唯一标示。(是对电脑开发资格的认证,也是对开发者账号的认证,通常用于认证开发者能够在某一台电脑上进行编程),每个开发者账号有两套开发者证书可以选择:

  Developer Certification(开发证书)   安装在电脑上提供权限:开发人员通过设备进行 真机调试 。可以生成副本供多台电脑安装,也就是导出证书秘钥(.p12文件)

Distribution Certification(发布证书)   安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。然后打包上传到iTunesConnect进行发布操作。不可生成副本,仅有配置该证书的电脑才可使用;(副本制做介绍在下面Keychain开发秘钥中介绍)如果app想加入推送功能,就申请对应的带推送的证书:

Identificates:

是身份标示的意思,就是我们的AppID ,如果是在创建发布证书的时候,我们的AppID 要求是唯一的,如果是创建测试证书的时候,我们的APPID可以使用通配符。

Provisioning Profiles:

是描述性文件的意思,是对证书和项目标示的描述文件。

什么是通配符:

通配符就是在上传程序的时候要使用到的一个唯一标示软件ID的一串字符串后面的*号部分,当然在显式的AppID 中不存在通配符,仅仅在通配符AppID中出现。

下面是对公钥、私钥、数字证书的作用理解:

公钥是用来加密签章用的,私钥是用来验证签章解密用的,数字证书使用来提供一对加密与解密的通道或者中介。

使用数字证书的签名机制可以确保该信息是由签名者自己签名发送的,不能否认该事实,信息在发送的过程中不能被任何人修改,因为通过数字证书加密过程是不可逆转的。

Devices 用于创建测试设备,一个99美元允许创建100个设备

证书制作流程

下面是证书的制作流程:

第一步:申请本地证书

在钥匙串中生成密钥文件CSR文件(在钥匙串中操作这一步),并将CSR文件下载保存到本地。

如果申请的本地证书要保存在磁盘上的话,邮箱可以随便写。

将证书保存在桌面上。

打开开发者中心,在如下图处点击:“证书、ID、描述性文件” 的图标。

证书分为开发者证书,测试证书两种。要申请证书,都要从右边的  “+”  号处添加。如果要申请开发证书就选择 Development,如果要申请发布证书,就选择 Production,步骤都是选择“+”号后添加证书:

点击了 “+”  之后可以看到的是:

如果是选择开发证书选择第一个 红框。

如果是选择发布证书选择第二个 红框。

下面假设选择了发布证书:

这里我们点击 “continue”

然后会出现下面的页面:

然后选择 “Choose file ” 上传我们从钥匙串中创建的本地证书:

上传之后,点击 “ Generate”  就可以生成证书了。

下面我们就可以下载我们创建好的证书了。

我们可以在证书下载完成之后,删除原来的从钥匙串中生成的证书了。然后返回到证书界面,就可以看到我们申请的证书了。

一般申请一个 发布证书(IOS Distribution),一个开发证书(IOS Development)就够用了。

找到下载的文件,双击它,添加到钥匙串里就好了。在这一步里,如果钥匙串拒绝添加,直接将其拖进钥匙串就行:

这样证书就申请完毕了,有了证书后,接下来可以申请各种各样的描述文件供开发使

项目打包

待续

项目上传 AppStore

待续

iOS项目上线的流程的更多相关文章

  1. java项目上线的流程(将web项目部署到公网)

    本博文来源于网络,原文的地址在本篇博文最下方. 如何将java web项目上线/部署到公网 关于如何将Java Web上线,部署到公网,让全世界的人都可以访问的问题.小编将作出系列化,完整的流程介绍. ...

  2. iOS 项目上线流程

    一.证书的导出      1.1 前期工作        首先你需要有一个苹果的开发者帐号,一个Mac系统.        如果没有帐号可以在打开http://developer.apple.com/ ...

  3. App上线基本流程

    还可参考的:http://www.cocoachina.com/bbs/read.php?tid=330302 iOS项目上传前期准备材料: 1.已有开发者账号 2.已有发布证书 3.一张1024*1 ...

  4. iOS学习——iOS项目Project 和 Targets配置详解

    最近开始学习完整iOS项目的开发流程和思路,在实际的项目开发过程中,我们通常需要对项目代码和资料进行版本控制和管理,一般比较常用的SVN或者Github进行代码版本控制和项目管理.我们iOS项目的开发 ...

  5. iOS 开发之版本上线更新流程

    iOS 开发之版本上线更新流程   把自己app上线的流程记录下来,希望能够让自己加深印象,也能帮助到一些人便是极好的! 证书和描述文件的配置就不写了,直接配置工程吧. 大致把我自己上线的流程写一下: ...

  6. iOS项目的目录结构和开发流程

    转自无网不剩的博客 网上相关的资源不多,开源的且质量还不错的iOS项目也是少之又少,最近正好跟同事合作了一个iOS项目,来说说自己的一些想法.   目录结构 AppDelegate Models Ma ...

  7. (转)iOS项目的目录结构和开发流程

    网上相关的资源不多,开源的且质量还不错的iOS项目也是少之又少,最近正好跟同事合作了一个iOS项目,来说说自己的一些想法. 目录结构 AppDelegate Models Macro General ...

  8. IOS项目目录结构和开发流程

    网上相关的资源不多,开源的且质量还不错的iOS项目也是少之又少,最近正好跟同事合作了一个iOS项目,来说说自己的一些想法.   目录结构 AppDelegate Models Macro Genera ...

  9. 自学linux——16.LAMP项目上线流程

    LAMP项目上线流程 一.编译安装与卸载Nginx(web服务器软件,类似于Apache) 1.安装nginx ①    下载nginx 网页下载https://nginx.org/en/downlo ...

随机推荐

  1. JobConf

    /**  * A map/reduce job configuration. * 翻译:一个map/reduce作业配置 * <p><code>JobConf</code ...

  2. c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对

    首先要引用一下类库:using Ionic.Zip;这个类库可以到网上下载. 下面对类库使用的封装方法: 得到指定的输入流的ZIP压缩流对象 /// <summary> /// 得到指定的 ...

  3. ubuntu 单网卡双 ip

    局域网一套物理网络里有两个 ip 段,单网卡设置多 ip 可实现同时访问两个网段. $ cat /etc/network/interfaces # interfaces(5) file used by ...

  4. pppoe server 搭建

    Ubuntu 上搭建 pppoe server sudo apt-get install pppoe $ cat /etc/ppp/pppoe-server-options # PPP options ...

  5. MySQL 存储过程 (2)

    通过存储过程查询数据库返回条数操作 第一步:登录自定义用户建立存储过程需要调用测试用到的student表,具体操作如下 (1) 登录用户

  6. 【BZOJ1845】[Cqoi2005] 三角形面积并 几何+扫描线

    [BZOJ1845][Cqoi2005] 三角形面积并 Description 给出n个三角形,求它们并的面积. Input 第一行为n(N < = 100), 即三角形的个数 以下n行,每行6 ...

  7. EasyPusher实现将asterisk直播流以RTSP转发实现通话直播与录像

    本文转自博客:http://blog.csdn.net/jinlong0603/article/details/56047145 EasyPusher RTP直播推送介绍 EasyPusher是一个推 ...

  8. jsp页面中文乱码解决方案

    一.JSP页面中文乱码 在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码. 先看一个JSP程序: <%@ page language=&q ...

  9. MongoDB——mongo-connector同步到ES

    1.搭建完毕MongoDb复制集环境 2.开始安装 mongo-connector pip install mongo-connector:基于pip命令,不管是linux .window 系统默认有 ...

  10. 按照eslint 规范写代码 [eslint] 'flag' is assigned to itself. (no-self-assign)

    按照eslint 规范写代码 [eslint] 'flag' is assigned to itself. (no-self-assign)