友情提示:本文过于粗浅,有经验的iOS开发者基本可以关掉,以免浪费阅读时间。或者有大佬心情好,帮忙指正一下不对的地方也是极好,本人也是极为感谢的。
之所以写这个大水文,是因为这两天碰到了一个unity的朋友,公司没有iOS程序猿,但是却要上架应用到App store。以往基本就是在网上找个上架流程照着撸,倒也成功上架了两个应用。这回出了莫名其妙的错误,朋友就懵了,无奈之下找到了我。我这边帮他成功提交了应用之后,也给他简单说了下证书。期间想起自己第一回上架时候的各种懵圈,就想着不如撸个流程,希望可以帮助个别和我一样第一次上架各种懵的朋友。
证书的创建流程网上老多老多,我就懒得撸了。各种谷歌百度都成~
一、上架除了代码,需要哪些东西?
(一)发布(上架)需要的资料
1.发布证书(Production)
2.App ID
3.发布对应的pp文件( Provisioning Profiles)
其实上架打包的时候,只需要在开发者后台准备好以上三样东西,将发布证书和pp文件下载安装好,第二步申请好的bundle id也在Xcode填写好,按照正常流程打包应该就足够了。但是很多证书申请流程也会教大家配置开发证书,以及对应的pp文件。那么开发证书和发布证书之间的区别是什么呢?
发布证书仅仅是用于发布的时候使用的。如果你只有发布证书,但是想用真机测试,发布证书只管你导出上架的正式包,是不会管你真机测试的测试包的,你没有开发证书,那么你就没法用真机测试,就是这么霸道。想用真机测试,那么就必须还要去申请一个开发证书,测试哪个应用也要配置好与App ID对应的开发pp文件。
(二)开发、上架一共需要用到哪些资料
上面两段说理论的不好,有点绕,带入一个例子来理解:
比方说我现在开发了我的第一个应用叫“胖轩日常”,bundle id 是:com.glx.pxrc
这个App现在是开发阶段,有记录步数及步行距离的功能,我需要用真机进行测试数据获取效果怎么样。
此时我应该要:
1.有一个开发证书(Development)
2.去开发者后台创建一个App ID
3.创建与App ID对应的开发pp文件
拥有以上资料后,就可以愉快地进行真机测试了。
然后现在代码撸完了,测试也没毛病,我想把这个app上线了。
此时我应该要:
1.一个发布证书
2.App ID,直接用测试时创建好的那个就行,不需要重复再创建
3.创建与App ID对应的发布pp文件
以上就是一个应用从开发到上架所需要的证书及资料。汇总一下,一共用到了哪些东西:
1.一个开发证书
2.一个发布证书
3.一个App ID
4.一个开发pp文件
5.一个发布pp文件
二、这些资料从哪里来?
(一)先说证书。
划重点:证书这个东西只需要安装一次!不管你想上架多少个App,只要用的是同一个开发者账号,那么只需要第一次安装了证书,以后都一劳永逸~!不用再管,不用再反复创建证书,不用再下载安装证书~!
重点:不论开发还是发布证书,第一回上架的时候安装了,只要证书还有效,第二三四……N回再测试、上架都不用再管证书。他还有效,还没死~
再来说证书从哪里来:
- 如果你接手的是一个全新的开发者账号,那么肯定需要你自己去开发者后台创建证书。建议一次性把开发者证书和发布证书都配好,下载安装。然后导出p12文件,备份好。这个p12就是一份完整的证书,包含了你的私钥以及你下载下来的证书。
- 如果你接手的账号已经有发布证书了,而且是在你接手了别人的工作及电脑的时候、你可以问问或者查看下,这台电脑是不是已经安装好了与账号对应的开发及发布证书,如果是,那么你就不用管了,你已经安装好证书了。
- 如果你的账号已经有发布证书,但你的电脑上并没有安装证书,那么你就问问同事,是谁的电脑配置的证书,或者是否有备份的p12,叫他们给你一份,并告诉你p12的密码,你双击,填密码安装就完事儿了。不要天真的自己去开发者后台下载证书,双击安装,然后就以为自己有证书了。证书是有了,但是你没有与之对应的私钥,白搭,一点用都没有。
- 如果开发者后台已经有发布证书,但是你又找不p12了,且这个证书以后由你管理,证书也由你管理,那么你可以考虑删掉之前的发布证书,自己创建一个,并且备份好p12文件。就我昨天测试的效果来看,删掉之前的发布证书,用之前的证书上架的App不会受影响。起码我今天还在App store找到了之前的App,并且成功安装了。
继续重点:千万不要上架一个App就重新去创建一个开发证书、发布证书,没意义。而且一个开发者账号只能有一个发布证书,当你创建第二个发布证书的时候,第一个发布证书就无效了。这也就是为什么一定要备份p12的原因,别的电脑要用发布证书不能再重新配置,只能用P12。除非你想把第一个证书废弃掉。当然,这部分知识主要来源于各方大神的文章总结,我并没有亲测过。
测试证书倒是可以配几个,但是和发布证书一样,没必要。第一次配好一直用就成,就别抽风一直配了。
(二)再说App ID
每一个应用只要想真机测试或者上架,就一定得配置这个,用你的bundle id去进行配置。每一个App的bundle id都不一样,所以这个就需要你每个App都去创建一个。这里就不说通用App ID了。 App ID是针对的App,不管你是测试还是上架,他都不管,他只管App的唯一性,所以一个App配置好了App ID之后,不管你是测试也好,上架也好,他都只表示,是那个App的bundle id为com.glx.pxrc的应用的正式包或测试包。
(三)pp文件( Provisioning Profiles)
这个你可以当做是验证信息,告诉设备,这个应用的bundle id以及别的安装需要的信息(具体哪些信息我也不造2333)都放在这里,设备安装的时候会用公钥解密之后比对相关信息,通过之后才予以安装。
测试的pp文件还会包含你允许的设备的udid,然后会和设备的udid进行比对,通过才能用那个设备安装测试。这也就是为什么要添加udid,创建测试pp文件的时候,还有一个步骤是选择允许udid的设备进行测试。
三、现在我想开发并上传我的第二个应用:胖轩爱听歌
我在上传“胖轩日常”的时候,已经创建并安装好了开发及发布证书。所以——
测试时我应该:
1.创建“胖轩爱听歌”的App ID
2.创建与之对应的测试pp文件
测试通过之后要上架,我应该:
1.创建与“胖轩爱听歌”的App ID相对应的pp文件
2.走上架流程。
四、补充
如果你换电脑了电脑,一定要拿p12安装一下证书之后,再进行“胖轩爱听歌”的测试及上架流程。换了电脑之后,电脑并不认你,也不认你登录的账号,他还是要自己安装证书之后才能正常进行测试及发布。
还有一个点,昨天我配置了朋友的发布证书,但是没有配置、安装开发证书,居然也能用真机安装运行起来程序,不知道是我搞错了还是确实如此,有机会再测测看吧。