一.前言
之前APP打包、App Store上架都有专门的同事负责,所以自己作为一个小白对上架流程也是一知半解。现在在新的部门,所有的打包上架事情都要自己动手解决,实践出真知,真正才过坑才能避免下次采坑。
今天上午已成功提交苹果待审核,很快也审核通过。
下面记录一下上架的流程:
二.知识准备
1.开发者账号
(1)个人帐号/公司帐号:$99/年,用于个人开发者/公司/团队进行开发和向App Store上传应用,不能够打包直接在设备上运行,上架要通过审核。
(2)企业帐号:$299/年,不能上传到App Store,用于企业内部发布,不需要苹果的审核,但也不能发布应用到APP Store。
(3)教育账号:免费,苹果给教育机构的账号。
我们公司是有第一种的公司账号和第二种的企业账号。
2.应用发布方式
对应的,常见有3种iOS应用发布方式:
(1)App Store : 最常用的, 需要通过Apple审核 。
(2) In-house: 企业内部用户发布的应用,需要企业开发者账号,不需要审核。
(3) Ad Hoc :针对测试设备, 数量有限,每个应用不能发不到超过100个设备上。
所以,一般我司在公有云的服务使用App Store发布,专属云上的服务使用企业内部发布。
3.各种证书(Certificate)
关于证书有很多官方定义,但拗口又难以理解。在这里引用网友通俗的描述各种证书的理解
证书指的是由苹果颁发(先交钱后发货的说)给你的证明你有权利进行iOS开发(不买证书你就只能用模拟器的说)并且可以将你开发的应用上传到App Store(没有证书估计只能自己做越狱开发)的一个凭证,表示你是一个开发者,就跟护照啊、身份证啊啥的一样。
一个开发者账号只有一套,这个套装里呢包含两个证书,一个是Development证书,也就是所谓的开发证书,凭借这个证书你可以进行开发和真机调试(么有这个就只能用模拟器啦);另一个是Distribution证书,也叫Production证书,即所谓的分发证书或者说生产证书。其中呢,Development证书可以制作多个副本分发到多台设备,但是Distribution证书只能有一个,不能制作副本分发到多台电脑。
总结来说就是:要想在真机上运行(无论是开发阶段还是发布阶段),都需要有开发证书或发布证书。
关于证书的申请会在下文详细介绍。
4.App ID
App ID的主要用途是标识一个或者一组App。
在开发者中心新增App ID时,会要求输入Name(用于标识)和绑定的Bundle ID(起决定性作用)。
5.描述文件(Provisioning Profile)
描述文件也分为Development和Distribution两种
如果我们要打包或者在真机上运行一个应用程序,我们首先需要证书来进行签名,用来标识这个应用程序是合法的、安全的、完整的等等;然后需要指明它的App ID,并且验证Bundle ID是否与其一致;再次,如果是真机调试,需要确认这台设备能否用来运行程序。而Provisioning Profile就把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用,这样我们只要在不同的情况下选择不同的profile文件就可以了。而且这个Provisioning Profile文件会在打包时嵌入.ipa的包里
三.申请上架流程
1.生成发布证书
写在前面——注意
--如果不需要生成新的发布证书,利用已有的证书完成后续的App ID和描述文件的生成,只需要导入别人的p12文件即可。
--如果没有正确导入 p12文件,只是在开发者中心下载了.cer证书文件,会出现如下图所示的错误,提示缺少私钥。原因就是.cer只包含了公钥,缺少私钥签名。
在我们申请添加一个Certificate之前,需要先申请一个Certificate Signing Request(CSR)文件,这个过程呢,实际上是生成了一对公钥和私钥,保存在我们电脑上的钥匙串中。代码的签名也就是使用这种基于非对称密钥的加密方式,用私钥进行签名,用公钥进行验证
下图所示的在钥匙串中,有显示小钥匙图标的才是符合共钥+私钥的证书。
所以,如果没有p12文件,就要自己去新生成一个发布证书了。
(1)登录开发者中心
(2)选择Certificates, Identifiers & Profiles
(3)选择Certificates-Production-Add
申请上架在前,整理在后,现在我的账号已经不能再创建证书了,因为数量已经到达限制。
一个开发者账号只能创建(1-2个开发(测试)证书,2-3个生产(发布)证书),如果你的App Store Ad Hoc 前面的按钮不能选择,则代表你的这个账号无法再创建新的生产证书了
(4)新建和上传CSR文件
(5)至此,就可以成功生成了发布证书,直接下载并安装
(6)如果要分发到其他电脑,可以导出p12文件
2.新建App ID
如果遇到右上角的加号为灰色,无法点击新增,不要慌,是由于账号权限的问题,可以找管理员开通相应的权限即可。
3.生成描述文件
后续按照提示一步步Generate--Download即可,这里不再赘述。
4.在iTunes Connect进行申请上架
准备好上述材料以后,就可以在iTunes Connect上进行申请上架了:
(1)链接进入。网速较慢的情况下请耐心等待下。
(2)新建APP。填写相关资料。
(3)APP信息。
(4)价格与销售范围
(5)准备提交。
构建版本的过程就是打包的过程。但构建和上传的过程有时候也不是一帆风顺的,我曾经试过upload多次都失败了,错误提示如下图
解决方案将在下一篇详述,主要是参考http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/ 和https://www.cnblogs.com/yeng/p/6077072.html加入脚本