概述:首先得描述一下各个证书的定位,作用,这样在制作的时候心中有谱,对整个流程的把握也会准确一些;1、Certificate开发者证书(分为开发和发布两种,类型为iosDevel
![](https://www.#.com/imgs/4/1/4/6/84/6e51143e77a3559e7d057b67d5094fc8.jpe)
概述:
首先得描述一下各个证书的定位,作用,这样在制作的时候心中有谱,对整个流程的把握也会准确一些;
![](https://www.#.com/imgs/0/7/9/1/83/1a0bf65bb89dcff9163cea52ae62d2f3.jpe)
1、Certificate 开发者证书(分为开发和发布两种,类型为ios Development,ios Distribution)
这个是最基础的,不论是真机调试,还是上传到appstore都是需要的,是一个基证书,用来证明自己开发者身份的;
![](https://www.#.com/imgs/7/6/9/9/17/a52fa35785ac27c8bc64800efb291c27.jpe)
APNS证书是给服务器开发push notification用的,详见3.
![](https://www.#.com/imgs/0/4/6/6/45/df2afa5602a8067cb9c6e2e46aaefbab.jpe)
2、Identifiers:标识
2.1、App ID,这是每一个应用的独立标识,可以包含通配符也可以不含,在设置项中可以配置该应用的权限,比如是否用到了PassBook,GameCenter,以及更常见的push服务,如果选中了push服务,那么就可以创建生成下面第3条所提到的推送证书,所以,在所有和推送相关的配置中,首先要做的就是先开通支持推送服务的appID;
格式如:com.company.product.*, 或 com.company.product.1.0。
![](https://www.#.com/imgs/8/6/1/4/39/8aa3561ca24f4553f182d5e100bc44ee.jpe)
3、推送证书(分为开发和发布两种,类型分别为APNs Development ios,APNs Distribution ios)
APNS证书是给服务器开发push notification用的;该证书在appID配置(标题2.1)中创建生成,和开发者证书一样,安装到开发电脑上;
![](https://www.#.com/imgs/5/8/1/7/10/30c21db939d760a3336c6571b1799472.jpe)
![](https://www.#.com/imgs/2/3/4/6/85/1f968a458d9185aebe5be68dce74c0d5.jpe)
生成是如上图,需要生成两个证书,Development SSL Certificate和Production SSL Certification,前者用于开发测试,后者用于发布,如果是使用第三方推送或是自己后台写的PHP推送服务器,要使用后者。
注意如果程序支持game center, in app purchase,push notification,这个app id中不能包含通配符“*”。
![](https://www.#.com/imgs/0/6/3/0/49/d1ff3fa700e199175c459ee6147fc8b8.jpe)
4、Devices 管理测试设备:
使用你的测试设备的UUID添加进来,然后在Profiles里面选择这些设备。生成Provisioning Profiles后再添加的测试设备,如想要用它进行真机调试,需要更新Provisioning Profiles,编辑对应Provisoning Profiles,将设备添加进来。
![](https://www.#.com/imgs/5/3/1/3/30/03629c479f1e556f6aaead210926fc3e.jpe)
![](https://www.#.com/imgs/4/6/8/4/98/b076f3d058c39d951d522d3f89ad76b8.jpe)
删除设备会使所有关联这个设备的Provisioning Profiles失效,所有不要随便删,要删在下次续费时删除。
![](https://www.#.com/imgs/9/0/4/1/71/b0c157780207e43f1fb74a35243a99d2.jpe)
5、Provisioning Profiles
这个东西是很有苹果特色的一个东西,该文件将App ID,开发者证书,硬件Device绑定到一块儿,在开发者中心配置好后可以添加到Xcode上,也可以直接在Xcode上连接开发者中心生成,真机调试时需要在PP文件中添加真机的udid;是真机调试必备之珍品;
![](https://www.#.com/imgs/8/9/6/4/83/04af8a676f8687bd110b9c3b2f09af99.jpe)
Provisioning Profiles配置文件,分为两种
5.1、 Development 开发版,建立开发版本的profile时只能选择证书中的开发证书,并且支持多选多个证书,多个开发人员可以共用一个profile;同时可以选择多个3建立的设备;
5.2、 Distribution 正式版,此版本profile分为
a. App Store版本,是发布到App Store时使用的profile,创建时先选择Identifiers中的AppID,再选择一个证书,选择时应该你创建的证书;
b. Ad Hoc版本,Ad Hoc是给某些企业发布紧企业内部使用的;
平常我们的制作流程一般都是按以上序列进行,先利用开发者帐号登陆开发者中心,创建开发者证书,appID,在appID中开通推送服务,在开通推送服务的选项下面创建推送证书(服务器端的推送证书见下文),之后在PP文件中绑定所有的证书id,添加调试真机等;
在Xcode中管理,5.0之后,打开Preference,选择Accounts;点击View Details...
![](https://www.#.com/imgs/6/1/4/7/93/0e9460fce338ea9e7c310a0676c2b9f0.jpe)
点击刷新,可以刷新XCode和设备上的Provisioning Prefiles;同时可以制作Development Provisioning Prefiles和Distribution Provisioning Prefiles。
![](https://www.#.com/imgs/6/0/8/6/68/d1f2b13a33e5f1f66c0f5092bcb452a4.jpe)
现在上具体流程:
1、开发者证书制作安装步骤:大概过程是:选择授权类型,开发还是发布->提交在mac设备中创建的公钥-> 下载证书,并安装
1.1、创建证书签名请求公钥
打开应用程序中的“钥匙串访问”,在菜单里点击“证书助理”下面的“从证书代理请求证书”,注意下面不要选中任何行,否则菜单会变。
![](https://www.#.com/imgs/6/1/3/4/66/3d21a5d9fa48346f41584d2f74959c6e.jpe)
输入自己的注册Email,常用名称可以写详细一点,比如“Unfish Dev Key”,下面选中“存储到磁盘”,点继续,可能会出现未知错误,多试几次就OK了。
![](https://www.#.com/imgs/1/6/7/2/23/ee969743178573448899361b10c5b29e.jpe)
1.2、创建开发者证书
在浏览器中进入开发者中心的Certificaties导航页面,点击右上角的加号;
![](https://www.#.com/imgs/0/4/6/1/66/0b62f0e6f49fc31be0fa9d0aa06066dd.jpe)
证书类型选择iOS App Development,点击继续;
![](https://www.#.com/imgs/8/0/5/4/2/b2865b0e32a9b54c94c71b6ac4a51b5a.jpe)
下个界面需要一个CSR文件,就是我们在1.1中创建的公钥;选取你生成的csr文件,点击生成。
![](https://www.#.com/imgs/2/0/2/5/70/3ab1a7b4f261fa4e9fd4cf1c93b6f15e.jpe)
点击生成后会生成一个cer证书,如图所示;
![](https://www.#.com/imgs/8/0/5/2/30/81813c18a828257e3c36437325940886.jpe)
点击Download,下载下来,双击打开双击会自动导入钥匙串,导入类型选择“登录”就可以。
![](https://www.#.com/imgs/4/3/9/4/33/a9de1784a0e847e1bd26c9c4d1889fd0.jpe)
1.3、添加你的测试设备(这一步只是开发证书有用,发布证书是不需要这个东西的。)
把手机连到电脑上,在xcode的windows菜单下打开Organizer,左边的devices下面会列出你的手机,右边的Identifier项就是你的手机的udid,复制下来,待会要用。如果这个手机还没有设置过作为开发机,这个界面上应该会有两个按钮,点一下就可以把它设为开发机,在xcode里点Build and go的时候就可以自动的安装你的程序到手机上,不需要通过ITunes了。
![](https://www.#.com/imgs/5/7/8/9/91/c6560a6925d34ad00aafd7e190974b5a.jpe)
在开发者中心的左边Devices导航页,点击右上角Add Device;
![](https://www.#.com/imgs/2/2/7/0/46/44cdef4297ce82108b4c7bc97199e595.jpe)
起个自己认识的名字,把udid粘贴进去就可以了,在所有设备中会出现你的设备。
![](https://www.#.com/imgs/0/5/1/6/53/ff704dc5b8169969c9efbe71643ca3bf.jpe)
1.4、创建App ID:
我们需要为应用创建一个App ID,他是识别这个应用的唯一标识,在开发者中心的Identifier导航页的App ID页面,点击右上角创建新的App ID,这个App ID需要跟程序的info.plist里面定义的程序Identifier相对应;
![](https://www.#.com/imgs/1/7/2/4/78/31d7e5afcb35e95eb762b4a62064585e.jpe)
为App ID命名,注意命名规则:
![](https://www.#.com/imgs/2/6/9/8/24/e9ffca1e22fb6a5b75d490ccf4e39764.jpe)
选择App ID类型:
Explicit类型是不使用*通配符,支持所有App Services;Wildcard App ID类型,可以使用*通配符命名。
如果这里只输入一个*,那么info.plist里Bundle identifier写什么都可以,使用*通配符,适用于批量的,没有推送,Game Center等服务的应用。如果你的应用要用到推送、GameCenter、PassCard等服务请勿使用。
格式规则:苹果建议使用域名倒序的方式命名;
若使用通配符com.*命名,那么在应用的info.plist中Bundle identifier只要以com.开头,后面写什么都可以。
![](https://www.#.com/imgs/3/3/1/8/46/8028e188cab094261bb1a7e8bed8342b.jpe)
![](https://www.#.com/imgs/3/6/5/3/65/c9b7199b533fb962b33bbef5d5cc795e.jpe)
继续点击提交创建成功。
1.5、创建Provisioning Prefiles文件
进入开发者中心的Provisioning菜单,点击右上角创建;
![](https://www.#.com/imgs/5/2/9/8/32/e14470981b1649af3a69be2c629aa791.jpe)
Provisioning profile选择iOS App Development;
![](https://www.#.com/imgs/4/5/2/4/1/f7a5b9c5b23c0675f0460ed90331430e.jpe)
选择对应应用的App ID;
![](https://www.#.com/imgs/4/2/5/5/65/bd6ac4f31fdb4f61a18c787e706b56c1.jpe)
选择所使用的证书;
![](https://www.#.com/imgs/5/0/1/2/54/39c1be718bda0bc9d63e7555d726441c.jpe)
选择对应要使用的设备,我一般全选,省事儿;
![](https://www.#.com/imgs/3/3/4/9/70/c90149b321215d3ad9a8f50fa9d322cd.jpe)
取个见名知意的名儿,并点击生成;
![](https://www.#.com/imgs/4/7/0/0/87/0af9aa1027edf19d9617a9a64d770bd8.jpe)
生成以后下载这个provisioning文件,把下载下来的文件拖到Dock上的Xcode的图标上就会自动安装进去。
然后退出xcode重新打开,打开你的项目,打开Project菜单下面的Edit Project Settings,进入Build页面,找到下面的Code Signing Identity,把Any iPhone OS Device项后面选中你的开发者证书,然后就可以把项目的编译目标设为Device(而不是模拟器),试一下Run。程序应该会编译完并自动安装到你的手机上,并自动启动了。
![](https://www.#.com/imgs/1/5/2/5/61/bfb84f0e5499ae569c5e2d2798099fd1.jpe)
2、发布证书制作安装步骤:
2.1、同1.1一样,我们创建证书签名请求公钥,如果已经创建过,就直接使用以前的那个就行(CSR文件)。
![](https://www.#.com/imgs/0/4/3/9/1/6b1464b2e2beff52a88ccad15bd09028.jpe)
进入开发者中心Certificates里面的Distribution页面,选择右上角添加;
![](https://www.#.com/imgs/6/0/1/9/87/874095a8e884168edace74549f997d6b.jpe)
证书类型选择Production App Store and Ad Hoc;
![](https://www.#.com/imgs/1/5/9/6/12/c8d61301ba246f83f4b935300b77cfe4.jpe)
之后步骤和创建Development证书一样,提交SRC文件,创建成功;
![](https://www.#.com/imgs/1/9/8/4/94/553c969d36f8a77ca22e05938a181eba.jpe)
然后下载这个证书,双击导入,类型选登录。
2.2、创建Distribution Provisioning Profiles:
进入开心者中心Provisioning里面的Distribution页面,点击右上角添加新的Provisioning;
![](https://www.#.com/imgs/9/8/1/2/37/0f00fb2f5f07150f8277b970ef9a7bd5.jpe)
类型选App Store,(如果选了Ad Hoc,就只有你添加过udid的手机才能安装这个程序了,一般用于企业帐号,这里我们不介绍);
![](https://www.#.com/imgs/6/5/2/1/12/9086980ab45cec962c3f4aada003fa91.jpe)
之后步骤和创建Development证书基本一致(少了一个选择设备步骤),Distribution证书选好,App ID选好,取好名称,创建完成;下载这个文件,拖到xcode的图标上安装完成。退出xcode再重新打开,否则加载不了你刚刚添加的那个证书,会出现Provisioning无效的提示。
打开工程,进入Build Settings页面,在Code Signing Identity里面的Any iPhone OS Device后面对应的值选中你的那个Distribution的证书。然后就可以编译程序了。
![](https://www.#.com/imgs/1/6/3/7/3/3abd25ca7efe83e13c7a03abc5af65fa.jpe)
3、在Xcode中创建Provisioning Prefiles
在Xcode中管理,5.0之后,打开Preference,选择Accounts;点击View Details...
![](https://www.#.com/imgs/6/9/9/9/63/8aea9a72187461568562525b855b9ffe.jpe)
点击添加Development Provisioning Prefiles,步骤和MemberCenter添加过程基本一致;
![](https://www.#.com/imgs/8/4/0/7/10/97d75fab87a0771fee08846c9832860b.jpe)
账号密码换了,验证失败,下回在给大家介绍吧。
4、如何要把测试版发给别人:
- a.进入member center,把device id注册为测试机;
- b.建立一个Ad hoc类型的provisioning profile,包含刚才注册的device id ;
- c.打包时code signing使用刚生成的文件 ;
- d.把ipa给要测试人员即可;
5、程序发布到AppStore的步骤:
- 在开发者中心的Distribution导航里面的App Store页面,在下面的App Store下面的Learn More展开,就可以看到Go to iTunes Connect的链接。进入以后点击Manage My Application,就可以添加自己的程序了。
- 需要选择程序的语言,国家,介绍等等基本信息,然后下一步上传程序和其它图片。这个地方上传的程序,就是把你的项目编译以后生成的那个.app的目录直接压缩成zip上传,(这个.app目录里面的任何文件都不可以更改,否则签名就不对了)。你需要准备一张512×512的png图片作为大Logo,还需要准备5张程序运行的界面截图,在这个页面上挨个选Choose file,再点击upload file,出现对号就没问题了。然后选择程序的价格,默认有很多可以选,free是免费,1是0.99美元,2是1.99美元,诸如此类。如果非免费程序,你还得准备一份购买协议。
- 再点下一步,就可以等待程序审核了。