不知不觉开发iOS应用已经有5年+了,近期前同事问我有没有iOS应用上架的相关文章,其实刚接触iOS开发的时候就写过iOS App上线提交流程,没有推荐他使用,因为在2018-06-07苹果的开发者工具系统 iTunes Connect 已变更为 App Store Connect,后台的管理页面进行了全面升级,页面布局发生了很大的改变。所以借着这个机会,也花些时间整理下,把近期苹果更新内容都补上,其实有的时候帮助别人的同时也在帮助自己。言归正传,我们今天介绍iOS应用提交至苹果审核的上架流程。
一、苹果手机安装App的5种方式
1.手机连接苹果电脑,用Xcode开发工具直接运行,即可安装App;
2.开发者用Ad-Hoc证书进行分发测试,目前测试分发平台有蒲公英和fir.im;需要收集用户手机的UDID标识,每个账号只有100个名额进行测试;
3.使用苹果的TestFlight邀请码进行安装测试,需要登录苹果后台增加测试用户的邮箱,测试用户需要在iOS手机客户端下载 TestFlight,然后进入应用输入邮箱里面邀请码进行下载测试。现在提交苹果审核的应用也会同步一份TestFlight进行应用的灰度测试;
4.使用企业版的In-House证书发布,缺点是只允许企业内部用户使用,不允许上线App Store,而且安装还需要证书的授权,优点是应用迭代更新方便,不需要苹果进行审核。但是最近苹果对企业的证书管理越来越严格了,如果有敏感的问题,也会吊销企业的开发者账号所属权;
5.直接导出应用的IPA文件,提交App Store进行审核,所有的苹果手机都可以安装应用。
今天我们主要介绍第五种类型,也是开发人员必须要掌握的。
二、应用上架的后台准备
我们知道开发iOS应用,是需要苹果开发者账号来支撑的,目前苹果开发者账号有 Individual 和 Company/Organization 两种类型。前者每年99美元,可以增加后台应用管理者,无法增加开发者来管理证书;后者每年299美元,既可以增加后台应用管理者,也可以增加开发者来管理证书。今天我们使用普通的个人开发者账号进行描述。
首先登录 苹果开发者官网
点击Account,输入开发者账号的用户名和密码,点击确认按钮,进行登录,这里强调一下苹果登录的安全机制,现在后台登录需要开启双重认证机制,如果用其他人的开发者账号,登录是非常麻烦的,还要别人给你发送验证码,登录成功后会提示你是否信任此浏览器吗?为了下次登录方便,我们还是点击信任,下次只要使用用户名和密码就可验证通过,不过浏览器的缓存时间失效后,还是需要双重认证才能登录。
在iOS开发和提交审核的时候要与苹果的后台打交道,涉及到开发证书Certificates、App ID、Devices及描述文件Profiles等相关知识,这里面有复杂的通信原理,涉及到非对称加密、双方的公钥私钥、摘要算法及数字签名等内容,这里不详细说明。
开发证书(Certificates)
iOS 证书分为两类:Development 和 Production(Distribution)。每个证书都有时间限制,一般一年就过期。
iOS App Development 在开发阶段进行真机测试时需要用到的证书。
iOS App Distribution 可以用于进行 Ad-Hoc 测试、打包上传到 App Store 或者打包成 Enterprisee(In-House) 类型供企业内部使用。
那么我们如何申请证书呢,首先点击证书、标识及描述文件连接
然后我们点击下图的添加按钮,创建一个证书
点击Continue
这里需要一个申请证书,格式为.certSigningRequest 里面包含公钥和私钥及摘要算法等相关内容。
点击mac OS的钥匙串访问里的 证书助理 -> 从证书颁发机构请求证书,最后会创建出一个.certSigningRequest文件,保存到磁盘文件中,后面会用到。
输入电子邮件,选择存储到磁盘,点击继续,导出保存在磁盘的指定位置。
点击continue,
开发者证书就创建完成了,把它下载到本地,进行双击操作安装,结果会在钥匙串中显示,这里多介绍一句,这个证书创建只能归一个人拥有,如果你的团队伙伴也想用这个证书怎么办,毕竟一个开发者账号创建的证书是有限的,你需要将安装的证书导出p12文件,然后设置密码,分发给其他伙伴,他们输入密码后就可以正常使用了。
至此开发的证书就创建完毕,发布的证书也等同一样,区别是就在选择证书的时候选择发布就可以了。
App ID
我们知道开发iOS的App,需要一个App的唯一标识Bundle ID,而App ID由 TeamID 和 Bundle ID 组合,表明这个App是独一无二的,现在我们需要手动的创建一个App ID,点击增加按钮
这里重点说两个内容
1.设置Bundle ID 内容通常以反域名(reverse-domain-name)格式的 Company Identifier(Company ID)作为前缀 例如:com.baidu.map 地图App。
它目前有两种类型
Explicit App ID:唯一的 App ID,用于唯一标识一个应用程序。
Wildcard App ID:含有通配符的 App ID,用于标识一组应用程序。
2.Capabilities: App ID的权限设置 向组应用,开启后台服务,消息推送,内购.....配置好App所需要的权限后点击Continue-->Register 即可完成App ID的创建。
Devices
Devices 就是运行 iOS 系统用于开发调试 App 的设备。每台 Apple 设备使用 UDID (Unique Device Identifier)来唯一标识。
iOS 设备连接 Mac 后,可通过 iTunes->Summary 或者 Xcode->Window->Devices 查看其 UDID。
Apple Member Center 网站个人账号下的 Devices 中包含了注册过的所有可用于开发和测试的设备,普通个人开发账号每年累计最多只能注册100个设备。
点击增加按钮,增加用户设备的UDID,方便用户后期进行测试
输入设备的标识,这里要详情记录用户的别名,方便后期管理和维护,毕竟名额只有100个。输入完设备名称和UDID ,点击Continue,即增加完成。
描述文件(Provisioning Profiles)
Provisioning Profile 文件包含了上述的所有内容:Certificates、App ID 和 Devices。
申请Development描述文件
点击增加创建,创建开发的描述文件
选择iOS App Decelopment描述文件,点击Continue
选择刚刚创建的App ID,继续点击Continue
选择刚刚创建的Certificates,如果想下载开发的描述文件就选择开发证书,如果是发布的描述文件,就选择发布即可,继续点击Continue,选择设备ID信息
选择Select All,包含所以设备信息,点击Continue
输入描述文件名称,一般格式为dev+App ID+时间命名即可,方便后期管理文件,文件的有效期为一年,过期后再次创建即可,继续点击General。
点击Download,下载双击安装即可。
下面我们介绍一下应用如何上传至App Store。
三、App Store Connect管理App的信息
一般先登录开发者后台,选择App Store Connect,去用户管理和访问的页面
选择用户和访问,再选择我的App,进入我的App管理页面
新建一个后台的App的描述配置,点击新建 App
SKU Number:Stock Keeping Unit,货号。如果你有很多应用,给每一个应用指定一个唯一的货号会方便你管理应用库。你可以用数字或者字母随便指定你的货号。
SKU:一个独特的、不会在 App Store 中显示的 App ID。自己可以自己定义。有人认为SKU主要去区分自己账户下边不同的APP。
不过还是建议使用项目中的Xcode中的 Bundle Identifier。
输入平台、App的主要语言、套件ID就是应用的Bundle ID、SKU、用户访问权限控制,点击创建即可。
查看App的相关信息,可以编辑后台管理的App名称
点击iOS App导航的栏目,上传应用的截图,方便在App Store中查看。
输入宣传文本,介绍App在当前版本更新的内容是什么,描述是介绍App是干什么的,有什么用途,关键词是便于用户能搜索到。
这里最重要的就是构建版本,就是你开发的应用,用Xcode导出的IPA文件,最终要提交到App Store中,在构建版本中出现+号后,即有可构建的版本,那么你的应用上架流程就快接近尾声了。
四、如何构建iOS应用的IPA文件
如何将打包好的IPA文件提交至App Store中审核,这里需要一个重要的苹果开发工具,Xcode,假设你现在已经有开发完成的App项目,本地的Bundle ID配置也是对的,工具栏中我们选择Generic iOS Device,这里我们就不需要连接真机进行构建了。然后点击Product,选择Archive开始构建发布版本。
构建成功后,会弹出如下窗口:选择刚刚构建成功的应用,选择Distribute App按钮
选择iOS App Store,点击Next
选择Export导出,继续点击Next
下面有两种签名,一个是自动签名,另一个是手动签名,本地只要有证书,就可以选择自动签名,系统工具会帮你创建描述文件进行签名,如果是手动签名,需要本地有证书和描述文件,需要手动选择即可。
选择对应的证书和描述文件,点击Next
描述了相关的信息,点击Export,即可导出对应App的IPA文件到指定的目录。
至此iOS的App的IPA文件我们就导出来了,是经过签名的,那么我们如何将应用文件提交至苹果审核呢?其实需要使用Xcode自带Applocation Loader工具。
五、Applocation Loader提交IPA文件至App Store审核
需要手动的输入开发者账号的用户名和密码,这里强调一个事情,即使你的账号和密码输入正确,苹果还让你用签名的密码去登录,那密码怎么签名呢,下面慢慢介绍。
需要我们到Apple ID的官网登录,使用Apple ID和密码进行登录,而且还要双重认证,这个安全验证也是最近苹果才更新的,感觉确实麻烦。
登录成功后,查看安全,点击App 专用密码的生成密码,将生成的密码复制到Applocation Loader的登录页面进行登录即可。
选择刚刚导出的IPA文件进行上传,后面点击下一步,至最后提交到App Store中即可。
提交成功后,一般要等10分钟左右,苹果机器检查完后,结果会用邮件进行通知,如果成功了,你就可以去开发者后台管理页面,上传构建成功的版本,点击发布就行了。到这里整个的上线App的上架流程就介绍完了,其实内容还是比较多的。
最后我们在总结回顾一下核心内容
1.苹果手机安装App的五种方式;
2.介绍证书、App ID、Devices及Profiles的相关内容;
3.App Store Connect后台管理App的信息;
4.将iOS应用导出IAP文件;
5.将应用的IPA文件提交到App Store中进行审核。
如果大家有什么问题也可留言,我会抽时间与你们一起讨论,大家相互学习。