摘要:一个iOS应用最终能在用户的设备上使用,是经过了开发 -> 打包 -> 发布 -> 下载安装过程的。为了更易于理解,以及避免从一开始就陷入细节,本文将逆序讲述整个过程。
一、背景
在iOS开发中,大概每个新手都被各种配置、证书、打包和发布等事情折腾过,我亦如此。
教程一搜一大堆,照着教程1234也能做下来。但是在这个过程中,我会产生很多问号:
- 为什么程序能在模拟器上运行,却无法在真机上运行?
- 为什么不是每个人都能在本地打包?具备什么条件才能打包?
- 为什么需要证书,描述文件?
- 生成证书的原理是怎样的?
- … …
很多事情是知其然而不知其所以然。
为了解决心中的疑惑,我借着项目的机会,研究了一番整个打包发布的流程,以及流程中每一步操作的背后都发生了什么。
之后便总结成了这篇文章,分享给大家,希望能使新手iOS开发同学对iOS的打包、发布和证书体系有更直观的了解。
一个iOS应用最终能在用户的设备上使用,是经过了**开发 -> 打包 -> 发布 -> 下载安装
**的过程的。
为了更易于理解,以及避免从一开始就陷入细节,本文将逆序讲述整个过程。
二、iOS应用的安装方式
作为一个iOS用户,我能通过哪些途径安装app?
-
App Store
App Store是Apple官方的App发布平台。在App Store中搜索并安装App,也是作为一个普通用户最常用的安装方式。
-
TestFlight
TestFlight是Apple官方的App测试平台。在上架到App Store之前,可以通过TestFlight邀请一部分用户参与测试,类似于网络游戏的公测。
-
App Center, FIR…
除了官方的Apple Store之外,市面上还存在着App Center, FIR等非Apple官方的App管理平台。在开发过程中,我们通常会将各个环境的App上传到这些非官方的平台中,用于日常测试;另外,我们也会将其作为企业级应用的最终发布平台。
-
通过Xcode安装到真机
-
通过Xcode安装到模拟器
在开发过程中,DEV们作为特殊的iOS用户,也会通过IDE直接在真机或模拟器上进行开发和测试。这里把真机和模拟器分开,是因为它们确有不同。关于不同之处,我们将会在后文中谈到。
上面列出的,是用户,以及DEV、QA同学最常用的5种安装方式。那么这篇文章是要讲打包和发布,为什么我们要了解这些安装方式呢?
是因为不同的安装方式本身,背后就对应着不同类型的发布方式。
或者更严谨的说,不同类型的发布方式,就决定了用这种发布方式打出来的app,最终能通过哪种安装方式安装到机器上。
三、iOS应用的发布方式
作为打包的那个人,我能通过选择发布方式,来决定我的应用能让哪些用户、通过何种安装方式下载安装
虽然我们有着以上不同的安装方式,但其实本质上都是从某个平台上,下载一个软件包到本地并安装(Xcode除外)。
不同的平台做的也是同样的事情,即提供一个存放软件包的仓库,可供用户下载软件包。
发布
,就是把软件包上传到发布平台。这步就无需赘述了。
那么我们再往前一步:打包
。
简单来说,所谓打包,就是将源码转换成iOS系统的软件包-ipa文件iPhone application archive
。
对于一个iOS应用,它的打包过程包括:
- 选择发布方式
- 选择证书和描述文件
- 编译 & 签名
- 导出ipa文件
本节我们关注第一步:选择一个发布方式。
Apple提供了4种发布方式: